Cada herramienta tiene un conjunto de parámetros que utiliza para ejecutar una operación. Algunos de estos parámetros son comunes entre todas las herramientas, tales como la tolerancia o la ubicación de salida. Estos parámetros pueden obtener sus valores predeterminados de un entorno de geoprocesamiento que todas las herramientas utilizan durante su funcionamiento. Cuando se ejecuta una herramienta, las configuraciones de entorno actuales también se pueden utilizar como valores de parámetros de entrada globales. Las configuraciones tales como un área de interés, la referencia espacial del dataset de salida y el tamaño de celda de un nuevo dataset ráster se pueden especificar con entornos de geoprocesamiento.
Una secuencia de comandos se puede ejecutar de varias maneras diferentes. Se puede ejecutar como una herramienta de secuencia de comandos en una aplicación de ArcGIS. También se puede ejecutar desde otra secuencia de comandos o de manera independiente, desde la ventana Python. Cuando una secuencia de comandos se ejecuta dentro de una herramienta desde una aplicación ArcGIS, o desde otra secuencia de comandos de geoprocesamiento, se le pasa la configuración de entorno utilizada por la aplicación o la secuencia de comandos que realiza la llamada. Esta configuración se convierte en la configuración predeterminada utilizada por la secuencia de comandos de la herramienta cuando se ejecuta. La secuencia de comandos llamada puede modificar la configuración que se le pasa, pero esos cambios solo se utilizan dentro de esa secuencia de comandos o de las herramientas a las que llame. Los cambios no se devuelven a la secuencia de comandos o a la aplicación que realiza la llamada. El modelo de entorno se puede describir como en cascada, donde los valores fluyen hacia abajo a cualquier proceso que utilice el entorno de geoprocesamiento.
Obtener y establecer configuraciones de entorno
Las configuraciones del entorno se exponen como propiedades en la clase env. Estas propiedades se pueden utilizar para recuperar los valores actuales o para establecerlos. Se puede obtener acceso a los entornos como propiedades de lectura y escritura desde la clase de entorno, como arcpy.env.<environmentName>.
import arcpy
arcpy.env.workspace = "c:/data"
Ejemplo 1: establecer valores de entorno
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")
Ejemplo 2: obtener y establecer un valor de entorno
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)
Utilizar las configuraciones del entorno para manejar datos temporales
Los entornos scratchGDB y scratchFolder son entornos de solo lectura que proporcionan una ubicación de carpeta y una geodatabase que se garantiza que existen. Esto significa que puede usar con confianza una geodatabase o una carpeta en cualquier momento sin tener que crear o administrar una.
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)
El entorno scratchFolder se establece del modo siguiente:
- Si scratchWorkspace no se ha definido, scratchFolder cambia de manera predeterminada al directorio de archivos temporales del usuario actual.
- Si scratchWorkspace hace referencia a una geodatabase, scratchFolder será la carpeta que contenga la geodatabase.
- Si scratchWorkspace se ha definido en una carpeta, scratchFolder coincidirá con scratchWorkspace.
El entorno scratchGDB se establece del modo siguiente:
- Si scratchWorkspace no se ha definido, scratchGDB cambia de manera predeterminada a una geodatabase denominada scratch.gdb del directorio de archivos temporales del usuario actual.
- Si scratchWorkspace hace referencia a una geodatabase, scratchGDB coincidirá con scratchWorkspace.
- Si scratchWorkspace se ha definido en una carpeta, scratchGDB se establecerá en una geodatabase denominada scratch.gdb de la carpeta scratchWorkspace.
Restablecer entornos
Debido a que los entornos de geoprocesamiento pueden afectar de manera significativa la operación y la salida de la herramienta, es importante poder realizar un seguimiento de la configuración del entorno y restablecer los entornos a sus estados predeterminados cuando sea necesario.
Se puede usar la función ResetEnvironments para restaurar los valores de entorno predeterminados o la función ClearEnvironment para restablecer un entorno específico.
import arcpy
# Reset geoprocessing environment settings
arcpy.ResetEnvironments()
# Reset a specific environment setting
arcpy.ClearEnvironment("workspace")