Utilisation de paramètres d'environnement dans Python
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 telle qu'ArcMap. 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. Chaque paramètre d'environnement comporte un nom et une étiquette. Les étiquettes s'affichent dans la boîte de dialogue Paramètres d'environnement d'ArcGIS. Les noms sont utilisés dans les scripts ou dans la ligne de commande des applications ArcGIS. Voici des exemples d'utilisation des valeurs d'environnement :
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>. Au lieu de préfixer chaque nom d'environnement avec arcpy.env, vous pouvez également simplifier votre code en tirant parti de l'instruction from-import de Python. Cette alternative présente l'avantage de simplifier votre code et de faciliter sa lecture.
import arcpy |
|
from arcpy import env |
|
Exemple 1 : définition de valeurs d'environnement
import arcpy
from arcpy import env
# Set the workspace environment setting
#
env.workspace = "c:/St_Johns/data.gdb"
# Set the XYTolerance environment setting
#
env.XYTolerance = 2.5
# Calculate the default spatial grid index, divide in half, then
# set the spatial grid 1 environment setting
#
result = arcpy.CalculateDefaultGridIndex_management("roads")
env.spatialGrid1 = float(result.getOutput(0)) / 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
from arcpy import env
# Check the current raster cell size and make sure it is a certain size
# for standard output
#
env.workspace = "c:/avalon/data"
if env.cellSize < 10:
env.cellSize = 10
elif env.cellSize > 20:
env.cellSize = 20
arcpy.HillShade_3d("island_dem", "island_shade", 300)
L'orthographe et la casse sont importants lors de la définition de valeurs d'environnement. L'affectation d'une valeur à arcpy.env.Workspace est différente de arcpy.env.workspace (remarque : arcpy.env.workspace correspond à la forme correcte). Si vous avez défini un environnement mais ne constatez pas l'effet attendu sur les outils ultérieurs, vérifiez l'orthographe et la casse.
La fonction ListEnvironments permet de vérifier les noms d'environnement.
import arcpy
print arcpy.ListEnvironments()
Utilisation de paramètres d'environnement pour gérer des données temporaires
La géodatabase temporaire et le dossier temporaire sont des environnements en lecture seule qui fournissent une géodatabase et un emplacement de dossier garantis d'exister. 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)
bufferResult = arcpy.Buffer_analysis(inputFC, tempData, "50 METERS")
arcpy.Clip_analysis(clipFC, bufferResult, outputFC)
Comment l'environnement du Dossier temporaire est défini :
- Si l'Espace de travail temporaire n'est pas défini, le Dossier temporaire est par défaut le répertoire des fichiers temporaires des utilisateurs actuels.
- Si l'Espace de travail temporaire fait référence à une géodatabase, le Dossier temporaire sera le dossier qui contient la géodatabase.
- Si l'Espace de travail temporaire est défini sur un dossier, le Dossier temporaire sera le même que l'Espace de travail temporaire
Comment l'environnement du Dossier temporaire est défini :
- Si l'Espace de travail temporaire n'est pas défini, la géodatabase temporaire est par défaut une géodatabase nommée scratch.gdb dans le répertoire des fichiers temporaires des utilisateurs actuels.
- Si l'Espace de travail temporaire fait référence à une géodatabase, la géodatabase temporaire sera le même que l'Espace de travail temporaire.
- Si l'Espace de travail temporaire est défini sur un dossier, la géodatabase temporaire sera définie sur une géodatabase nommée scratch.gdb dans le dossier Espace de travail temporaire.
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 permettre de restaurer les valeurs d'environnement par défaut, ou la fonction +++ClearEnvironment peut permettre de réinitialiser un environnement spécifique.
# Reset geoprocessing environment settings
arcpy.ResetEnvironments()
# Reset a specific environment setting
arcpy.ClearEnvironment("workspace")