Die Interaktion des Raster-Objekts in ArcGIS

Ein Raster-Objekt verweist auf ein Raster-Dataset und kann, wenn es in ArcMap verwendet wird, mit einem Raster-Layer im Inhaltsverzeichnis verknüpft werden. Die Beziehungen zwischen dem Raster-Dataset, dem Raster-Objekt und dem Raster-Layer werden in den meisten Fällen beibehalten, es ist aber wichtig, dass Sie diese Beziehungen verstehen, um produktiv mit Map Algebra in Spatial Analyst arbeiten zu können.

Es gibt zwei Möglichkeiten zur Erstellung von Raster-Objekten:

In einigen Fällen ist ein Raster-Objekt mit einem Raster-Layer verknüpft. Wenn Sie im Python-Fenster arbeiten, wird, wenn die Geoverarbeitungsoption Ergebnisse der Geoverarbeitungsoperationen der Anzeige hinzufügen aktiviert ist, das Ergebnis eines Map Algebra-Ausdrucks dem Inhaltsverzeichnis mit demselben Namen wie das Raster-Objekt hinzugefügt. Wenn ein Dataset als Raster verarbeitet wird, wird dem Inhaltsverzeichnis kein Layer hinzugefügt.

Speichern von temporären Rastern

Wenn mit dem Raster-Objekt temporäre Daten verknüpft sind, wird es gelöscht, wenn die ArcGIS-Sitzung beendet wird (wenn das Objekt den Bereich verlässt oder das Skript abgeschlossen wird). Dies ist der Fall, sofern die Daten nicht gespeichert werden. Wenn ein Raster gespeichert wird, spiegeln der Layer und das Objekt die aktualisierten Raster-Eigenschaften, einschließlich name, path, catalogPath, und des isTemporary-Status des Datasets, wider. Es gibt mehrere Möglichkeiten zum Speichern eines temporären Datasets.

Wiederverwenden eines Raster-Objekts

Objektnamen müssen eindeutig sein. Wenn ein Objektname wiederverwendet wird, wird das ursprüngliche Objekt überschrieben. Im Beispiel unten wird die Ausgabe von Neigung ersetzt, wenn outRas als Ausgabe des Ausdrucks Ausrichtung wiederverwendet wird.

outRas = Slope("inRas1") 
outRas = Aspect("inRas2")

Dem Inhaltsverzeichnis werden Layer mit demselben Namen wie das Raster-Objekt hinzugefügt. Wenn ein Raster-Objektname wiederverwendet wird, werden mehrere Layer mit demselben Namen dem Inhaltsverzeichnis hinzugefügt. Im Beispiel oben wird outRas dem Inhaltsverzeichnis zweimal hinzugefügt. Das erste Mal ist dann, wenn der Ausdruck Neigung ausgeführt wird. Dieser erste outRas-Layer verweist auf das Ergebnis der Neigung und kann im Python-Fenster verwendet werden, bis der Ausdruck Ausrichtung ausgeführt wird. Wenn die Ausrichtung ausgeführt wird, wird dem Inhaltsverzeichnis ein zweiter Layer mit dem Namen outRas hinzugefügt, und das Objekt wird überschrieben und verweist nun auf das Dataset und den Layer, die sich aus der Ausrichtung ergeben.

TippTipp:

Wenn das Raster-Objekt, das auf ein Dataset verweist, überschrieben wurde, kann das Raster-Dataset mit dem Layer oder dem Dataset-Namen als Raster-Objekt überarbeitet werden.

Löschen eines Raster-Objekts

Wenn ein Raster-Objekt gelöscht wird, hängt das, was mit dem verknüpften Dataset (und dem möglichen Layer) geschieht, vom Status der Daten ab. Wenn die Daten permanent sind, hat das Löschen des Raster-Objekts keinen Einfluss auf das verknüpfte Dataset oder den Layer. Wenn ein Dataset temporär ist, sind die Auswirkungen des Löschens des Raster-Objekts davon abhängig, ob ein Layer vorhanden ist, der auch auf das Raster-Dataset verweist. Wenn es keinen Layer gibt, der mit dem temporären Dataset verknüpft ist, und das Objekt wird gelöscht, so wird das Dataset gelöscht. Wenn ein Layer vorhanden ist, der mit dem temporären Dataset verknüpft ist, und das Objekt wird gelöscht, so bleiben die temporären Daten bestehen.

AchtungAchtung:
Temporäre Daten, auf die von einem Layer verwiesen wird, werden nicht gelöscht, wenn das Raster-Objekt gelöscht wird; es werden jedoch alle temporären Daten gelöscht, wenn die Anwendung geschlossen wird, außer sie werden unabhängig von vorhandenen Layern oder Objekten gespeichert.

Nachfolgend ist ein Beispiel zum Löschen eines Raster-Objekts mit dem Namen outRas dargestellt.

outRas = Slope("C:/Data/elevation") 
del outRas

Zuweisen des Raster-Objekts zu einem neuen Raster-Objekt

Durch Zuweisen eines Raster-Objekts zu einem neuen Raster-Objekt werden das verknüpfte Dataset oder der Layer nicht kopiert. Durch Zuweisen eines Raster-Objekts zu einem neuen Raster-Objekt wird ein zweites Objekt erstellt, das auf das ursprüngliche Objekt verweist. Im Beispiel unten verweisen sowohl outRas1 als auch outRas2 auf dasselbe Raster-Dataset.

outRas1 = Slope("elevation")  

# Assigns Raster object to a new Raster object and save the raster dataset
outRas2 = outRas1
outRas2.save("C:/output/outslope")

Im Beispiel oben verweisen sowohl outRas1 als auch outRas2 auf dasselbe Dataset. Wenn outRas2 gespeichert wird, spiegeln daher beide Objekte den permanenten Status, den neuen Speicherort und den neuen Namen des gespeicherten Datasets wider (outslope). Wenn outRas1 ein Layer im Inhaltsverzeichnis ist und Sie die Daten durch die Layer-Eigenschaft oder durch Speichern des Kartendokuments beibehalten, verweisen beide Objekte, outRas1 und outRas2, auf das gespeicherte Dataset.

Verwandte Themen

5/9/2014