Utilizar espacio de trabajo en memoria
ArcGIS proporciona un espacio de trabajo en memoria en el que se pueden escribir clases de entidad y tablas de salida. Escribir la salida de geoprocesamiento en el espacio de trabajo en memoria es una alternativa a escribir la salida en una ubicación de disco o una ubicación de red. Escribir datos en el espacio de trabajo en memoria suele ser considerablemente más rápido que escribir en otros formatos, como por ejemplo, un shapefile o una clase de entidad de geodatabase. Sin embargo, los datos escritos en el espacio de trabajo en memoria son temporales y se eliminarán al cerrar la aplicación.
Para escribir en el espacio de trabajo en memoria, utilice la ruta in_memory, como se muestra a continuación.
Debe tener en cuenta los siguientes aspectos a la hora de decidir si desea escribir la salida en el espacio de trabajo en memoria:
- Los datos escritos en el espacio de trabajo en memoria son temporales y se eliminarán al cerrar la aplicación.
- Tablas, clases de entidad y rásters que se pueden escribir en el espacio de trabajo en memoria.
- El espacio de trabajo en memoria no admite elementos de geodatabase extendida, como por ejemplo subtipos, dominios, representaciones, topologías, redes geométricas y datasets de red.
- Los datasets o carpetas de entidades no se pueden crear en el espacio de trabajo en memoria.
Administrar el espacio de trabajo en memoria
Cuando se escriben datos en el espacio de trabajo en memoria, se consume memoria física del ordenador (RAM). Si se escriben demasiados datos en este espacio de trabajo, se podría consumir toda la memoria del ordenador y no se podrían escribir más datos en la memoria. Además, si la mayoría o la totalidad de la memoria del ordenador se utiliza para almacenar datos en este espacio de trabajo, podría no haber memoria suficiente para ejecutar aplicaciones computacionalmente intensivas de manera eficaz, como es el caso de ArcGIS. En esta situación, todas las tareas de la aplicación podrían ejecutarse muy lentamente.
En cierta manera, las ventajas computacionales de utilizar el espacio de trabajo en memoria se ven contrarrestadas por la ralentización de la aplicación. Cuando esto sucede, las otras aplicaciones que se ejecutan en el sistema y la cantidad inicial de memoria física disponible podrían verse afectadas. Evite utilizar el espacio de trabajo en memoria si los datos que se van a escribir son demasiado extensos, ya que la aplicación se ralentizará.
Cuando se utiliza el espacio de trabajo en memoria, es necesario eliminar los datos intermedios en cuanto sea posible para liberar recursos de memoria del sistema. La herramienta Eliminar se puede utilizar para borrar datos del espacio de trabajo en memoria. Las clases de entidad o tablas individuales se pueden eliminar, o puede borrar todo el espacio de trabajo para eliminar por completo el contenido del espacio de trabajo.
Ubicación de espacio de trabajo en memoria
Una tabla, clase de entidad o un ráster escribe en el espacio de trabajo en memoria, tendrá la ubicación de origen de GPInMemoryWorkspace, como se ilustra a continuación.
La cadena de caracteres larga entre corchetes {} después de GPInMemoryWorkspace es un identificador único creado y utilizado por ArcGIS.
Utilizar en_memoria en Python
Puede utilizar el espacio de trabajo en_memoria en Python también, como se muestra en la muestra de código a continuación.
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 cuando puede escribir cualquier dato.
En la secuencia de comandos, utilice la herramienta Eliminar para eliminar datos en el espacio de trabajo en memoria. Las clases de entidad o tablas individuales se pueden eliminar, o puede borrar todo el espacio de trabajo para eliminar por completo el contenido del espacio de trabajo.