Arbeiten mit Raster-Objekten

Mit der Spatial Analyst-Lizenz verfügbar.

Raster-Objekte können als Eingabe in Map Algebra-Ausdrücke verwendet werden und sind die Hauptausgabe aus Map Algebra-Ausdrücken. Bei der Ausführung eines Map Algebra-Ausdrucks, der Operatoren verwendet, müssen die Eingaben Raster-Objekte oder Konstanten sein. Raster-Ausgaben aus Map Algebra-Ausdrücken sind immer temporär, können jedoch durch Aufrufen der Methode save für das Raster-Objekt gespeichert werden. Raster-Objekte können abgefragt werden, um einfach auf die Eigenschaften des referenzierten Datasets zuzugreifen.

Erstellen eines Raster-Objekts

Raster-Objekte werden entweder durch Bearbeitung eines Raster-Datasets oder als Ausgabe von Werkzeugen in der Erweiterung "ArcGIS Spatial Analyst" erstellt. Durch die Bearbeitung eines Rasters kann das Raster-Dataset einfach nach vielen Eigenschaften abgefragt werden.

  1. Geben Sie zur Erstellung eines Raster-Objekts einen Layer-Namen oder Pfad und einen Dataset-Namen ein wie in folgendem Beispiel dargestellt.
    rasObject = Raster("C:/Data/elevation")
    In voranstehender Anweisung sind die Eigenschaften des Raster-Datasets elevation jetzt über das resultierende Raster-Objekt (rasObject) verfügbar. Eine Liste der Eigenschaften für Raster-Objekte finden Sie unter Eine vollständige Liste der Raster-Objekt-Eigenschaften.
  2. Raster-Objekte werden als linke Ausgabe aus Spatial Analyst Tools erstellt.
    # rasObject is a Raster object pointing to a temporary 
    #   raster dataset
    rasObject = Slope("C:/Data/elevation")
    Hinweis:

    Nicht im Spatial Analyst-Toolset enthaltene Werkzeuge geben keine Raster-Objekte aus.

Save-Methode für Raster

Das mit dem Raster-Objekt verknüpfte Raster kann mit der Methode save gespeichert werden.

Mit Spatial Analyst-Werkzeugen werden temporäre Ausgaben erzeugt. Diese Ausgaben können mit der Methode save des Raster-Objekts gespeichert werden. In dem Beispiel unten wird die temporäre Ausgabe aus dem Werkzeug Neigung in einem angegebenen Ausgabeordner gespeichert.

outraster = Slope("C:/Data/elevation")
outraster.save("C:/output/sloperaster")

  • Der Speicherort der Daten richtet sich nach der Eingabe in die Methode save und den angegebenen Workspace-Umgebungen.

    1. Wird der vollständige Pfad mit Dataset-Name angegeben, werden die dauerhaften Daten an diesem Speicherort gespeichert.
    2. Wird nur ein Dataset-Name angegeben, wird der Speicherort der gespeicherten Daten durch die Geoverarbeitungs-Workspace-Umgebungen definiert.
      • Ist der Scratch- oder der aktuelle Workspace festgelegt, werden die gespeicherten Daten an dem Speicherort des angegebenen Workspace gespeichert.
      • Sind der Scratch- und der aktuelle Workspace festgelegt, werden die gespeicherten Daten im aktuellen Workspace gespeichert.
      • Ist kein Workspace angegeben, wird ein Fehler ausgegeben.

  • Möchten Sie die Daten einfach mit dem Standardnamen an dem bestehenden Speicherort beibehalten, rufen Sie die Methode save auf, ohne einen Namen anzugeben, wie in nachstehendem Beispiel gezeigt:
    outraster.save()
  • Mit der Methode save werden alle von Spatial Analyst unterstützten Raster-Formate unterstützt. Im nachstehenden Beispiel wird die Raster-Methode save zum Speichern von Daten in einem File-Geodatabase-Raster und in einem TIFF-Format-Raster verwendet.
    outraster.save("C:/output/file_gdb.gdb/sloperaster")
    outraster.save("C:/output/sloperaster.tif")

Arbeiten mit Raster-Eigenschaften

Wird ein Raster als Raster-Objekt bearbeitet, können Eigenschaften einfach aus dem Dataset abgerufen werden. Alle Raster-Objekteigenschaften sind schreibgeschützt. Mit der Abfrage einer Raster-Eigenschaft werden eine Zeichenfolge, eine Zahl oder ein Objekt zurückgegeben. Raster-Eigenschaften können auf verschiedene Weise verwendet werden, zum Beispiel als Eingabe für einen Werkzeugparameter oder für die Festlegung einer Umgebungseinstellung (wie nachfolgend dargestellt).

from arcpy import env
from arcpy.sa import *
outraster = Raster("C:/Data/studyarea")
myextent = outraster.extent
# Modify myextent as necessary for your workflow and use it to set the extent environment
env.extent = myextent
Hinweis:

Die außerhalb des Raster-Objekts verfügbaren Raster-Eigenschaften sind eine Kombination aus Eigenschaften, die auch über die Funktion Describe (Raster-Dataset-Eigenschaften) und über das Werkzeug Raster-Eigenschaften abrufen abgerufen werden können.

Verwandte Themen