Chaque outil contient un ensemble de paramètres servant à exécuter une opération. Certains de ces paramètres sont communs à tous les outils, tels que la tolérance ou l'emplacement en sortie. Ces paramètres peuvent extraire leurs valeurs par défaut d'un environnement de géotraitement utilisé par tous les outils lors de leur exécution. Lorsqu'un outil est exécuté, les paramètres d'environnement courants peuvent également servir de valeurs de paramètres en entrée globales. Les paramètres tels qu'une zone d'intérêt, la référence spatiale du jeu de données en sortie et la taille de cellule d'un nouveau jeu de données raster, peuvent tous être définis avec les environnements de géotraitement.
Un script peut être exécuté de plusieurs façons différentes. Il peut être exécuté comme outil de script dans une application ArcGIS. Il peut également être exécuté à partir d'un autre script ou par lui-même à l'aide de la fenêtre Python. Lorsqu'un script est exécuté à l'intérieur d'une application ArcGIS ou à partir d'un autre script de géotraitement, les paramètres d'environnement utilisés par l'application ou le script d'appel sont transmis à ce script. Ces paramètres deviennent les paramètres par défaut utilisés par le script de l'outil lors de son exécution. Le script appelé peut modifier les paramètres qui lui sont transmis, mais ces modifications servent uniquement dans ce script ou dans tout autre outil qu'il appelle. Les modifications ne sont pas renvoyées au script ou à l'application qui appelle. Le modèle d'environnement peut être décrit comme une cascade dans laquelle les valeurs sont transmises à un processus utilisant l'environnement de géotraitement.
Obtention et définition des paramètres d'environnement
Les paramètres d'environnement sont exposés en tant que propriétés sur la classe env. Ces propriétés peuvent servir à extraire les valeurs actuelles ou à les définir. Les environnements sont accessibles en tant que propriétés en lecture/écriture de la classe d'environnements, sous la forme arcpy.env.<Nom_environnement>.
import arcpy
arcpy.env.workspace = "c:/data"
Exemple 1 : définition de valeurs d'environnement
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")
Exemple 2 : obtention et définition d'une valeur d'environnement
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)
Utilisation de paramètres d'environnement pour gérer des données temporaires
Les environnements scratchGDB et scratchFolder sont en lecture seule et fournissent une géodatabase et un emplacement de dossier dont l'existence est garantie. Cela signifie que vous pouvez utiliser de façon fiable une géodatabase ou un dossier à tout moment, sans devoir en créer ou en gérer un(e).
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)
L'environnement scratchFolder est défini comme suit :
- Si scratchWorkspace n'est pas défini, scratchFolder est défini par défaut sur le répertoire des fichiers temporaires des utilisateurs actuels.
- Si scratchWorkspace fait référence à une géodatabase, le dossier scratchFolder contient la géodatabase.
- Si scratchWorkspace est défini sur un dossier, scratchFolder est identique à scratchWorkspace.
L'environnement scratchGDB est défini comme suit :
- Si scratchWorkspace n'est pas défini, scratchGDB est défini par défaut sur une géodatabase nommée scratch.gdb dans le répertoire des fichiers temporaires des utilisateurs actuels.
- Si scratchWorkspace fait référence à une géodatabase, scratchGDB est identique à scratchWorkspace.
- Si scratchWorkspace est défini sur un dossier, scratchGDB est défini sur une géodatabase nommée scratch.gdb dans le dossier scratchWorkspace.
Réinitialisation des environnements
Les environnements de géotraitement pouvant avoir un impact considérable sur le fonctionnement et l'efficacité d'un outil, il est important de pouvoir suivre leurs paramètres et, au besoin, de rétablir leurs valeurs par défaut.
La fonction ResetEnvironments peut servir à restaurer les valeurs d'environnement par défaut et la fonction ClearEnvironment à réinitialiser un environnement spécifique.
import arcpy
# Reset geoprocessing environment settings
arcpy.ResetEnvironments()
# Reset a specific environment setting
arcpy.ClearEnvironment("workspace")