Mit der Spatial Analyst-Lizenz verfügbar.
Ein Raster-Objekt verweist auf ein Raster-Dataset und kann, wenn es in einer Kartenanzeige 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 der Map Algebra in Spatial Analyst arbeiten zu können.
Es gibt folgende Möglichkeiten zur Erstellung von Raster-Objekten:
- Die Ausgabe eines Map Algebra-Ausdrucks ist ein Raster-Objekt. Eine der wichtigsten Verhaltensweisen eines Raster-Objekts besteht darin, dass es auf ein temporäres Raster verweist, wenn es als primäre Ausgabe aus einem Map Algebra-Ausdruck erstellt wird.
>>> outRas = Slope("elevation") >>> print outRas(isTemporary) True
- Ein Raster-Dataset kann als Raster-Objekt verarbeitet werden. Wenn ein permanentes Raster-Dataset als Raster-Objekt verarbeitet wird, bleibt das Dataset dauerhaft bestehen.
>>> outRas = Raster("C:/Data/elevation") >>> print outRas(isTemporary) False
Wenn Sie im Python-Fenster arbeiten, wird das Ergebnis eines Map Algebra-Ausdrucks zum Bereich Inhalt mit demselben Namen wie das Raster-Objekt hinzugefügt. Wenn ein Dataset als Raster verarbeitet wird, wird dem Inhaltsverzeichnis kein Layer hinzugefügt.
Speichern eines temporären Rasters
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) und die Daten nicht gespeichert wurden. Wenn ein Raster gespeichert wird, wirken sich die aktualisierten Raster-Eigenschaften für name, path, catalogPath und der isTemporary-Status des Datasets auf den Layer und das Objekt aus. Sie haben folgende Möglichkeiten, um ein temporäres Dataset zu speichern:
- Um ein temporäres Raster-Dataset über das verknüpfte Raster-Objekt zu speichern, kann die save-Methode des Raster-Objekts verwendet werden.
- Um ein temporäres Raster-Dataset beizubehalten, das mit einem Karten-Layer verknüpft ist, speichern Sie das Kartenprojekt. Wenn das Projekt gespeichert wird, bleibt das Raster-Dataset mit dem automatisch generierten Namen auf dem Datenträger an dem aktuellen Speicherort erhalten.
Wiederverwenden eines Raster-Objekts
Objektnamen müssen eindeutig sein. Wenn ein Objektname wiederverwendet wird, wird das ursprüngliche Objekt überschrieben. Im folgenden Beispiel wird die Ausgabe von Neigung ersetzt, wenn outRas als Ausgabe des Ausdrucks Ausrichtung wiederverwendet wird.
outRas = Slope("inRas1")
outRas = Aspect("inRas2")
Layer werden dem Inhalt mit demselben Namen wie das Raster-Objekt hinzugefügt. Wenn ein Raster-Objektname wiederverwendet wird, werden dem Inhaltsverzeichnis mehrere Layer mit demselben Namen hinzugefügt. Im vorigen Beispiel wird outRas 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 Ausrichtung ausgeführt wird, wird ein zweiter Layer mit dem Namen outRas hinzugefügt, und das Objekt wird überschrieben und verweist nun auf das Dataset und den Layer, die die Ausgabe von Ausrichtung sind.
Tipp:
Wenn das Raster-Objekt, das auf ein Dataset verweist, überschrieben wurde, kann das Raster-Dataset anhand des Layer- oder Dataset-Namens 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 kein Layer mit dem temporären Dataset verknüpft ist und das Objekt gelöscht wird, wird das Dataset auch gelöscht. Wenn ein Layer mit dem temporären Dataset verknüpft ist und das Objekt gelöscht wird, bleiben die temporären Daten bestehen.
Vorsicht:
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.Im folgenden Beispiel wird gezeigt, wie ein Raster-Objekt mit dem Namen outRas gelöscht wird:
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 folgenden Beispiel verweisen outRas1 und 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")
In diesem Beispiel verweisen outRas1 und 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 (outslope) wider. Wenn outRas1 ein Layer im Inhaltsverzeichnis ist und Sie die Daten durch die Layer-Eigenschaft beibehalten oder das Kartendokument speichern, verweisen beide Objekte, outRas1 und outRas2, auf das gespeicherte Dataset.