Esri-Grid-Format
Ein Grid ist ein natives Esri-Speicherformat für Raster-Daten. Es gibt zwei Arten von Grids: Ganzzahlen-Grids und Float-Grids. Verwenden Sie Ganzzahlen-Grids zur Darstellung diskontinuierlicher Daten und Float-Grids zur Darstellung kontinuierlicher Daten.
Weitere Informationen zu diskontinuierlichen und kontinuierlichen Daten
Die Attribute für ein Ganzzahlen-Grid werden in einer Werteattributtabelle (VAT) gespeichert. Eine VAT enthält einen Datensatz pro Einzelwert im Grid. Im Datensatz wird der Einzelwert (VALUE ist ein Ganzzahlwert, der eine bestimmte Klasse oder Zellengruppe darstellt) und die Anzahl der Zellen (COUNT) im Grid gespeichert, die durch diesen Wert dargestellt wird. Wenn beispielsweise 50 Zellen den Wert 1 aufweisen und einen Wald darstellen, enthält die VAT für jede der 50 Zellen die Angaben VALUE = 1 und COUNT = 50.
Weitere Informationen zu Attributtabellen für Raster-Datasets
Bei Float-Grids fehlt die VAT, da die Zellen im Grid jeden beliebigen Wert innerhalb eines vorgegebenen Wertebereichs annehmen können. Die Zellen dieses Grid-Typs lassen sich nicht eindeutig in diskontinuierliche Kategorien einordnen. Der Zellenwert selbst stellt das Attribut zur Positionsbeschreibung dar. Beispielsweise wird in einem Grid mit Höhendaten in Meter über dem Meeresspiegel durch eine Zelle mit dem Wert 10,1662 angegeben, dass sich die Position etwa 10 Meter über dem Meeresspiegel befindet.
Für Datenwerte, die als Grid-Werte gespeichert werden können, gelten folgende Wertebereiche:
- In Float-Grids können Werte von -3,4 x 1038 bis 3,4 x 1038 gespeichert werden.
- In Ganzzahlen-Grids können Werte von -2147483648 bis 2147483647 (-231 bis 231-1) gespeichert werden.
Bei Ganzzahlen-Grids gilt diese Angabe nur für das Feld VALUE. In Ganzzahlen-Grids können der VAT weitere INFO-Felder hinzugefügt werden, deren Wertebereich von der Felddefinition abhängt.
Das Koordinatensystem eines Grids ist mit dem anderer geographischer Daten identisch. Die Zeilen und Spalten verlaufen parallel zur x- und zur y-Achse der Koordinatensystems. Da jede Zelle eines Grids die gleiche Bemaßung wie andere Zellen aufweist, können die Position und die Fläche der einzelnen Zellen leicht anhand der Zeile und Spalte ermittelt werden. Das Koordinatensystem eines Grids ist daher durch die Zellengröße, die Anzahl der Zeilen und Spalten sowie die XY-Koordinate der oberen linken Ecke definiert. Zu den zusätzlichen Informationen in Grids zählt beispielsweise das dem Grid zugeordnete Koordinatensystem.
Wie bei den meisten Formaten darf der Name des Grids keine Leerzeichen oder Sonderzeichen enthalten. Der Name eines Multiband-Grids darf nicht mehr als 9 Zeichen umfassen, und der Name eines Einzelband-Raster-Datasets darf nicht länger als 13 Zeichen sein.
Datenstruktur von Grids
Grids werden mit einer Tiled-Raster-Datenstruktur implementiert, in der die Grundeinheit für die Datenspeicherung aus einem rechteckigen Zellenblock besteht. Blöcke werden in komprimierter Form auf der Festplatte gespeichert. Dies erfolgt in einer Dateistruktur mit variabler Länge, die als Kachel bezeichnet wird. Jeder Block wird als Datensatz mit variabler Länge gespeichert.
Die Kachelgröße für ein Grid beruht auf der Anzahl der Zeilen und Spalten im Grid zum Zeitpunkt der Erstellung. Die Obergrenze für die Kachelgröße ist durch die Anwendung festgelegt und sehr hoch (derzeit 4.000.000 x 4.000.000 Zellen). Folglich werden die meisten Grids in GIS-Anwendungen automatisch in nur einer Kachel gespeichert. Die räumlichen Daten für ein Grid werden automatisch auf mehrere Kacheln aufgeteilt, wenn die Größe des Grids zum Zeitpunkt der Erstellung größer als die Obergrenze für die Kachelgröße ist.
Durch die Speicherung von Grids in Blöcken werden sowohl der sequenzielle als auch der zufällige räumliche Zugriff auf große Raster-Datasets unterstützt. Aus der Blockstruktur ergeben sich keine Einschränkungen für die kombinierte Grid-Analyse. Auch hinsichtlich des Kartenbereichs müssen Kacheln und Blöcke aus verschiedenen Grids für die kombinierte Analyse nicht übereinstimmen. Die Kachel- und Blockstruktur eines Grids ist auf der Benutzeroberfläche vollständig verborgen. Die Benutzer erstellen und ändern Grids so wie ein nahtloses Raster aus einheitlichen quadratischen Zellen.
In Grids wird ein Run-length-Komprimierungssystem für Raster verwendet, das auf Blockebene angepasst werden kann. Jeder Block wird getestet, um die zu verwendende Tiefe (Bits pro Zelle) für den Block und das effizientere Speicherverfahren (Zelle für Zelle oder Run-length-codiert) zu ermitteln. Der Block wird in dem Format gespeichert, für das weniger Festplattenspeicherplatz erforderlich ist. Das adaptive Komprimierungssystem ist optimal, da in diesem sowohl homogene Kategoriedaten als auch heterogene kontinuierliche Daten effizient dargestellt werden, wobei die kombinierte Analyse für beide Datentypen unterstützt wird. Operationen pro Zelle in einem einzelnen Layer, beispielsweise die Reklassifizierung von Daten, erfolgen direkt für die Durchläufe der Daten und ohne Dekomprimierung. Operationen pro Zelle in mehreren Layern für komprimierte Eingabe-Layer überschneiden sich mit Durchläufen von Daten aus den verschiedenen Layern und erfolgen für die sich überschneidenden Durchläufe. Operationen pro Nachbarschaft in einem einzelnen Layer und Operationen pro Zelle in mehreren Layern, in denen komprimierte und unkomprimierte Daten vorhanden sind, erweitern die Durchläufe auf die Zellen und führen Zelle für Zelle eine herkömmliche und transparente Verarbeitung durch.
Die Blockstruktur der Kacheln in einem Grid ist auch für alle Anwendungen transparent, die auf die räumlichen Daten im Grid zugreifen. Bei Programmen, die Grids ändern, erfolgt der Zugriff auf die räumlichen Daten durch das Festlegen eines rechteckiges Fensters, das durch die Kartenkoordinaten definiert ist.
Datenspeicherung von Grids
Ein Grid ist in einem ArcInfo-Workspace gespeichert. Ein Grid wird wie ein Coverage als eigenes Verzeichnis mit zugeordneten Tabellen und Dateien gespeichert, die spezifische Informationen zum Grid enthalten. In einem Ganzzahlen-Grid-Verzeichnis (ursprünglich von ArcInfo Workstation erstellt) befinden sich die folgenden Tabellen und Dateien: die BND-Tabelle, in der die Grenzen des Grids gespeichert sind; die HDR-Datei, in der spezifische Informationen zum Grid gespeichert sind, beispielsweise die Zellenauflösung und der Blockfaktor; die STA-Tabelle, in der die Statistiken für das Grid enthalten sind; die VAT-Tabelle, in der die Attributdaten gespeichert sind, die mit den Zonen des Grids verknüpft sind; die Protokolldatei (LOG), in der die Aktivitäten im Grid aufgezeichnet werden; die Kacheldatei "w001001.adf" (q0x1y1), in der die Zellendaten gespeichert sind; und die entsprechende Indexdatei "w001001x.adf" (q0x1y1x), in der die Blöcke in der Kachel und in der LOG-Datei indiziert werden. (Einige der genannten Tabellen und Dateien, beispielsweise die Protokolldatei, sind möglicherweise nicht vorhanden, wenn sie mit ArcGIS-Operatoren erstellt wurden.)
Wenn ein Grid geändert wird, werden die Werte und Informationen in den Dateien und Tabellen sofort aktualisiert. Die Informationen in INFO-Tabellen sind für die Benutzer zugänglich und beziehen sich auf das Grid.
BND-Tabelle
Die BND-Tabelle eines Grids enthält dessen Grenzen. Die Grenzen sind ein Rechteck, das die Zellen eines Grids umgibt. Es wird in Kartenkoordinaten gespeichert. BND-Tabellen eines Grids werden stets mit doppelter Genauigkeit gespeichert.
Die Minimalkoordinaten in der BND-Tabelle befinden sich in der linken unteren Ecke der linken unteren Zelle im Grid. Die Maximalkoordinaten in der BND-Tabelle befinden sich in der rechten oberen Ecke der rechten oberen Zelle im Grid.
HDR-Datei
Die HDR-Datei ist eine Binärdatei. Zu den in der Datei gespeicherten Informationen zählen die Zellengröße, der Grid-Typ (Ganzzahlen-Grid oder Float-Grid), die Komprimierungsmethode, der Blockfaktor und Kachelinformationen.
STA-Tabelle
Die STA-Tabelle ist eine INFO-Tabelle mit statistischen Daten zum Grid. In der STA-Tabelle sind Minimum, Maximum, Mittelwert und Standardabweichung des Grids als Gleitkommawerte gespeichert. Ändern Sie diese Werte nicht auf direktem Wege.
Da "NoData" einen unbekannten Wert darstellt, wird "NoData" beim Berechnen der Statistiken in der STA-Tabelle nicht verwendet.
Beim Erstellen eines Grids mit zwei Stufen (das nur die Werte 0 und 1 enthält) ist in der STA-Tabelle der Wert 0 für den Mittelwert und der Wert -1 für die Standardabweichung enthalten. Mit dem Wert -1 für die Standardabweichung wird angegeben, dass noch keine Statistiken für das Grid berechnet wurden.
Mit dem Wert -2 für die Standardabweichung wird angegeben, dass das Grid ausschließlich NoData-Zellen enthält.
VAT-Tabelle
Die VAT-Tabelle ist eine INFO-Tabelle, in der die Attribute gespeichert sind, die mit den Zonen des Grids verknüpft sind. VAT-Tabellen sind nur mit Ganzzahlen-Grids verknüpft. VAT-Tabellen enthalten mindestens zwei Felder: VALUE und COUNT. Im Feld VALUE sind Ganzzahlwerte enthalten, mit denen die Merkmale einer Position im Grid von den anderen Positionen im Grid unterschieden werden. Allen Zellen, denen der gleiche Wert zugewiesen ist, weisen die gleichen Merkmale auf und gehören daher zur gleichen Zone. Im Feld COUNT wird die Anzahl der Zellen in einer Zone angegeben.
Der VAT-Tabelle können neue Felder hinzugefügt werden. Die Felder VALUE und COUNT dürfen nicht geändert werden, und die VAT-Tabelle muss stets nach dem Feld VALUE sortiert sein. Vor den Feldern VALUE und COUNT dürfen keine neuen Felder eingefügt werden.
Zellen mit dem Wert "NoData" werden in der VAT-Tabelle nicht dargestellt.
Hier ein Beispiel einer VAT-Tabelle:
Record VALUE COUNT 1 0 628872 2 1 265043 3 2 151150 4 3 3185652 5 4 79983 6 5 4782 7 6 74334 8 7 8877 9 8 1817 10 9 491 11 10 858 12 11 8770 13 12 28789 14 13 72539 15 14 3686 16 15 3932 17 16 13227 18 17 1890 19 18 1305 20 19 427286 21 20 6695
Kacheldateien
In den Dateien "w001001.adf" (q0x1y1) und "w001001x.adf" (q0x1y1x) sind die Daten und der Index für die erste Kachel (Grundkachel) eines Grids gespeichert. Die Obergrenze für die Kachelgröße ist sehr hoch, und viele Grids sind in einer einzigen Kachel gespeichert. Wenn zusätzliche Kacheln verwendet werden, so erfolgt die Nummerierung auf der Grundlage der räumlichen Beziehung zur ersten Kachel. Kacheln sind als Binärdateien mit variabler Länge implementiert. In Versionen vor ArcInfo 7.x lauteten die Dateinamen "q0x1y1" bzw. "q0x1y1x". Sie können in der aktuellen Software weiterhin verwendet werden.
LOG-Datei
Bei der LOG-Datei handelt es sich um eine ASCII-Datei mit Informationen zur Erstellung und zu Änderungen in einem Grid. In der LOG-Datei werden die im Grid durchgeführten Aktionen aufgezeichnet, jedoch nicht alle Aktionen, die mit dem Grid durchgeführt wurden. Da alle Grid-Funktionen zu einem neuen Grid führen, kann ein vorhandenes Grid nur mit Grid-Befehlen, beispielsweise RENAME oder COPY, geändert werden, die dann auch in die LOG-Datei übernommen werden. Der Zugriff auf die LOG-Datei kann wie bei allen ASCII-Dateien über Systembefehle oder mit einem beliebigen Texteditor erfolgen.
Speichereinschränkungen
Der Name eines Grids ist wie folgt beschränkt:
- Er kann nicht mit Leerzeichen gespeichert werden.
- Er kann nicht mit einer Zahl beginnen.
- Er kann nicht länger als 13 Zeichen sein (ein Multiband-Grid darf bis zu 9 Zeichen enthalten).
Es gibt eine Grenze für die Anzahl von Dateien, die in einem INFO-Verzeichnis für Coverages und Grids gespeichert werden können. Diese Gesamtzahl ist ungefähr 10.000. Daher schränkt dies die Anzahl der Grids ein, die Sie in einem Workspace speichern können. Im folgenden wird zum Beispiel die theoretische maximale Anzahl von Grid-Datasets aufgelistet, die in einem einzelnen Workspace-Verzeichnis gespeichert werden können:
- Weniger als 5.000 Gleitkomma-Grids oder
- Weniger als 3.333 Ganzzahlen-Grids mit VATs (weniger als 5.000 ohne VATs) oder
- Weniger als 10.000 Grid-Stacks
Die vorangehenden Zahlen entsprechen dem theoretischen Maximum. Wenn Sie einen Prozess haben, der Zwischen-Grids erstellt (und damit Dateien im INFO-Verzeichnis), sind diese Zahlen niedriger. Wenn Sie darüber hinaus eine Mischung aus Dateien speichern, z. B. Grids und Coverages, speichern Sie weniger. Das liegt daran, dass es für jedes Grid mindestens zwei Dateien gibt, die im INFO-Verzeichnis erstellt wurden. Eine dritte wird erstellt, um ein VAT zu speichern. Für jeden Grid-Stack ist eine Datei im INFO-Verzeichnis erforderlich.
Stapel
Stapel bestehen aus einem sortierten Satz räumlich überlappender Grids (Layer), die für die multivariate Analyse als Einzelelement behandelt werden. Cluster-Analyse, Klassifizierung und Hauptkomponentenanalyse arbeiten jeweils mit Layern in einem Stapel.
Stapel weisen die folgenden Merkmale auf:
- Einen Satz von Layern, wobei jeder Layer einem Grid entspricht
- Kartenausdehnungen bzw. BND
- Eine Zellengröße
- Einen Datentyp
- Eine Projektion
Jedem Layer in einem Stapel ist eine Indexnummer zugeordnet, mit der die Position im Stapel angegeben wird. Die Grids, aus denen ein Stapel besteht, müssen sich in demselben Workspace befinden.
Die Grenzen der Eingabe-Layer können sich vollständig, teilweise oder gar nicht überlappen. Allerdings bilden nur die Bereiche einen Stapel, in denen sich die Layer überlappen. Die BND-Tabelle des Stapels befindet sich dort, wo sich die Grenzen der einzelnen Layer überschneiden. Die Berechnungen der multivariaten Analysefunktion erfolgen im überlappenden Bereich. Wenn kein gemeinsamer Bereich der Eingabe-Layer vorhanden ist, bleibt der Stapel leer, und es erfolgen keine Berechnungen.
Die Standardzellengröße eines Stapels ist die des gröbsten Layers im Stapel.
Sie können eine beliebige Anzahl an Datentypen (reelle oder ganze Zahlen) der Eingabe-Grids in einem Stapel kombinieren. Vor dem Anwenden eines multivariaten Verfahrens müssen Sie jedoch den Typ der Werte berücksichtigen, das heißt, ob es sich um kategorisierte oder kontinuierliche Daten handelt und welchen Bereich bzw. relativen Bereich die Werte einnehmen. In bestimmten Analysen bestimmt der Eingabe-Datentyp des Stapels den Ausgabe-Datentyp.
Projektionsinformationen, die mit den Eingabe-Grids verknüpft sind, werden mit dem Stapel gespeichert. Da ein Stapel als Einzelelement behandelt wird, müssen sich sämtliche Grids in einem Stapel in derselben Projektion befinden. Mit den Projektionsinformationen wird sichergestellt, dass die einzelnen Grids des Stapels denselben geographischen Bereich bezeichnen.
Speichern eines Grid-Stapels
Ein Stack wird in einer Verzeichnisstruktur gespeichert, ähnlich einem Grid oder Coverage. Im Stapelverzeichnis befinden sich zwei Dateien: eine externe INFO STK-Tabelle und eine ASCII PRJ-Datei. Die Grids, die sich tatsächlich im Stapel befinden, werden nicht im Stapel gespeichert. Der Workspace enthält einfache Grids. Jedes Grid kann in mehreren Stapeln verwendet werden. In der STK-Tabelle sind die Namen und die entsprechenden Indexwerte der Grids gespeichert, die den Stapel enthalten:
GRID: LIST JER135.STK Record INDEX GRID 1 1 jer1 2 2 jer3 3 3 jer5
Im Feld INDEX ist die Position des Grids im Stapel angegeben, das Feld GRID enthält den Namen des Grids im Stapel. Die räumlichen Daten der Eingabe-Grids werden im Stapel nicht dupliziert. Folglich gibt der Stapel stets die aktuelle Version der Eingabe-Grids wieder. Auf die STK-Datei kann wie auf jede andere INFO-Datei zugegriffen werden. Sie können weitere beschreibende Spalten hinzufügen, beispielsweise eine Spalte zum Speichern des Datums der Datenerfassung. Ändern Sie jedoch über die INFO-Datei nicht die Werte im Feld INDEX oder Namen im Feld GRID. Sämtliche Änderungen an Spaltennamen sollten nur über die entsprechenden Stapelverwaltungsbefehle in Grid vorgenommen werden.
In der PRJ-Datei werden ggf. die Projektionsinformationen zum Stapel gespeichert:
Projection STATEPLANE Zone 4701 Datum NAD27 Zunits NO Units FEET Spheroid CLARKE1866 Xshift 0.0000000000 Yshift 0.0000000000 Parameters
Wenn die Projektion für alle Eingabe-Grids im Stapel unbekannt ist, wird keine PRJ-Datei erstellt.
Der Name eines Grid-Stapels darf keine Leerzeichen enthalten, nicht mit einer Zahl beginnen und maximal 9 Zeichen lang sein.
"NoData" in einem Grid
Jeder Zelle in einem Grid ist ein Wert zugewiesen. Zellen ohne Wert im Grid des entsprechenden Themas kann "NoData" zugewiesen werden. "NoData" und "0" (null) sind nicht identisch, da 0 ein gültiger Wert ist. Aus diesem Grund können NoData-Zellen bei der Berechnung der Statistiken in der STA-Tabelle eines Grids nicht verwendet werden.