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 Geoverarbeitungsumgebung 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.
In ArcPy sind Geoverarbeitungsumgebungen als Eigenschaften unter der ArcPy-Klasse env. organisiert. Im Beispiel unten werden mehrere Umgebungswerte auf dem Bildschirm ausgegeben und dann auf neue Werte festgelegt.
>>> print arcpy.env.overwriteOutput
True
>>> print arcpy.env.workspace
None
>>> arcpy.env.overwriteOutput = False
>>> arcpy.env.workspace = "c:/temp"
>>> print arcpy.env.overwriteOutput
False
>>> print arcpy.env.workspace
c:/temp
>>>
Verfolgen von Umgebungen im Python-Fenster
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.
Sie können die ArcPy-Funktion ResetEnvironments verwenden, um die Standardumgebungswerte wiederherzustellen.
>>> arcpy.ResetEnvironments()
>>>
Mit der ArcPy-Funktion ListEnvironments können Sie eine Liste aller Geoverarbeitungsumgebungen erstellen. Mit der Liste können Sie auf alle Umgebungen mit ihren aktuellen Werten zugreifen und diese drucken. In diesem Beispiel werden nur zwei Umgebungen gezeigt, aber alle Umgebungen und ihre Werte werden mit diesem Code gedruckt.
>>> environments = arcpy.ListEnvironments()
... for environment in environments:
... envSetting = eval("arcpy.env." + environment)
... print "%-30s: %s" % (environment, envSetting)
...
newPrecision : SINGLE
autoCommit : 1000