¿Es posible calcular las coordenadas XY en grados decimales en el modelo o script cuando una clase de entidad está en un sistema de coordenadas proyectadas?
Es fácil cuando una clase de entidad está en un sistema de coordenadas geográficas:
-
usando la herramienta Agregar Coordenadas XY o
-
usando una expresión en Python por ejemplo.
!shape.extent.XMax!
He encontrado que las propiedades de área y longitud del campo de geometría pueden modificarse con la palabra clave de conversión de unidades 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 (accedida con clic derecho) hay una posibilidad de elegir el tipo de salida en Grados Decimales incluso para una 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
0 votos
¿Es necesario mantener los puntos XY en un sistema de coordenadas proyectadas?
0 votos
@Roy: sí, quiero conservar una clase de entidad en un sistema de coordenadas proyectado, pero calculado en grados decimales.