Una de las principales preocupaciones para cualquier usuario de Python (y de otro tipo de lenguaje de programación) es cómo organizar, editar y analizar nuestros datos.

Desde Python siempre se ha trabajado con las funciones cursor de ArcPy las cuales devuelven objetos de memoria que contienen una o más filas de datos de una feature class o tabla. Ya desde la versión 10.1 incluye el módulo de acceso a datos arcpy.da que mejora considerablemente el rendimiento en el acceso a datos con cursores, con lo que ESRI demuestra una vez más el interés que posee en el desarrollo e integración de Python.

arcpy_cursor_0

Este módulo permite el control de la sesión de edición, la operación de edición, un soporte mejorado del cursor (incluyendo un rendimiento más rápido), funciones para convertir las tablas y clases de entidad hacia y desde las matrices NumPy, y soporte para el control de versiones, réplicas, dominios y subtipos de los flujos de trabajo.

Este módulo arcpy.da ofrece nuevos tipos de cursores sustituyendo a los anteriores (siguen siendo útiles) para manejar e interactuar con las diferentes fuentes de datos de ArcGIS (tablas, feature class, shapefiles, etc.) ofreciendo una mayor eficacia y rendimiento en la respuesta en operaciones tanto de lectura como de actualización de los datos. A continuación se muestra una gráfica de la ganancia de eficiencia en uno de estos cursores:

eficiencia
Fuente

A continuación se muestran los nuevos tipos de cursores:

arcpy.insertcursor –> arcpy.da.insertcursor

arcpy.searchcursor –> arcpy.da.searchcursor

arcpy.updatecursor –>arcpy.da.updatecursor

Este módulo arcpy.da posee diferentes tipos de funciones para el acceso a datos (por ejemplo ExtendTable, NumpyArrayToTable, etc.)…

dataaccessfuntions

…y diferentes tipos de clases para el acceso a datos (SearchCursor, Editor, etc.):

dataaccessclasses

A continuación vamos a realizar un ejemplo de código con el tipo de cursor arcpy.da.searchcursor (necesitas como mínimo la versión 10.1 para realizar el ejercicio). Vamos a desarrollar un script en el programa PyScripter que luego lanzaremos en la consola de Python de ArcMap. Vamos a seguir los siguientes pasos:

Antes que nada vamos a importar el módulo ArcPy y definimos el espacio de trabajo con la siguiente sentencia, “with” sirve para crear el cursor abre y cierra el cursor sin necesidad de preocuparte por los bloqueos:

1

El primer argumento a pasar al método SearchCursor es el nombre del dato que utilizaremos ( shape “Schools”). El segundo parámetro es una tupla que contiene el campo a devolver por la query, y el tercero es la cláusula where, la cual se compone de esta manera: “Facility=High School”.

2

A continuación utilizaremos el bucle ‘for’. También empleamos la función ‘sorted()’ para ordenar los contenidos del cursor. Para acceder a los valores de un campo/columna es suficiente con usar el número de índice del campo. En este caso queremos recuperar el campo “Name” que tiene el índice:

3

Guarda y ejecuta 4 el script. El script imprimirá el listado con cada nombre de cada High School en la ventana Iteractive Window como se puede ver en la siguiente imagen:

5

63343577

Y ya lo tendremos. Este ejemplo es sólo un avance de todo lo que se enseña en el «curso online Avanzado de Python en ArcGIS» de TYC GIS.

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)

Cargando...

Formación de calidad impartida por profesionales