Implementieren benutzerdefinierter Raster-Typen in Python

Raster-Typen können angepasst und entsprechend dem Typ der Raster-Daten, die Sie hinzufügen möchten, in Python implementiert werden. Raster-Typen können mit verschiedenen Funktionen verglichen werden, die das Format der mit Ihren Daten verknüpften Metadatenstruktur erkennen. Der Raster-Typ kann außerdem die Metadaten analysieren, um Informationen wie Pfade zu den Datendateien, Raumbezugsinformationen und Metadaten (Sensorname, Sonnenhöhe, Sonnenazimut, Sonnenentfernung, Aufnahmedatum, Strahlung und Reflexionsparameter) abzurufen.

Neben dem Analysieren und Lesen von Metadaten aus der Metadatendatei definiert ein Raster-Typ auch die Verarbeitungsvorlagen, die für den gelesenen Datentyp gelten. Die Verarbeitungsvorlagen können verschiedene Informationen aus den Quelldaten kombinieren, um eine Ausgabe zu erzeugen, die aussagekräftiger ist und sich leichter anzeigen und analysieren lässt. Die meisten auf Sensordaten basierenden Raster-Typen definieren "Multispektral" als eine ihrer Verarbeitungsvorlagen. Viele andere Vorlagen können basierend auf dem Datentyp definiert werden, der für ein Produkt verfügbar ist. Der Raster-Typ "Landsat 8" definiert beispielsweise verschiedene Vorlagen wie Multispektral, Panchromatisch, Pan-Sharpened, Vegetation, Zirrus und Schnee/Eis.

Weitere Informationen zu den in Python implementierten ArcGIS-Raster-Typen finden Sie unter Github-Raster-Typen.

Eigenschaften eines Raster-Typs

Ein Raster-Typ wird erstellt, indem mindestens eine der folgenden Eigenschaften aus dessen Quelldaten definiert wird:

  • Bandeigenschaften: Beispielsweise Bandname, minimale und maximale Wellenlänge und Strahlungsintensität der Sonne
  • Verarbeitungsvorlagen: Raster-Funktionsvorlagen, die Eingaben, Funktionen und Werte oder Variablen enthalten
  • Hilfsfelder: Werden einem Mosaik-Dataset hinzugefügt
  • Zusätzliche Eingaben: Zusätzliche Informationen, die vom Raster-Typ zur vollständigen Beschreibung der Datenquelle angefordert werden, z. B. ein DEM, das zum Orthorektifizieren des Bildes auf das Quell-Dataset angewendet werden soll

Implementieren benutzerdefinierter Raster-Typen

Die Details der Implementierung eines Raster-Typs in ein Python-Modul werden nachfolgend beschrieben. Ein Raster-Typ ist ein Layer, der die Interaktion mit der Anwendung in Bezug auf verschiedene Aspekte der Daten vereinfacht. Raster-Typen spielen eine wichtige Rolle beim Hinzufügen von Rastern zu einem Mosaik-Dataset mit dem Werkzeug Raster zu Mosaik-Dataset hinzufügen.

Das ArcGIS-Framework identifiziert Raster-Typen durch die Verwendung bekannter Factory-Muster. Eine Raster-Typ-Factory enthält eine Sammlung von Raster-Typen, die nach bestimmten Kriterien organisiert werden kann oder bei der es sich lediglich um einen Container mit sämtlichen Raster-Typen handelt.

Es gibt drei Raster-Typ-Komponenten, die in Python implementiert sind:

Wie funktioniert es?

Die Architektur der Implementierung eines Raster-Typs in Python ist ein intuitiver Vorgang. ArcGIS stellt einen Raster-Typ-Adapter zur Verfügung, der Verbindungen mit dem ArcGIS-System und dem Python-Modul für die Raster-Typ-Implementierung herstellt. Der Adapter lädt das Python-Modul und sucht nach RasterTypeFactory, um die beteiligten Raster-Typen in diesem Modul zu identifizieren. Die RasterTypeFactory muss mindestens eine öffentliche Funktion enthalten, getRasterTypesInfo, die Informationen zu allen Raster-Typen in der Factory zurückgibt. Die Funktion getRasterTypesInfo gibt ein Wörterbuch von RasterTypeDefinitions zurück. Anschließend ruft der Adapter Informationen zu RasterTypes ab und behandelt die Python-basierten Raster-Typen auf die gleiche Weise wie andere in ArcGIS enthaltene Raster-Typen. Das ArcGIS-Framework interagiert dann mithilfe der Builder- und der Crawler-API mit dem Python-basierten Raster-Typ.

Platzieren Sie das Python-Modul im Ordner [InstallDirectory]\Resources\Raster\Types, nachdem Sie den Raster-Typ mithilfe von Python implementiert haben.

Das Raster-Typ-Framework in ArcGIS wählt alle *.py-Dateien aus diesem Speicherort aus und überprüft, ob sie gültige Raster-Typen enthalten. Wenn gültige Raster-Typen gefunden werden, werden sie der Liste der unterstützten Raster-Typen im Werkzeug Raster zu Mosaik-Dataset hinzufügen hinzugefügt.

Weitere Informationen zum Implementieren eines Raster-Typs in einem Python-Modul finden Sie unter Aufbau des Python-Raster-Typs.

Verwandte Themen