¿Es posible calcular las coordenadas de los puntos XY en grados decimales en el modelo o script cuando una clase de entidad está en el sistema de coordenadas proyectadas?
Es fácil cuando un FC está en un sistema de coordenadas geográficas:
- utilizando la herramienta Agregar coordenadas XY o
- usando la expresión de Python, por ejemplo.
!shape.extent.XMax!
Descubrí que las propiedades de área y longitud del campo de geometría se pueden modificar con la palabra clave de conversión de unidad de geometría. Para unidades lineales de medida, se puede usar @DECIMALDEGREES.
Desafortunadamente, !shape.extent.XMax@decimaldegrees!
no funciona ya que XMax no es una longitud.
En la función Calcular geometría (a la que se accede haciendo clic con el botón derecho), existe la posibilidad de elegir el tipo de salida Grados decimales incluso para la clase de entidad proyectada.
¿Puedo hacer esto usando ArcPy?
Aquí hay un fragmento de código basado en la solución de iRfAn:
import arcpy, os
projectedFC = r"C:\tmp\test.gdb\points01_Projected"
prjFile = os.path.join(arcpy.GetInstallInfo()["InstallDir"],
r"Coordinate Systems\Geographic Coordinate Systems\World\WGS 1984.prj")
spatialRef = arcpy.SpatialReference(prjFile)
updCursor = arcpy.UpdateCursor(projectedFC,"", spatialRef)
for row in updCursor:
pnt = row.Shape.getPart(0)
row.X = pnt.X
row.Y = pnt.Y
updCursor.updateRow(row)
del updCursor, row