Utilizar configuraciones del entorno en Python

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 del 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 ArcGIS, tal como ArcMap. 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 del 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 del 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. Cada configuración de entorno tiene un nombre y una etiqueta. Las etiquetas se muestran en el cuadro de diálogo Configuración del Entorno de ArcGIS. Los nombres se utilizan en secuencias de comandos o en la línea de comandos en aplicaciones ArcGIS. A continuación se encuentran ejemplos de cómo utilizar los valores del entorno:

Se puede obtener acceso a los entornos como propiedades de lectura y escritura desde la clase de entorno, tales como arcpy.env.<environmentName>. Como alternativa, en lugar de prefijar cada nombre de entorno con arcpy.env, puede simplificar el código utilizando la instrucción from-import de Python. Esta alternativa tiene la ventaja de simplificar el código y hacerlo más fácil de leer.

import arcpy

import arcpy  arcpy.env.workspace = "c:/data"

from arcpy import env

import arcpy from arcpy import env  env.workspace = "c:/data"

Ejemplo 1: Establecer valores de entorno

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")

Ejemplo 2: Obtener y establecer un valor de entorno

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)
PrecauciónPrecaución:

Ortografía y uso de mayúsculas y minúsculas al establecer valores de entorno. Asignar un valor a arcpy.env.Workspace no es igual que establecer arcpy.env.workspace (observe: arcpy.env.workspace es la forma correcta). Si encuentra una situación donde haya establecido un entorno pero no está viendo el efecto en las herramientas subsiguientes, compruebe la ortografía y el uso de mayúsculas y minúsculas.

La función ListEnvironments se puede utilizar para comprobar el uso correcto de los nombres de entorno.

import arcpy print arcpy.ListEnvironments()

Utilizar las configuraciones del entorno para manejar datos temporales

scratchGDB y scratchFolder son entornos de solo lectura que proporcionan una ubicación de la carpeta y la geodatabase que se garantiza que existen. Lo que significa que puede usar con confianza una geodatabase o 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)  bufferResult = arcpy.Buffer_analysis(inputFC, tempData, "50 METERS") arcpy.Clip_analysis(clipFC, bufferResult, outputFC)

Cómo se establece el entorno de scratchFolder:

Cómo se establece el entorno de scratchFolder:

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.

La función ResetEnvironments se puede utilizar para restaurar los valores de entorno predeterminados, o la función ClearEnvironment se puede utilizar para restablecer un entorno específico.

# Reset geoprocessing environment settings arcpy.ResetEnvironments()  # Reset a specific environment setting arcpy.ClearEnvironment("workspace")

Temas relacionados

5/9/2014