Raster-Datasets und Raster-Kataloge in einer Geodatabase in SQL-Server

Raster-Daten sind räumliche, in einem Array von gleich großen, in Zeilen und Spalten angeordneten Zellen dargestellte Daten. Raster-Daten können aus einem oder mehreren Raster-Bändern bestehen. Eine ausführliche Erklärung der Raster-Daten und den zugehörigen Attributen finden Sie unter "Raster-Daten" in dieser Hilfe. Beginnen Sie mit dem Abschnitt Was sind Raster-Daten?

Raster in ArcGIS Desktop

In ArcGIS können Raster-Daten in einem einzelnen Raster-Dataset, Raster-Katalog oder Mosaik-Dataset gespeichert werden. Eine Beschreibung dieser Raster-Speichertypen finden Sie unter Organisation von Rasterdaten.

Im Kataloginhaltsverzeichnis verfügen einzelne Raster-Datasets in SQL Server über folgende Symbole:

Raster-Dataset-Symbol

Ein Raster-Katalog im Kataloginhaltsverzeichnis verfügt über folgendes Symbol:

Raster-Katalog-Symbol

Die Namen von Raster-Katalogen und Raster-Datasets in SQL Server enthalten den Namen der Datenbank, den Namen des Besitzers des Raster-Katalogs oder -Datasets sowie den Namen des Raster-Katalogs oder -Datasets selbst.

Beispiel: Das Raster-Dataset "world" in der Geodatabase "gdb", das Benutzer "rjp" gehört, wird im Kataloginhaltsverzeichnis als GDB.RJP.WORLD aufgelistet.

Weitere Informationen zum Speichern von Mosaik-Datasets in einer Geodatabase finden Sie unter Mosaik-Datasets in einer Geodatabase in SQL Server.

Raster-Tabellen in einer Microsoft SQL Server-Datenbank

ArcSDE-Geodatabases in einer SQL Server-Datenbank können Raster-Daten entweder im nativen Binärformat von SQL Server, das ähnlich wie das komprimierte binäre Speicherformat von ArcSDE ist, oder im ST_Raster-Speichertyp speichern.

Einer Business-Tabelle wird eine Raster-Spalte hinzugefügt und jede Zelle der Raster-Spalte enthält einen Verweis auf ein in einer separaten Raster-Tabelle gespeichertes Raster. Daher verweist jede Zeile einer Business-Tabelle auf ein ganzes Raster.

Wenn Sie ein Raster in eine ArcSDE-Geodatabase in SQL Server importieren, wird der Business-Tabelle Ihrer Wahl eine Raster-Spalte hinzugefügt. Sie können der Raster-Spalte einen beliebigen Namen geben, der der Namenskonvention für Spalten von SQL Server entspricht. ArcSDE beschränkt dies auf eine Raster-Spalte pro Business-Tabelle.

TippTipp:

Aufgrund der Eigenschaften von Raster-Daten sind Datenbanken, die Raster enthalten, meist relativ groß. Raster-Datasets und Raster-Kataloge sind selten kleiner als mehrere Gigabyte (GB) und können im Datenbankmanagementsystem (DBMS) einige Terabyte (TB) einnehmen. Kopiervorgänge können aufgrund der großen Menge an Raster-Daten daher eine Herausforderung darstellen. Empfehlungen und Beispiele zum Verwalten der Raster-Daten in einer ArcSDE-Geodatabase finden Sie im Whitepaper Raster Data in ArcSDE, das auf der Support-Website von Esri unter support.esri.com heruntergeladen werden kann.

In SQL Server-Binärformat gespeicherte Raster

Ein Raster-Dataset, das binären Speicher verwendet, besteht aus sieben Tabellen: Business-Tabelle, Feature-Tabelle, räumliche Indextabelle, Zusatz-, Block-, Band- und Raster-Attributtabellen. Nachfolgend sehen Sie die Business- und Raster-Tabellen für ein Raster-Dataset mit dem Namen "world_TIF". Die gestrichelten Linien geben eine implizite Beziehung zwischen den Tabellen an.

Tabellen eines binären Raster-Datasets in SQL Server

Die Business-Tabelle

Die Business-Tabelle ist eine DBMS-Tabelle, in der Attribute gespeichert werden und die durch das Hinzufügen einer Raster-Spalte für die Speicherung räumlicher Daten aktiviert wurde. In dieser Tabelle wird der Footprint (grenzt die Fläche ab) des Rasters gespeichert. Im Beispiel oben ist die Tabelle world_tif die Business-Tabelle.

