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.
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.
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:
Los datasets de in_memory no se pueden visualizar en un mapa de ArcGIS Pro. Si ejecuta una herramienta de geoprocesamiento desde el panel Geoprocesamiento o una ventana de Python y escribe el dataset de salida en in_memory, tras el procesamiento, el dataset de salida se copiará en la geodatabase del proyecto y dicho dataset se agregará al mapa. No se escribe a la geodatabase del proyecto cuando los datasets in_memory son intermedios y no se agregan al mapa.
Para visualizar datos basados en memoria en un mapa de ArcGIS Pro, puede utilizar el espacio de trabajo memory.
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 general en el que se escriben archivos ni 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")