Administrar datos intermedios (temporales) en herramientas de modelo y de secuencia de comandos compartidas

Los datos temporales son datos que utiliza la herramienta y que elimina después de que la herramienta se ejecute. En ModelBuilder, los datos temporales se conocen como datos intermedios. Los datos que están marcados como intermedios en ModelBuilder se eliminan automáticamente después de que su herramienta de modelo se ejecute. En las secuencias de comandos, sin embargo, usted es responsable de eliminar datos temporales en la secuencia de comandos.

NotaNota:

Si comparte la herramienta mediante un paquete de geoprocesamiento o servicio, no es necesario realizar modificaciones en los modelos o secuencias de comandos para administrar datos intermedios o temporales. Las técnicas que se describen a continuación solo se aplican cuando comparte su caja de herramientas personaliza, es decir, usted no comparte un paquete o servicio, sino que le da a alguien la caja de herramientas (archivo .tbx). En este caso, debe asegurarse de que sus herramientas son portátiles escribiendo datos temporales e intermedios en una ubicación que existe en cualquier equipo que ejecute la herramienta.

Cada vez que comparta con otros una caja de herramientas que contenga el modelo y las herramientas de secuencia de comando, necesita una ubicación (una carpeta o una geodatabase( en la que las herramientas puedan escribir los datos intermedios o temporales. Hay dos entornos de solo lectura, GDB temporal (Geodatabase temporal) y Carpeta temporal, disponibles para que usted pueda escribir los datos intermedios y temporales. Estos dos entornos se introdujeron en ArcGIS 10.1.

Los datos intermedios en modelos

Todos los datos intermedios deberían marcarse como tal y se escribirse en la carpeta de trabajo temporal o en la geodatabase de trabajo temporal. La siguiente ilustración muestra la variable de datos Intersecar centroides marcada como intermedia, y su ubicación de salida es la geodatabase de trabajo temporal (%scratchGDB%). Los signos de porcentaje (%) denotan una sustitución de la variable: el valor de scratchGDB se expande cuando se ejecuta la herramienta de modelo y una clase de entidad llamada poly_Intersect se escribe en la geodatabase de trabajo temporal. Del mismo modo, puede utilizar %scratchFolder% para escribir los datos basados en archivos, como archivos .lyr o .txt.

Utilizar %scratchGDB% en modelos

Al escribir clases de entidad intermedias, puede ser tentado a escribir archivos de forma en la carpeta de trabajo temporal. Debe evitar esta práctica y escribir los datos de entidad en la geodatabase de trabajo temporal, puesto que los archivos de forma tienen algunas limitaciones bastante graves que pueden afectar a la portabilidad de las herramientas. Consulte Consideraciones de geoprocesamiento para la salida del archivo de forma para obtener más información sobre estos archivos y sus limitaciones.

También puede escribir datos intermedios en la memoria en el espacio de trabajo.

Más información sobre el espacio de trabajo en memoria

Administrar datos temporales en las herramientas de secuencia de comandos

Los datos temporales en las herramientas de secuencia de comandos se escriben en la geodatabase de trabajo temporal o carpeta de trabajo temporal. El código que aparece a continuación muestra cómo copiar una clase de entidad en la geodatabase de trabajo temporal y eliminarlo cuando termine.

import arcpy import os inFC = arcpy.GetParameterAsText(0)  tempFC = arcpy.env.scratchGDB + os.path.sep + "tempFC" arcpy.CopyFeatures_management(inFC, tempFC)  # Do some work here...  # Clean up when done... # arcpy.Delete_management(tempFC)

Dentro de una secuencia de comandos, también puede escribir datos en el espacio de trabajo en memoria. Por ejemplo:

import arcpy  table = arcpy.CreateTable_management("in_memory", "table1") arcpy.AddField_management(table, "Field1", "TEXT", field_length=20)  cursor = arcpy.da.InsertCursor(table, ["Field1"]) cursor.insertRow(["Hello World"])

El espacio de trabajo en_memoria solo es válido para las herramientas de geoprocesamiento; no se trata de un directorio virtual de propósito general en el que puede escribir cualquier dato.

Espacio de trabajo temporal

El entorno del Espacio de trabajo temporal lo utiliza principalmente por ModelBuilder como ubicación para escribir los datos intermedios y de salida. Este entorno puede establecerlo usted (o el usuario de la herramienta) en cualquier ubicación: una carpeta, una geodatabase o incluso un dataset de entidades dentro de una geodatabase. No es recomendable utilizar el entorno de Espacio de trabajo temporal con herramientas que se van a compartir, ya que el usuario de la herramienta puede establecer el entorno de Espacio de trabajo temporal en una carpeta, una geodatabase o dataset de entidades. Por ejemplo, puede esperar que Espacio de trabajo temporal se establezca en una carpeta de modo que puede generar un archivo de capa, pero el usuario de la herramienta establece el Espacio de trabajo temporal en una geodatabase. Cuando la herramienta se ejecuta, falla porque no se puede escribir el archivo de capa en una geodatabase. Esta es la principal razón por la que la Geodatabase temporal y la Carpeta temporal se introdujeran en la versión 10.1, para ofrecerle una geodatabase y una carpeta conocidas para escribir los datos.

Temas relacionados

5/10/2014