Eine Business-Tabelle mit einer Raster-Spalte ist ein Raster-Dataset oder ein Raster-Katalog. Ein Raster-Dataset kann nur eine Business-Tabellen-Zeile aufweisen, während ein Raster-Katalog mehrere Zeilen haben kann. Informationen über die Raster-Spalte befinden sich in der Systemtabelle SDE_raster_columns. Informationen über alle Business-Tabellen, unabhängig davon, ob sie eine räumliche Spalte oder eine Raster-Spalte haben, befinden sich in der Systemtabelle SDE_table_registry.

Die Feature-Tabelle (f<layer_id>)

In der Feature-Tabelle wird die Geometrie des Raster-Datasets gespeichert. Diese Tabelle wird durch die Zahl in der Spalte "layer_id" der Tabelle "SDE_layers" identifiziert. Die Beziehung zwischen der Business-Tabelle und der Feature-Tabelle wird durch die Feature-ID (oder FID) verwaltet. Dieser Schlüssel, der von ArcSDE verwaltet wird, ist für die räumliche Spalte eindeutig. Im oben genannten Beispiel ist die Feature-Tabelle f117.

Die räumliche Indextabelle (s<layer_id>)

Die räumliche Indextabelle speichert Verweise auf Shapes auf Grundlage eines einfachen, regulären Gitters. Diese Tabelle wird durch die Zahl in der Spalte "layer_id" der Tabelle "SDE_layers" identifiziert. Im Beispiel-Raster-Dataset "world" ist die räumliche Indextabelle "s117". Der räumliche Index enthält einen Eintrag für jede Shape- und Gitterzellenkombination, um räumliche Abfragen zu unterstützen. Wenn eine räumliche Abfrage ausgeführt wird, werden die Gitterzellen innerhalb des Suchbereichs identifiziert und verwendet, um eine Liste von Kandidatenpixeln zurückzugeben.

Die Raster-Bild-Tabellen

Die tatsächlichen Raster-Bilder werden in diesen Tabellen gespeichert.

HinweisHinweis:

Die Raster-Tabellen sind nur dann in der Datenbank vorhanden, wenn in der Geodatabase Raster-Daten enthalten sind.

SDE_aux_<raster_column_ID>

In der Raster-Erweiterungstabelle werden die Bild-Colormap, die Bildstatistik und die optionale Bitmaske gespeichert, die für Bild-Overlays und das Mosaikieren verwendet wird.

ArcSDE speichert alle vorhandenen Bildmetadaten wie Bildstatistik, Colormaps oder Bitmasken automatisch in der Raster-Erweiterungstabelle. Die "rasterband_id "-Spalte der Raster-Erweiterungstabelle ist ein Fremdschlüsselverweis auf den Primärschlüssel der Raster-Band-Tabelle. Beim Zugreifen auf die Metadaten eines Raster-Bandes werden die beiden Tabellen von ArcSDE auf Basis der Urwahl-/Fremdschlüsselreferenz verbunden.

Feldname

Feldtyp

Beschreibung

Null?

rasterband_id

integer

Eine Zahl, die ein Raster-Band darstellt. Ein Raster-Dataset mit zwei Raster-Bändern verfügt beispielsweise über zwei verschiedene Werte in diesem Feld – 1 und 2.

NOT NULL

type

integer

Werte enthalten

NOT NULL

object

varbinary(max)

Enthält die tatsächlichen Daten, entweder ein Colormap-Index, eine Raster-Statistik oder Koordinatentransformationen

NOT NULL

SDE_blk_<raster_column_ID>

In der Raster-Blocktabelle werden die tatsächlichen Bilddaten für jedes Band des Bilds gespeichert.

In der Raster-Blocktabelle werden die Pixel der einzelnen Raster-Bänder gespeichert. ArcSDE kachelt die Bänder entsprechend der benutzerdefinierten Bemaßung gleichmäßig in Pixelblöcke. Im Gegensatz zu Anwendungen, die Raster-Daten in ArcSDE-Geodatabases speichern, verfügt ArcSDE über keine Standard-Bemaßung. Geoverarbeitungswerkzeuge und ArcCatalog verwenden beispielsweise die Standard-Raster-Block-Bemaßung von 128 x 128 Pixel pro Block. Die Speichergröße der einzelnen Raster-Blöcke wird durch die Raster-Block-Bemaßung und die Komprimierungsmethode (falls angegeben) bestimmt. Sie sollten die Raster-Block-Bemaßung auswählen, die in Kombination mit der Komprimierungsmethode eine Anpassung der einzelnen Zeilen der Raster-Block-Tabelle an die DBMS ermöglicht.

