Ein Esri Grid ist zum Speichern von Raster-Daten gedacht, mit denen der geographische Raum als Array gleich großer quadratischer Pixel (auch als Zellen bezeichnet), angeordnet in Zeilen und Spalten, definiert wird. Es gibt zwei Arten von Grids, die vom Datentyp abhängen: Integer und Gleitkomma.
Attribute für ein Integer-Grid werden in einer Wert-Attributtabelle (Value Attribute Table, VAT) gespeichert. Eine VAT enthält für jeden Einzelwert im Grid einen Datensatz. In dem Datensatz werden der Einzelwert und die Anzahl der Pixel gespeichert. VALUE ist ein Integer, der eine bestimmte Klasse oder Gruppierung von Pixeln darstellt. COUNT ist die Anzahl der Pixel, die den Wert im Grid darstellen. Wenn zum Beispiel 50 Pixel den Wert 1 haben und einen Wald darstellen, enthält die VAT für jedes der 50 Pixel die Angaben VALUE = 1 und COUNT = 50.
Weitere Informationen zu Attributtabellen für Raster-Datasets
Gleitkomma-Grids haben keine VAT, da die Pixel im Grid einen beliebigen Wert innerhalb eines bestimmten Wertebereichs annehmen können. Die Pixel in diesem Grid-Typ lassen sich nicht eindeutig in diskontinuierliche Kategorien einordnen. Der Pixelwert selbst stellt das Attribut zur Positionsbeschreibung dar. Beispielsweise bedeutet in einem Grid zur Darstellung von Höhendaten in Meter über dem Meeresspiegel ein Pixel mit dem Wert 10.1662, dass sich die Position ca. 10 Meter über dem Meeresspiegel befindet.
Für Datenwerte, die als Grid-Werte gespeichert werden können, gelten folgende Wertebereiche:
- In Gleitkomma-Grids können Werte von -3,4 x 1038 bis 3,4 x 1038 gespeichert werden.
- In Integer-Grids können Werte von 2147483648 bis 2147483647 (-231 bis 231-1) gespeichert werden.
Bei Integer-Grids gilt diese Angabe nur für das Feld VALUE. In Integer-Grids können der VAT weitere 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 Y-Achse des Koordinatensystems. Da jedes Pixel eines Grids die gleiche Bemaßung wie andere Pixel aufweist, können die Position und die Fläche der einzelnen Pixel anhand der Zeile und Spalte ermittelt werden. Das Koordinatensystem eines Grids ist daher durch die Pixelgröße, die Anzahl der Zeilen und Spalten sowie die XY-Koordinate der linken oberen Ecke definiert. Grids enthalten außerdem zusätzliche Informationen, beispielsweise das mit dem Grid verknüpfte Koordinatensystem.
Vorsicht:
Wie bei den meisten Formaten darf der Name des Grids keine Leerzeichen oder Sonderzeichen enthalten. Der Dateiname eines Multiband-Grids darf nicht mehr als 9 Zeichen umfassen, und der Dateiname eines Einzelband-Raster-Datasets darf nicht länger als 13 Zeichen sein.
Grid-Datenstruktur
Grids werden mit einer gekachelten Raster-Datenstruktur implementiert, in der die Grundeinheit für die Datenspeicherung aus einem rechteckigen Pixelblock besteht. Blöcke werden auf der Festplatte in komprimierter Form in einer Dateistruktur mit variabler Länge gespeichert, 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. Der obere Grenzwert für die Kachelgröße wird von der Anwendung festgelegt und beträgt 4.000.000 x 4.000.000 Pixel. 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 den oberen Grenzwert für die Kachelgröße überschreitet.
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 Kartenraumes müssen Kacheln und Blöcke aus verschiedenen Grids für die kombinierte Analyse nicht übereinstimmen. Sie können Grids so wie ein nahtloses Raster aus einheitlichen quadratischen Pixeln erstellen und ändern.
In Grids wird ein Run-length-Raster-Komprimierungsschema für Raster verwendet, das auf Blockebene angepasst werden kann. Jeder Block wird getestet, um die zu verwendende Tiefe (Bits pro Pixel) für den Block und das effizientere Speicherverfahren (Pixel für Pixel oder Run-length-codiert) zu ermitteln. Der Block wird in dem Format gespeichert, für das weniger Festplattenspeicher erforderlich ist. Das adaptive Komprimierungsschema 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 Pixel in einem einzelnen Layer, beispielsweise die Reklassifizierung von Daten, erfolgen direkt für die Datenprozesse und ohne Dekomprimierung. Operationen pro Pixel in mehreren Layern für komprimierte Eingabe-Layer überschneiden sich mit Datenprozessen aus den verschiedenen Layern und erfolgen für die sich überschneidenden Prozesse. Operationen pro Nachbarschaft in einem einzelnen Layer und Operationen pro Pixel in mehreren Layern, in denen komprimierte und unkomprimierte Daten vorhanden sind, erweitern die Prozesse auf die Pixel und führen Pixel für Pixel 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 rechteckigen Fensters, das durch die Kartenkoordinaten definiert ist.
Datenspeicherung von Grids
Ein Grid wird in einem Workspace gespeichert. Das Grid wird als eigenes Verzeichnis mit zugeordneten Tabellen und Dateien gespeichert, die spezifische Informationen zum Grid enthalten. In einem Integer-Grid-Workspace befinden sich die folgenden Tabellen und Dateien:
- Eine BND-Tabelle, in der die Grenzen des Grids gespeichert sind
- Eine HDR-Datei, in der spezifische Informationen zum Grid gespeichert sind, beispielsweise die Pixelauflösung und der Blockfaktor
- Eine STA-Tabelle, in der Statistiken für das Grid enthalten sind
- Eine VAT-Tabelle, in der die Attributdaten gespeichert sind, die mit den Zonen des Grids verknüpft sind
- Eine LOG-Datei, mit der die Aktivitäten im Grid überwacht werden
- Eine Kacheldatei w001001.adf (q0x1y1), in der die Pixeldaten und die zugehörige Indexdatei w001001x.adf (q0x1y1x), in der die Blöcke in der Kacheldatei und in der LOG-Datei indiziert werden, gespeichert werden
Wenn ein Grid geändert wird, werden die Werte und Informationen in den Dateien und Tabellen sofort aktualisiert.
BND-Tabelle
Eine Grid-BND-Tabelle enthält die Grenzen des Grids. Die Grenzen sind ein Rechteck, das die Pixel eines Grids umgibt. Es wird in Kartenkoordinaten gespeichert. BND-Tabellen eines Grids werden stets mit doppelter Genauigkeit gespeichert.
Die minimalen Koordinaten in der BND-Tabelle beziehen sich auf die linke untere Ecke des linken unteren Pixels im Grid. Die maximalen Koordinaten beziehen sich auf die rechte obere Ecke des rechten oberen Pixels im Grid.
HDR-Datei
Die HDR-Datei ist eine binäre Datei. Zu den in der Datei gespeicherten Informationen zählen die Pixelgröße, der Grid-Typ (Integer oder Gleitkomma), die Komprimierungsmethode, der Blockfaktor und Kachelinformationen.
STA-Tabelle
Die STA-Tabelle enthält statistische Daten zum Grid. In der STA-Tabelle sind die minimale, maximale, mittlere und die Standardabweichung des Grids als Gleitkommawerte gespeichert. Ändern Sie diese Werte nicht auf direktem Wege.
Da "NoData" einen unbekannten Wert darstellt, wird "NoData" für die Berechnung der Statistiken in der STA-Tabelle nicht verwendet.
Wenn ein Grid mit zwei Ebenen (das nur die Werte 0 und 1 enthält) erstellt wird, enthält die STA-Tabelle den Wert 0 für den Mittelwert und -1 für die Standardabweichung. Der Standardabweichungswert -1 gibt an, dass keine Statistiken für ein Grid berechnet wurden.
Der Standardabweichungswert -2 bedeutet, dass das Grid nur NoData-Pixel enthält.
VAT-Tabelle
In der VAT-Tabelle sind die Attributdaten gespeichert, die mit den Zonen eines Grids verknüpft sind Nur Integer-Grids verfügen über eine verknüpfte VAT. Jede VAT enthält mindestens zwei Felder: VALUE und COUNT. Das Feld VALUE enthält ganzzahlige Werte, die dazu dienen, die Merkmale einer Position von denen anderer Positionen in einem Grid zu unterscheiden. Alle Pixel, denen derselbe Wert zugeordnet ist, enthalten dieselben Merkmale und gehören deshalb zu derselben Zone. COUNT gibt die Anzahl der Pixel in einer Zone an.
Der VAT können neue Felder hinzugefügt werden. Die Felder VALUE und COUNT dürfen nicht geändert werden, und die VAT muss stets nach dem Feld VALUE sortiert sein.
Hinweis:
Vor den Feldern VALUE und COUNT dürfen keine neuen Felder hinzugefügt werden.
Pixel mit dem Wert "NoData" werden in der VAT nicht dargestellt.
Hier ein Beispiel einer VAT:
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 (Basiskachel) eines Grids gespeichert. Die Obergrenze für die Kachelgröße ist sehr hoch, und die meisten Grids werden in einer einzigen Kachel gespeichert. Wenn zusätzliche Kacheln verwendet werden, erfolgt die Nummerierung automatisch auf der Grundlage ihrer räumlichen Beziehung zur ersten Kachel. Kacheln sind als binäre Dateien mit variabler Länge implementiert.
LOG-Datei
Bei der LOG-Datei handelt es sich um eine ASCII-Datei mit Informationen zur Erstellung und zu Änderungen eines Grids. Mit der LOG-Datei werden die im Grid ausgeführten Aktionen überwacht, jedoch nicht alle Aktionen, die mit dem Grid ausgeführt wurden. Da alle Grid-Operationen zu einem neuen Grid führen, kann ein vorhandenes Grid nur mit Grid-Befehlen, beispielsweise RENAME und 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
Für den Namen eines Grids gelten die folgenden Einschränkungen:
- Er kann nicht mit Leerzeichen oder Sonderzeichen 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 Verzeichnis für Coverages und Grids gespeichert werden können. Die Gesamtzahl liegt bei etwa 10.000. Dadurch ergibt sich eine Einschränkung für die Anzahl der Grids, die Sie in einem Workspace speichern können. Nachfolgend 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 Integer-Grids mit VATs (weniger als 5.000 ohne VATs) oder
- Weniger als 10.000 Grid-Stacks
Die genannten Zahlen entsprechen dem theoretischen Maximum. Wenn Sie einen Prozess haben, der Zwischen-Grids (und damit Dateien im Workspace) erstellt, sind diese Zahlen niedriger. Wenn Sie darüber hinaus eine Mischung aus Dateien speichern, z. B. Grids und Coverages, speichern Sie weniger.
Diese Zahlen beziehen sich auf die Anzahl von Dateien im Grid-Ordner, in denen Informationen im Workspace gespeichert werden. Die maximale Anzahl ist auf 9.999 begrenzt. Dabei handelt es sich jedoch nicht um die Gesamtzahl von Dateien in einem Workspace, sondern um die Anzahl der Dateien, die auf die Dateien im Workspace zeigen. Für jedes Grid gibt es zwei Dateien im Ordner des Grids, der auf Dateien im Workspace zeigt: die BND-Dateien (Grenzdateien) und STA-Tabellendateien (Statistikdateien) (9999/2≈5000). Wenn ein Grid eine VAT hat, zeigt diese auch auf Dateien im Workspace, sodass die Zahl, die gespeichert werden kann, wieder reduziert wird (9999/3≈3333). Ein Grid-Stack weist nur eine einzelne Datei auf, die auf den Workspace zeigt (9999/1≈9999).
Stack
Stacks 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 Stack.
Ein Stack hat die folgenden Merkmale:
- Verschiedene Layer, wobei jeder Layer einem Grid entspricht
- Eine Kartenausdehnung oder BND
- Eine Pixelgröße
- Einen Datentyp
- Eine Projektion
Jedem Layer in einem Stack ist eine Indexnummer zugeordnet, mit der die Position im Stack angegeben wird. Die Grids, aus denen ein Stack 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 Stack, in denen sich die Layer überlappen. Die BND des Stacks befindet sich dort, wo sich die Grenzen der einzelnen Layer überschneiden. Die Berechnungen einer multivariaten Analysefunktion erfolgen im überlappenden Bereich. Wenn kein gemeinsamer Bereich der Eingabe-Layer vorhanden ist, bleibt der Stack leer, und es erfolgen keine Berechnungen.
Die Standardpixelgröße eines Stacks ist die des gröbsten Layers im Stack.
Sie können eine beliebige Anzahl an Datentypen (reelle oder ganze Zahlen) der Eingabe-Grids in einem Stack 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 Eingabedatentyp des Stacks den Datentyp der Ausgabe.
Projektionsinformationen, die mit den Eingabe-Grids verknüpft sind, werden mit dem Stack gespeichert. Da ein Stack als eine Einheit behandelt wird, müssen sich sämtliche Grids in einem Stack in derselben Projektion befinden. Mit den Projektionsinformationen wird sichergestellt, dass die einzelnen Grids des Stacks denselben geographischen Bereich bezeichnen.
Speichern eines Grid-Stacks
Ein Stack wird in einer Verzeichnisstruktur gespeichert, ähnlich einem Grid oder Coverage. Im Stack-Verzeichnis befinden sich zwei Dateien: eine externe Tabelle und eine ASCII-PRJ-Datei. Die eigentlichen Grids, die den Stack bilden, werden nicht im Stack gespeichert. Es handelt sich um einfache Grids in Ihrem Workspace. Dies bedeutet, dass jedes Grid in mehreren Stacks verwendet werden kann. In der STK-Tabelle sind die Namen und die entsprechenden Indexwerte der Grids gespeichert, die den Stack bilden:
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 Stack angegeben, das Feld GRID enthält die Namen der Grids im Stack. Die räumlichen Daten der Eingabe-Grids werden im Stack nicht dupliziert. Folglich gibt der Stack 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 nicht die Werte im Feld INDEX oder Namen im Feld GRID. Sämtliche Änderungen an diesen Feldern sollten nur über die entsprechenden Stack-Verwaltungsbefehle im Grid vorgenommen werden.
In der PRJ-Datei werden gegebenenfalls die Projektionsinformationen zum Stack 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 Stack unbekannt ist, wird keine PRJ-Datei erstellt.
Der Name eines Grid-Stacks darf keine Leerzeichen enthalten, nicht mit einer Zahl beginnen und maximal 9 Zeichen lang sein
NoData in einem Grid
Jedem Pixel in einem Grid ist ein Wert zugewiesen. Pixeln ohne Wert im Grid des entsprechenden Themas kann "NoData" zugewiesen werden. "NoData" und "0" sind nicht identisch, da "0" ein gültiger Wert ist. Aus diesem Grund können NoData-Pixel bei der Berechnung der Statistiken in der STA-Tabelle eines Grids nicht verwendet werden.