Utilizar los entornos de espacio de trabajo actual y temporal
Casi todas las herramientas de geoprocesamiento toman datasets como entradas y producen nuevos datasets. Cuando utiliza herramientas de geoprocesamiento, una de las cosas que desea evitar es introducir nombres de datasets largos, por ejemplo:
E:\Data\D052753_a\infrastructure\BK16_c1\approved.gdb\roads\mjrst.
Introducir un nombre de dataset tan largo puede ser tedioso y frustrante, además de que aumenta la posibilidad de cometer errores. Es por eso que el geoprocesamiento permite arrastrar datasets o capas hacia el cuadro de diálogo de la herramienta. Utilice el botón de exploración para navegar hacia un dataset o para seleccionar una capa de una lista desplegable. Además, hay dos características diseñadas para especificar los datasets de entrada y salida mucho más fácilmente: la configuración de los entornos de espacio de trabajo actual y de espacio de trabajo temporal.
A continuación se presentan los puntos clave de los espacios de trabajo actual y temporal:
- Estos espacios de trabajo se establecen en la ventana Entornos de geoprocesamiento, a la cual se accede haciendo clic en Geoprocesamiento > Entornos.
- La configuración de los espacios de trabajo actual y temporal, como de todos los entornos de geoprocesamiento, se guarda con el documento de mapa.
- En ArcMap, los espacios de trabajo actual y temporal se establecen automáticamente en la geodatabase predeterminada. Puede cambiar en cualquier momento los espacios de trabajo actual o temporal a una ubicación diferente de la geodatabase predeterminada.
- Cuando utilice un cuadro de diálogo de la herramienta o ejecute una herramienta en Python, podrá introducir el nombre base de un dataset para que la herramienta lo busque en el espacio de trabajo actual.
- Cuando utiliza el cuadro de diálogo de la herramienta, los nombres de dataset de salida se autogeneran con la configuración de los espacios de trabajo actual y temporal.
Establecer el entorno de espacio de trabajo actual
- En ArcMap, haga clic en Geoprocesamiento > Entornos. Esto abre la ventana Configuración del entorno.
-
Expanda la categoría Espacio de trabajo e introduzca la ruta al espacio de trabajo. La siguiente ilustración muestra cómo establecer el espacio de trabajo actual en D:\ArcTutor\BuildingaGeodatabase\Montgomery.gdb\Landbase, un dataset de entidad dentro de la geodatabase.
Puede establecer el espacio de trabajo actual en una carpeta del sistema, una geodatabase o un dataset de entidades dentro de una geodatabase.
- Haga clic en Aceptar.
Existen otros métodos para establecer entornos, y puede configurar los entornos para que se apliquen a todas las herramientas, a la ejecución de una herramienta, a un modelo, a un proceso de modelo o a una secuencia de comandos.
Obtenga más información acerca de la configuración de entorno
Utilizar nombres base
La idea principal de los espacios de trabajo actual y temporal es que establezca un espacio de trabajo una vez y que, al introducir las rutas de entrada y de salida, utilice solamente el nombre base. Un nombre de dataset tiene dos componentes, el espacio de trabajo y el nombre base, tal como se ilustra a continuación.
Ejemplo del uso de nombres base
La siguiente ilustración muestra una geodatabase de ejemplo que se utiliza como el espacio de trabajo actual. El espacio de trabajo actual se establece en D:\BuildingaGeodatabase\Montgomery.gdb\Landbase.
Una vez establecido el espacio de trabajo, puede introducir simplemente el nombre base cada vez que se requiera un nombre de dataset. El siguiente ejemplo muestra el uso de la herramienta Clip.
- El nombre base (Blocks) se une al espacio de trabajo actual para formar el nombre del dataset (D:\BuildingaGeodatabase\Montgomery.gdb\Landbase\Blocks). A continuación, el parámetro Entidades de entrada se reemplaza con este nombre de dataset.
- Se autogenera un nombre de dataset de salida único. El nombre base es el mismo que el nombre base de entrada (Blocks) que, en este ejemplo, está unido con un guión bajo al nombre de la herramienta Clip y que, si es necesario, puede estar unido a un número para formar un nombre único.
- Si no desea utilizar el nombre de salida autogenerado, puede eliminarlo e introducir un nombre base, que se expandirá a un nombre de dataset, tal como se muestra a continuación.
Después de ejecutar una herramienta, es posible que descubra que la salida no está escrita donde lo espera; quizás cometió un error al introducir el nombre de salida o simplemente olvidó dónde estaba escrito. Si este es el caso, abra la ventana Resultados, que contiene un registro de la herramienta que ejecutó junto con sus datasets de entrada y de salida.
También puede utilizar un nombre base en la cuadrícula de lote, tal como se muestra a continuación.
Mostrar el espacio de trabajo actual en un cuadro de diálogo de la herramienta
Ubique el puntero sobre el botón de exploración por un momento para que aparezca el espacio de trabajo actual, tal como se muestra a continuación.
Si hace clic en el botón de exploración, se abrirá el cuadro de diálogo correspondiente en el espacio de trabajo actual.
Espacio de trabajo actual y nombre base en una secuencia de comandos
En la ventana de Python, el entorno de espacio de trabajo establece el espacio de trabajo actual. Después de establecer el espacio de trabajo, puede utilizar el nombre base de cualquier dataset dentro del espacio de trabajo, tal como se muestra a continuación.
>> import arcpy >> arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb" >> arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point")
A continuación se presenta un ejemplo de secuencia de comandos de Python en el que se muestra el uso del comando de espacio de trabajo:
# Purpose: Determine the type of vegetation within 100 meters of all stream crossings # Import the ArcPy site-package import arcpy try: # Set the workspace (to avoid having to type in the full path to the data every time) arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb" # Process: Find all stream crossings (points) arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point") # Process: Buffer all stream crossings by 100 meters arcpy.Buffer_analysis("stream_crossings","stream_crossings_100m", "100 meters") # Process: Clip the vegetation feature class to stream_crossings_100m arcpy.Clip_analysis("vegetation", "stream_crossings_100m", "veg_within_100m_of_crossings") # Process: Summarize how much (area) of each type of vegetation is found within 100 meters of the stream crossings arcpy.Statistics_analysis("veg_within_100m_of_crossings", "veg_within_100m_of_crossings_stats","shape_area sum","veg_type") except: # If an error occurred while running a tool print the messages print arcpy.GetMessages()
Entorno de espacio de trabajo temporal
Además del espacio de trabajo actual, existe la configuración del entorno de espacio de trabajo temporal. Se puede establecer y acceder a la configuración del espacio de trabajo temporal de la misma manera que se establece y se accede al espacio de trabajo actual.
El propósito principal del entorno de espacio de trabajo temporal es su uso con ModelBuilder. ModelBuilder necesita un espacio de trabajo para escribir datasets intermedios: datasets que no son de uso una vez que el modelo se ejecuta. A pesar de que su propósito principal sea con ModelBuilder, puede haber ocasiones en las que desee establecerlo para cuadros de diálogo de herramientas. O bien, lo que es más probable, puede que haya establecido el espacio de trabajo temporal para utilizar con ModelBuilder y haya olvidado restaurarlo antes de ejecutar una herramienta con su cuadro de diálogo.
Si establece el entorno de espacio de trabajo temporal, las herramientas lo utilizarán, en lugar del espacio de trabajo actual, para autogenerar nombres de dataset de salida, tal como se muestra a continuación.
si introduce un nombre base para la salida, se utilizará el espacio de trabajo actual, y no el espacio de trabajo temporal, para crear el nombre del dataset.
La regla es que cada vez que se utilice un nombre base, este se una al espacio de trabajo actual y no al temporal. Tenga en cuenta esto al escribir secuencias de comandos. En el siguiente fragmento de código, el dataset de salida "stream_crossings" se escribirá en el espacio de trabajo actual y no en el temporal.
arcpy.env.workspace = "c:/projects/RedRiverBasin/data.mdb" arcpy.env.scratchWorkspace = "c:/projects/Scratch/scratch.gdb" arcpy.Intersect_analysis("roads ; streams ", "stream_crossings", "#", 1.5, "point")
Ya que el espacio de trabajo temporal está diseñado para datos temporales, no lo establezca en una geodatabase de ArcSDE. Esto podría causar problemas de rendimiento (puede estar escribiendo datos temporales en una base de datos empresarial). Se recomienda que, para el espacio de trabajo temporal, utilice siempre una geodatabase de archivos (en lugar de una geodatabase personal o un espacio de trabajo de shapefiles).
Nombres de datasets de salida autogenerados
Todas las herramientas crean automáticamente un nombre de dataset de salida. La lógica para generar el nombre de salida es la siguiente:
- Si el entorno de espacio de trabajo temporal está establecido, la ruta de salida que se autogenera será la del espacio de trabajo temporal.
- Si el entorno de espacio de trabajo temporal no está establecido, se verifica el entorno de espacio de trabajo actual. Si el espacio de trabajo actual está establecido, la salida que se autogenera será la del espacio de trabajo actual.
- Si no está establecido ninguno de los dos espacios de trabajo, la ruta de salida que se autogenera será la del espacio de trabajo de una de las entradas. En este caso, se aplican ciertas restricciones. Por ejemplo, si el espacio de trabajo es un espacio de trabajo de la cobertura y la salida es una clase de entidad nueva, la salida será un shapefile del directorio que esté por encima del espacio de trabajo de la cobertura. Existen otras restricciones, como en el acceso de escritura. En algunos casos, la salida se escribe en el directorio temporal del sistema.
- Si introduce un nombre base para el dataset de salida, se utilizará el espacio de trabajo actual para crear la ruta de salida, independientemente de si está establecido el espacio de trabajo temporal.