Die Raster-Block-Tabelle enthält die RASTERBAND_ID-Spalte, die ein Fremdschlüsselverweis auf den Primärschlüssel der RASTERBAND_ID der Raster-Band-Tabelle ist. Beim Zugreifen auf die Blocks der Raster-Bänder werden diese Tabellen auf Basis der Urwahl-/Fremdschlüsselreferenz verbunden.

Die Raster-Block-Tabelle wird gemäß einer zurückgehenden Auflösungspyramide aufgefüllt. Die Höhe der Pyramide wird durch die Anzahl der von der Anwendung angegebenen Ebenen bestimmt. Mit der Anwendung, z. B. Geoverarbeitungswerkzeuge oder ArcCatalog, können Sie die Ebenen definieren, anfordern, dass sie von ArcSDE berechnet werden, oder beides. Die Pyramide beginnt an der Basis, oder auf Ebene 0, die die ursprünglichen Pixel des Bilds enthält. Die Pyramide setzt sich zur Spitze hin fort, indem sie vier Pixel aus der vorherigen Ebene zu einem einzelnen Pixel auf der aktuellen Ebene verbindet. Dieser Prozess wird fortgesetzt, bis ArcSDE die Spitze erreicht hat, die möglicherweise automatisch oder vom Benutzer definiert wird.

Die zusätzlichen Ebenen der Pyramide vergrößern die Anzahl der Raster-Blöcke um ein Drittel. Da Sie jedoch die Anzahl der Ebenen festlegen können, kann die Pyramide kleiner sein. Die erste Ebene der Pyramide macht 25 Prozent der Basis aus. Es sollte auch beachtet werden, dass die erste Ebene der Pyramide übersprungen werden kann, ein Faktor, der die Größe der Pyramide wesentlich reduzieren kann.

Eine Raster-Pyramide
Eine Raster-Pyramide

Wenn Sie eine Pyramide erstellen, werden mehr Raster durch eine zunehmende Verringerung der vorherigen Ebene um den Faktor zwei bis zur Spitze erstellt werden. Wie die Anwendung die Ansicht verkleinert und die Raster-Zellen kleiner als der Auflösungsschwellenwert werden, wählt ArcSDE eine höhere Ebene der Pyramide aus. Zweck der Pyramide ist die Optimierung der Darstellungs-Performance.

Feldname

Feldtyp

Beschreibung

Null?

rasterband_id

integer

Eine Zahl, die ein Raster-Band darstellt. Ein Raster-Dataset mit zwei Raster-Bändern verfügt beispielsweise über zwei verschiedene Werte in diesem Feld – 1 und 2.

NOT NULL

rrd_factor

integer

Pyramidenebene. Pyramidenebenen beginnen bei 0 und können von dort aus zunehmen.

NOT NULL

row_nbr

integer

Position von Kachelzeilennummern

NOT NULL

col_nbr

integer

Position von Spaltenzeilennummern

NOT NULL

block_data

varbinary(max)

In der Kachel gespeicherte Pixeldaten

NOT NULL

SDE_bnd_<raster_column_id>

In der Raster-Band-Tabelle werden Informationen über die Bändern der Bilder gespeichert. Es gibt einen Datensatz für jedes Raster-Band.

ArcSDE-Geodatabases speichern Raster-Bänder in der Raster-Bänder-Tabelle. ArcSDE verbindet die Raster-Bänder-Tabelle mit der Raster-Tabelle in der Spalte RASTER_ID. Die RASTER_ID der Raster-Band-Tabellenspalte ist ein Fremdschlüsselverweis auf den Primärschlüssel der Raster-Tabelle.

Feldname

Feldtyp

Beschreibung

Null?

rasterband_id

integer

Eine Zahl, die ein Raster-Band darstellt. Ein Raster-Dataset mit zwei Raster-Bändern verfügt beispielsweise über zwei verschiedene Werte in diesem Feld – 1 und 2.

NOT NULL

sequence_nbr

integer

Sequenz des Raster-Bands im Raster-Dataset

NOT NULL

raster_id

integer

