Escribir la salida de geoprocesamiento en la memoria

Escribir las salidas de geoprocesamiento en la memoria es una alternativa a escribir la salida en una geodatabase o en un formato basado en archivo. Suele ser mucho más rápido que escribir en formatos en el disco. Los datos escritos en la memoria son temporales y se eliminan al cerrar la aplicación. El espacio de trabajo de memoria es una ubicación ideal para escribir datos intermedios en un modelo de ModelBuilder o una secuencia de comandos de Python.

Espacios de trabajo basados en memoria

ArcGIS proporciona dos espacios de trabajo basados en memoria, en los que se pueden escribir salidas de geoprocesamiento.

Precaución:
  • Los espacios de trabajo basados en la memoria no son compatibles con elementos de geodatabase tales como datasets de entidades, representaciones, topologías, redes geométricas o datasets de red.
  • Como los espacios de trabajo basados en memoria se almacenan en la memoria física de su sistema, o RAM, es posible que a su sistema le quede poca memoria disponible si escribe datasets grandes en el espacio de trabajo. Esto puede afectar negativamente al rendimiento del procesamiento.
  • No se pueden crear carpetas en los espacios de trabajo basados en memoria.

espacio de trabajo de memoria

memory es un espacio de trabajo basado en memoria que admite clases de entidades, tablas y datasets ráster de salida.

Para escribir en el espacio de trabajo memory, especifique una ruta de dataset de salida que empiece por memory\ y no tenga ninguna extensión de archivo; por ejemplo, memory\tempOutput.

Puede agregar datasets memory a un mapa de ArcGIS Pro.

Espacio de trabajo in_memory

Heredado:

in_memory es el espacio de trabajo heredado basado en memoria creado para ArcMap que admite clases de entidad, tablas y datasets ráster de salida.

Para escribir en el espacio de trabajo in_memory, especifique una ruta de dataset de salida que empiece por in_memory\ y no tenga ninguna extensión de archivo; por ejemplo, in_memory\tempOutput.

Nota:

Una herramienta de geoprocesamiento no puede agergar una salida in_memory a un mapa. Después de crear una salida in_memory, una herramienta copiará la salida a la geodatabase del proyecto. A continuación, la herramienta agrega la salida de la geodatabase del proyecto al mapa. Para mostrar datos basados en memoria en un mapa, utilice en su lugar el espacio de trabajo de memoria.

No se escribe copia a la geodatabase del proyecto cuando los datasets son intermedios y no se agregan al mapa.

A diferencia del espacio de trabajo memory, el espacio de trabajo in_memory no admite subtipos ni dominios.

Administrar el espacio de trabajo de memoria

Cuando se utiliza un espacio de trabajo basado en memoria, se deben eliminar los datos intermedios lo antes posible para liberar recursos de memoria del sistema. Se puede utilizar la herramienta Eliminar para eliminar los datos del espacio de trabajo basado en memoria. Elimine los datasets individuales o todo el espacio de trabajo para borrar el contenido del espacio de trabajo.

Usar el espacio de trabajo de memoria en Python

El uso de espacios de trabajo basados en memoria en Python solo es válido para herramientas de geoprocesamiento. La memoria no es un directorio virtual de uso general en el que se puedan escribir archivos u otros datos.

Use el espacio de trabajo memory como se muestra en la siguiente muestra de código:

import arcpy

# Set the geoprocessing workspace
arcpy.env.workspace = r"C:\Data\Habitat.gdb"

# Buffer a Roads layer, writing output to memory 
arcpy.analysis.Buffer("Roads", r"memory\Buffers", 1000)

# Erase the buffers from a Vegetation layer
arcpy.analysis.Erase("Vegetation", r"memory\Buffers", r"memory\Erased")

# Dissolve the memory output of Erase to make a final output in the gdb workspace
arcpy.management.Dissolve(r"memory\Erased", "FinalOutput")