Jedes Werkzeug verfügt über mehrere Parameter, die zum Ausführen eines Vorgangs verwendet werden. Einige dieser Parameter sind bei allen Werkzeugen gleich, wie z. B. Toleranz oder Ausgabeverzeichnis. Die Standardwerte für diese Parameter können aus einer Umgebungseinstellung für die Geoverarbeitung abgerufen werden, auf die alle Werkzeuge bei der Ausführung zugreifen. Beim Ausführen eines Werkzeugs können die aktuellen Umgebungseinstellungen auch als globale Eingabeparameterwerte verwendet werden. Verschiedene Einstellungen, wie z. B. ein Interessenbereich, der Raumbezug des Ausgabe-Datasets oder die Zellengröße eines neuen Raster-Datasets, können in der Geoverarbeitungsumgebung angegeben werden.
Ein Skript kann auf verschiedene Weisen ausgeführt werden. Es kann als Skriptwerkzeug in einer ArcGIS-Anwendung ausgeführt werden. Es kann auch aus einem anderen Skript heraus oder eigenständig aus dem Python-Fenster heraus ausgeführt werden. Wenn ein Skript in einer ArcGIS-Anwendung innerhalb eines Werkzeugs oder aus einem anderen Geoverarbeitungsskript heraus ausgeführt wird, werden die Umgebungseinstellungen der aufrufenden Anwendung bzw. des Skriptes an das Skript übergeben. Diese Einstellungen dienen als Standardeinstellungen für das Skript des Werkzeugs, wenn dieses ausgeführt wird. Das aufgerufene Skript kann die übergebenen Einstellungen ändern. Diese Änderungen gelten jedoch ausschließlich innerhalb des Skriptes und für Werkzeuge, die von diesem Skript aufgerufen werden. Die Änderungen werden nicht an das aufrufende Skript bzw. die aufrufende Anwendung zurückgegeben. Das Umgebungsmodell lässt sich am besten als kaskadierend beschreiben, wobei Werte an jeden Prozess abwärts in der Aufrufhierarchie weitergereicht werden, der die Geoverarbeitungsumgebung verwendet.
Abrufen und Festlegen von Umgebungseinstellungen
Umgebungseinstellungen werden als Eigenschaften in der env-Klasse verfügbar gemacht. Über diese Eigenschaften können die aktuellen Werte abgerufen und festgelegt werden. Auf Umgebungen kann als Lese-/Schreibeigenschaften von der Umgebungsklasse aus zugegriffen werden, z. B. arcpy.env.<environmentName>.
import arcpy
arcpy.env.workspace = "c:/data"
Beispiel 1: Festlegen von Werten für Umgebungseinstellungen
import arcpy
# Set the workspace environment setting
#
arcpy.env.workspace = "c:/St_Johns/data.gdb"
# Set the XYTolerance environment setting
#
arcpy.env.XYTolerance = 2.5
# Calculate the default spatial grid index, divide in half, then
# set the spatial grid 1 environment setting
#
grid_index = arcpy.CalculateDefaultGridIndex_management("roads")[0]
arcpy.env.spatialGrid1 = float(grid_index) / 2
# Clip the roads by the urban area feature class
#
arcpy.Clip_analysis("roads", "urban_area", "urban_roads")
Beispiel 2: Abrufen und Festlegen eines Wertes für eine Umgebungseinstellung
import arcpy
# Check the current raster cell size and make sure it is a certain size
# for standard output
#
arcpy.env.workspace = "c:/avalon/data"
if arcpy.env.cellSize < 10:
arcpy.env.cellSize = 10
elif arcpy.env.cellSize > 20:
arcpy.env.cellSize = 20
arcpy.HillShade_3d("island_dem", "island_shade", 300)
Verwenden von Umgebungseinstellungen zur Handhabung von Scratch-Daten
scratchGDB und scratchFolder sind schreibgeschützte Umgebungen, die eine Geodatabase und einen Ordner an einem Speicherort bereitstellen, die mit Sicherheit existieren. Das bedeutet, dass Sie zu jedem Zeitpunkt eine Geodatabase oder einen Ordner verwenden können, ohne diese bzw. diesen erstellen oder verwalten zu müssen.
import arcpy
inputFC = arcpy.GetParameterAsText(0)
clipFC = arcpy.GetParameterAsText(1)
outputFC = arcpy.GetParameterAsText(2)
# Use scratchGDB environment to write intermediate data
#
tempData = arcpy.CreateScratchName(workspace=arcpy.env.scratchGDB)
result = arcpy.Buffer_analysis(inputFC, tempData, "50 METERS")
arcpy.Clip_analysis(clipFC, result, outputFC)
Vorgehensweise zum Festlegen der scratchFolder-Umgebung:
- Wenn scratchWorkspace nicht festgelegt wurde, wird scratchFolder standardmäßig im Verzeichnis für temporäre Dateien des aktuellen Benutzers festgelegt.
- Wenn scratchWorkspace auf eine Geodatabase verweist, ist scratchFolder der Ordner, der die Geodatabase enthält.
- Wenn scratchWorkspace auf einen Ordner eingestellt ist, ist scratchFolder identisch mit scratchWorkspace.
Vorgehensweise zum Festlegen der scratchGDB-Umgebung:
- Wenn scratchWorkspace nicht festgelegt wurde, wird scratchGDB standardmäßig auf eine Geodatabase mit der Bezeichnung scratch.gdb im Verzeichnis für temporäre Dateien des aktuellen Benutzers festgelegt.
- Wenn scratchWorkspace auf eine Geodatabase verweist, ist scratchGDB identisch mit scratchWorkspace.
- Wenn scratchWorkspace auf einen Ordner festgelegt ist, wird scratchGDB auf eine Geodatabase mit dem Namen scratch.gdb im Ordner scratchWorkspace festgelegt.
Zurücksetzen von Umgebungen
Da sich Geoverarbeitungsumgebungen erheblich auf den Umgang mit und die Ausgabe von Werkzeugen auswirken können, ist es wichtig, dass Umgebungseinstellungen nachverfolgt und Umgebungen auf die Standardeinstellung zurückgesetzt werden können, wenn dies erforderlich ist.
Die Funktion ResetEnvironments kann verwendet werden, um die Standardumgebungswerte wiederherzustellen. Mit der Funktion ClearEnvironment kann eine bestimmte Umgebung zurückgesetzt werden.
import arcpy
# Reset geoprocessing environment settings
arcpy.ResetEnvironments()
# Reset a specific environment setting
arcpy.ClearEnvironment("workspace")