Establecer la referencia espacial de un cursor

La referencia espacial para una clase de entidad describe su sistema de coordenadas, su dominio espacial y su precisión.

De forma predeterminada, la referencia espacial de la geometría devuelta por un cursor de búsqueda es igual que la clase de entidad abierta por el cursor. También puede establecer la referencia espacial en un cursor de actualización o inserción.

Al establecer la referencia espacial en un cursor de actualización o de inserción, se está declarando la referencia espacial de las geometrías que se van a escribir con el cursor. Por ejemplo, suponga que va a insertar geometrías en una clase de entidad que está en coordenadas UTM. Va a leer geometrías de un archivo de texto que contiene coordenadas del plano de estado y va a insertarlas en esta clase de entidad. La referencia espacial de la clase de entidad (UTM) es diferente que las geometrías que va a leer del archivo de texto (plano de estado). Al abrir el cursor de inserción en la clase de entidad, se establece su referencia espacial en el plano de estado, declarando que desea que las geometrías que está insertando se conviertan del plano de estado a UTM. Por consiguiente, el único momento en el que necesitará establecer la referencia espacial de un cursor de inserción o de actualización es cuando las geometrías que esté escribiendo estén en una referencia espacial diferente que la clase de entidad del cursor.

En el caso de un cursor de la búsqueda, especificar una referencia espacial diferente de la referencia espacial de la clase de entidad del cursor produce geometrías que se transforman a la referencia espacial del cursor.

El siguiente ejemplo tiene una clase de entidad de puntos con un sistema de coordenadas UTM de zona 21 norte, definido en su referencia espacial. La secuencia de comandos producirá un archivo de texto con las coordenadas de los puntos en grados decimales.

import arcpy  # Describe a feature class with a geographic coordinate system # desc = arcpy.Describe("d:/base/data.gdb/latlongbnd")  # Create search cursor. Use the spatial reference object from the #   described feature class so geometries are returned in decimal degrees. # rows = arcpy.da.SearchCursor("d:/base/data.gdb/buildings", ["SHAPE@"],                               spatial_reference=desc.spatialReference)  # Open the file for output. This also creates the file if it does not exist. # out = open(arcpy.GetParameterAsText(0), "w")  # Print the coordinates of each building point feature # for row in rows:     # Get the geometry's point object.     #     pnt = row[0].getPart()      # Write the x,y coordinate to the output file     #     out.write(pnt.X + ";" + pnt.Y + "\n")  # Close the output file # out.close()

Temas relacionados

9/11/2013