Interacción del objeto ráster

Disponible con una licencia de Spatial Analyst.

Un objeto Raster hace referencia a un dataset ráster y, si se utiliza en la visualización de un mapa, se puede asociar con una capa ráster en la tabla de contenido. La relación entre el dataset ráster, el objeto Raster y la capa ráster se mantienen en la mayoría de los casos, pero es importante entender estas relaciones para trabajar productivamente con el Álgebra de mapas de Spatial Analyst.

Los objetos Raster se crean de estas dos maneras:

  • La salida de una expresión de Álgebra de mapas es un objeto Raster. Uno de los comportamientos más importantes de un objeto Raster es que cuando se crea como salida principal de una expresión de Álgebra de mapas, hace referencia a un ráster temporal.
    >>> outRas = Slope("elevation")
    >>> print outRas(isTemporary)
    True
  • Un dataset ráster se puede convertir en un objeto Raster. Cuando un dataset ráster permanente se convierte en un objeto Raster, el dataset sigue siendo permanente.
    >>> outRas = Raster("C:/Data/elevation")
    >>> print outRas(isTemporary)
    False

Al trabajar en la ventana Python, el resultado de una expresión de Álgebra de mapas se agrega a la visualización de Contenido con el mismo nombre que el objeto Raster. Cuando un dataset se convierte a ráster, no se agrega ninguna capa a la tabla de contenido.

Guardar rásteres temporales

Cuando los datos asociados con el objeto Raster son temporales, se eliminarán cuando finalice la sesión de ArcGIS (el objeto queda fuera del alcance, o el script se completa). Es decir, a menos que se guarden los datos. Cuando se guarda un ráster, la capa y el objeto reflejan las propiedades de ráster actualizadas incluyendo name, path, catalogPath, y el estado isTemporary del dataset. Hay varias maneras de guardar un dataset temporal.

  • Para guardar un dataset ráster temporal por medio del objeto Raster asociado, se puede utilizar el método save del objeto ráster.
  • Para que persista un dataset ráster temporal asociado con una capa de mapa, guarde el proyecto de mapa. Cuando se guarda el proyecto, el dataset ráster persiste en el disco en su ubicación actual con el nombre generado automáticamente.

Volver a utilizar un objeto ráster

Los nombres de objeto deben ser únicos. Cuando se vuelve a utilizar un nombre de objeto, el objeto original se sobrescribe. En el ejemplo siguiente, la salida de Pendiente se reemplaza cuando se vuelve a utilizar outRas como salida de la expresión Orientación.

outRas = Slope("inRas1") 
outRas = Aspect("inRas2")

Las capas se agregan al contenido con el mismo nombre que el objeto Raster. Cuando el nombre de un objeto Raster se vuelve a utilizar, se agregan varias capas con el mismo nombre a la ventana de contenido. En el ejemplo anterior, se agrega dos veces outRas. La primera vez es cuando se ejecuta la expresión Pendiente. La primera capa outRas hace referencia al resultado de Pendiente y se puede utilizar en la ventana de Python hasta que se ejecuta la expresión Orientación. Cuando se ejecuta Orientación, se agrega una segunda capa llamada outRas y el objeto se sobrescribe y hará referencia al dataset y a la capa que resulta de Orientación.

Sugerencia:

Si el objeto Raster que hace referencia a un dataset se ha sobrescrito, el dataset ráster se puede volver a convertir en un objeto Raster al utilizar el nombre del dataset o la capa.

Eliminar un objeto ráster

Cuando se elimina un objeto Raster, lo que sucede con el dataset asociado (y posiblemente la capa) depende del estado de los datos. Si los datos son permanentes, eliminar el objeto Raster no influye en la capa o el dataset asociado. Si el dataset es temporal, los efectos de eliminar el objeto Raster dependen de si hay una capa que también hace referencia al dataset ráster. Si no hay una capa asociada con el dataset temporal y se elimina el objeto, se elimina el dataset. Si hay una capa asociada con el dataset temporal y se elimina el objeto, los datos temporales permanecen.

Precaución:
Los datos temporales a los que hace referencia una capa no se eliminan cuando se elimina el objeto Raster; sin embargo, todos los datos temporales se eliminan cuando la aplicación se cierra, a menos que se guarde, sin importar que existan objetos o capas.

En el ejemplo siguiente se muestra cómo eliminar un objeto Raster denominado outRas:

outRas = Slope("C:/Data/elevation") 
del outRas

Asignar el objeto ráster a un nuevo objeto ráster

Asignar un objeto Raster a un nuevo objeto Raster no copia la capa o dataset asociado. Asignar un objeto Raster a un nuevo objeto Raster crea un segundo objeto que hace referencia al objeto original. En el ejemplo siguiente, outRas1 y outRas2 hacen referencia al mismo dataset ráster:

outRas1 = Slope("elevation")  

# Assigns Raster object to a new Raster object and save the raster dataset
outRas2 = outRas1
outRas2.save("C:/output/outslope")

En este ejemplo, outRas1 y outRas2 hacen referencia al mismo dataset. Por lo tanto, cuando se guarda outRas2, los dos objetos reflejarán el estado permanente, la nueva ubicación y el nuevo nombre del dataset guardado, outslope. Si outRas1 es una capa en la tabla de contenido y mantiene los datos a través de la propiedad de capa o al guardar su documento de mapa, los dos objetos, outRas1 y outRas2, harán referencia al dataset guardado.

Temas relacionados