Die eindeutige Kennung des Raster-Datasets. Sie entspricht dem Wert in der Raster-Spalte der Business-Tabelle.

NOT NULL

name

nvarchar(65)

Der optionale Name eines Raster-Bands

band_flags

integer

Eine Bitmaske, die Eigenschaften des Bands beinhaltet

NOT NULL

band_width

integer

Die Pixelbreite des Bands

NOT NULL

band_height

integer

Die Pixelhöhe des Bands

NOT NULL

band_types

integer

Eine Bitmaske, die Eigenschaften des Bands beinhaltet

NOT NULL

block_width

integer

Die Pixelbreite eines Blocks

NOT NULL

block_height

integer

Die Pixelhöhe eines Blocks

NOT NULL

block_origin_x

float

Die X-Koordinate des Raster-Ursprungs

NOT NULL

block_origin_y

float

Die Y-Koordinate des Raster-Ursprungs.

NOT NULL

eminx

float

Der minimale X-Wert eines Raster-Bands

NOT NULL

eminy

float

Der minimale Y-Wert eines Raster-Bands

NOT NULL

emaxx

float

Der maximale Y-Wert in einem Raster-Band

NOT NULL

emaxy

float

Der maximale Y-Wert in einem Raster-Band

NOT NULL

cdate

integer

Das Erstellungsdatum des Raster-Bands

NOT NULL

mdate

integer

Das letzte Änderungsdatum des Raster-Bands

NOT NULL

SDE_ras_<raster_column_id>

In der Raster-Beschreibungstabelle wird die Beschreibung der Bilder in einer Raster-Spalte gespeichert.

Feldname

Feldtyp

Beschreibung

Null?

raster_id

integer

Die eindeutige Kennung des Raster-Datasets. Sie entspricht dem Wert in der Raster-Spalte der Business-Tabelle.

NOT NULL

raster_flags

integer

Für zukünftige Zwecke reserviert

description

nvarchar(65)

Die Beschreibung des Raster-Datasets

Andere Systemtabellen zur Raster-Verfolgung

Wie andere Datentypen werden Raster-Kataloge und Datasets in den Tabellen GDB_ITEMS und SDE_layers gespeichert. Spalten des Typ-Rasters werden in der Tabelle SDE_raster_columns gespeichert – es gibt einen Eintrag für jede Tabelle, die eine Raster-Spalte enthält.

Es können zusätzliche Attributtabellen als Teil des Raster-Datasets oder Raster-Katalogs vorhanden sein. Es sollte immer nur jeweils eine Raster-Attributtabelle pro Raster-Dataset geben, aber Raster-Kataloge können mehrere solcher Tabellen aufweisen. Die Raster-Attributtabellen werden verwendet, um Attribute für bestimmte Raster-Zellenwerte zu definieren. Informationen zum Verwenden dieser Tabellen finden Sie unterRaster-Dataset-Attributtabellen.

Sie können das Werkzeug "+++Raster-Attributtabelle erstellen" des Toolsets "Raster-Eigenschaften" im Toolset "Raster" der Toolbox "Datenmanagement" verwenden. Nähere Informationen zu diesem Werkzeug finden Sie unter +++Raster-Attributtabelle erstellen (Datenmanagement).

Bei Raster-Datasets werden die zusätzlichen Attributtabellen im Format SDE_VAT_<raster_column_ID> benannt. Bei Raster-Katalogen hat der Tabellenname das Format SDE_VAT_<raster_column_ID>_<Object_ID>.

Im ST_Raster-Format gespeichertes Raster

"ST_Raster" ist ein benutzerdefinierter Objekttyp, der aus verschiedenen Subtypes besteht. Ein Raster-Dataset, das den Speichertyp "ST_Raster" verwendet, besteht aus drei Tabellen: Business-Tabelle, Zusatztabelle und Blocktabelle. Bei Verwendung des Speichertyps "ST_Raster" in einer Geodatabase sind die entsprechenden Informationen, die für binäre Raster in der Raster- und Raster-Bandtabelle gespeichert würden, Teil des Objekts "ST_Raster" in der Basistabelle. Im Objekt "ST_Raster" ist zudem die Geometrie für das Raster gespeichert.

Im ST_Raster-Format gespeicherte Raster weisen Zusatz- (SDE_aux_<raster_ID>) und Blocktabellen (SDE_blk_<raster_ID>) auf (weitere Informationen finden Sie im Abschnitt "Raster-Bildtabellen" dieses Themas), verwenden aber kein Raster-Band (SDE_bnd_<raster_ID>) oder Rastertabellen (SDE_ras_<raster_ID>).

