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 que se escriben en la memoria son temporales y se eliminan cuando se cierra la aplicación, por lo que es una ubicación ideal para escribir datos intermedios creados en un modelo de ModelBuilder o un script 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.
  • No se pueden crear carpetas en los espacios de trabajo basados en memoria.
  • Como los espacios de trabajo basados en memoria se almacena 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.

memoria

memory es un espacio de trabajo basado en memoria desarrollado para ArcGIS Pro 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 y 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. Puede eliminar los datasets individuales o, si lo desea, todo el espacio de trabajo para borrar por completo 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.Buffer_analysis("Roads", r"memory\Buffers", 1000)

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

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