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:
Ein Raster-Katalog im Kataloginhaltsverzeichnis verfügt über folgendes 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.
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.
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.
Die Raster-Tabellen sind nur dann in der Datenbank vorhanden, wenn in der Geodatabase Raster-Daten enthalten sind.
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 |
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.
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 |
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 |
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.
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>