View a diagram of a raster dataset using ST_Raster storage in SQL Server.

HinweisHinweis:

Sie benötigen Adobe Acrobat Reader, um die Datei zu öffnen.

Die gestrichelten Linien geben implizite Beziehungen zwischen Spalten an.

Raster in einem XML-Dokument

Raster-Datasets sind in einem XML-Dokument in DataElement-Tags eingeschlossen. Die Tags haben den Wert "esri:DERasterDataset".

     <DataElement xsi:type="esri:DERasterDataset">
       <CatalogPath>/V=sde.DEFAULT/RD=gdb.RJP.world_TIF</CatalogPath> 
       <Name>gdb.RJP.world_TIF</Name> 
       <Children xsi:type="esri:ArrayOfDataElement">
          <DataElement xsi:type="esri:DERasterBand">
            <CatalogPath>/V=sde.DEFAULT/RD=gdb.RJP.world_TIF/RB=Band_1</CatalogPath> 
            <Name>Band_1</Name> 
            <DatasetType>esriDTRasterBand</DatasetType> 
            <DSID>-1</DSID> 
            <Versioned>false</Versioned> 
            <CanVersion>false</CanVersion> 
            <HasOID>true</HasOID> 
            <OIDFieldName>ObjectID</OIDFieldName> 
            <Fields xsi:type="esri:Fields">
              <FieldArray xsi:type="esri:ArrayOfField">
                <Field xsi:type="esri:Field">
                    <Name>ObjectID</Name> 
                    <Type>esriFieldTypeOID</Type> 
                    <IsNullable>false</IsNullable> 
                    <Length>4</Length> 
                    <Precision>0</Precision> 
                    <Scale>0</Scale> 
                    <Required>true</Required> 
                    <Editable>false</Editable> 
                </Field>
                <Field xsi:type="esri:Field">
                    <Name>Value</Name> 
                    <Type>esriFieldTypeInteger</Type> 
                    <IsNullable>true</IsNullable> 
                    <Length>0</Length> 
                    <Precision>0</Precision> 
                    <Scale>0</Scale> 
               </Field>
               <Field xsi:type="esri:Field">
                    <Name>Count</Name> 
                    <Type>esriFieldTypeInteger</Type> 
                    <IsNullable>true</IsNullable> 
                    <Length>0</Length> 
                    <Precision>0</Precision> 
                    <Scale>0</Scale> 
               </Field>
             </FieldArray>
         </Fields>
         <Indexes xsi:type="esri:Indexes">
           <IndexArray xsi:type="esri:ArrayOfIndex" /> 
         </Indexes>
         <IsInteger>true</IsInteger> 
         <MeanCellHeight>0.175996089009095</MeanCellHeight> 
         <MeanCellWidth>0.176000337991447</MeanCellWidth> 
         <Height>1024</Height> 
         <Width>2048</Width> 
         <PixelType>U8</PixelType> 
         <PrimaryField>1</PrimaryField> 
         <TableType>esriRasterTableValue</TableType> 
         <Extent xsi:type="esri:EnvelopeN">
            <XMin>-179.906382261841</XMin> 
            <YMin>-90.1303147686327</YMin> 
            <XMax>180.542309944643</XMax> 
            <YMax>90.089680376681</YMax> 
            <SpatialReference xsi:type="esri:GeographicCoordinateSystem">
   <WKT>GEOGCS["GCS_WGS_1984", DATUM["D_WGS_1984", SPHEROID["WGS_1984",6378137.0,298.257223563]], PRIMEM["Greenwich",0.0], UNIT["Degree",0.0174532925199433]]</WKT> 
          <XOrigin>-400</XOrigin> 
          <YOrigin>-400</YOrigin> 
          <XYScale>11258999068426.2</XYScale> 
          <ZOrigin>0</ZOrigin> 
          <ZScale>1</ZScale> 
          <MOrigin>0</MOrigin> 
          <MScale>1</MScale> 
          <XYTolerance>8.98315284119521E-09</XYTolerance> 
          <ZTolerance>2</ZTolerance> 
          <MTolerance>2</MTolerance> 
          <HighPrecision>true</HighPrecision> 
          <LeftLongitude>-180</LeftLongitude> 
         </SpatialReference>
        </Extent>
      </DataElement>

7/10/2012