Raster-Datasets und Raster-Kataloge in einer Geodatabase in PostgreSQL
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 PostgreSQL über folgende Symbole:
Ein Raster-Katalog im Kataloginhaltsverzeichnis verfügt über folgendes Symbol:
Die Namen von Raster-Katalogen und Raster-Datasets in PostgreSQL enthalten den Namen der Datenbank, den Namen des Besitzers des Raster-Katalogs oder -Datasets sowie den Namen des Raster-Katalogs oder -Datasets selbst.
Beispiel: Ein Raster-Dataset "qa_ras_seattle2", das Benutzer "rocket" gehört und in der Datenbank "m8db" gespeichert ist, wird im Kataloginhaltsverzeichnis als "m8db.rocket.qa_ras_seattle2" aufgelistet.
Weitere Informationen zur Speicherung von Mosaik-Datasets in einer Geodatabase finden Sie unter Mosaik-Datasets in einer Geodatabase in PostgreSQL.
Raster-Tabellen in einer PostgreSQL-Datenbank
ArcSDE-Geodatabases in einer PostgreSQL-Datenbank können Raster-Daten entweder in der nativen bytea-Spalte von PostgreSQL oder im ST_Raster-Speichertyp speichern.
In "bytea" gespeicherte Raster
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 importieren, wird der Business-Tabelle Ihrer Wahl eine Raster-Spalte hinzugefügt. 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. ArcSDE beschränkt dies auf eine Raster-Spalte pro Business-Tabelle.
Sie können der Raster-Spalte einen beliebigen Namen geben, der der Namenskonvention für Spalten von PostgreSQL entspricht.
Ein Raster-Dataset besteht aus fünf Tabellen: Business-, Zusatz-, Block-, Band- und Raster-Tabelle. Die folgenden Tabellen gelten für das Raster-Dataset "qa_ras_seattle2_xf".
Die Zahlen in den Tabellen "sde_ras", "sde_bnd", "sde_aux" und "sde_blk" entsprechen der "rastercolumn_id" der Tabelle "sde_raster_columns".
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 qa_ras_seattle2_xf 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.
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 |
bytea |
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 |
bytea |
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 |
varchar(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 |
double precision |
Die X-Koordinate des Raster-Ursprungs |
NOT NULL |
block_origin_y |
double precision |
Die Y-Koordinate des Raster-Ursprungs. |
NOT NULL |
eminx |
double precision |
Der minimale X-Wert eines Raster-Bands |
NOT NULL |
eminy |
double precision |
Der minimale Y-Wert eines Raster-Bands |
NOT NULL |
emaxx |
double precision |
Der maximale Y-Wert in einem Raster-Band |
NOT NULL |
emaxy |
double precision |
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 |
varchar(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).
Für Raster-Datasets werden die zusätzlichen Attributtabellen im Format sde_vat_<raster_column_ID> benannt. Bei Raster-Katalogen wird der Tabellenname im Format sde_vat_<raster_column_ID>_<Object_ID> benannt.
View a diagram of a raster dataset using bytea storage in PostgreSQL.
Die gestrichelten Linien geben implizite Beziehungen zwischen Spalten an.
Sie benötigen Adobe Acrobat Reader, um die Datei zu öffnen.
Im ST_Raster-Format gespeicherte 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 PostgreSQL.
Die gestrichelten Linien geben implizite Beziehungen zwischen Spalten an.
Sie benötigen Adobe Acrobat Reader, um die Datei zu öffnen.
Raster in einem XML-Workspace-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=m8db.rocket.qa_ras_seattle2_xf</CatalogPath> <Name>m8db.rocket.qa_ras_seattle2_xf</Name> <Children xsi:type="esri:ArrayOfDataElement"> <DataElement xsi:type="esri:DERasterBand"> <CatalogPath>/V=sde.DEFAULT/RD=m8db.rocket.qa_ras_seattle2_xf/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>