8 votos

¿Calculando coordenadas XY en grados decimales a partir de un conjunto de datos proyectados en un modelo o script?

¿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.

4voto

rptony Puntos 700

Creo que puedes.

Solo define la Referencia Espacial en WGS-84 y utiliza el cursor utilizando esa Referencia Espacial.

Las coordenadas se especifican en la referencia espacial proporcionada, y se convierten automáticamente al sistema de coordenadas del conjunto de datos.

Para más detalles, consulta esto.

0 votos

Puedes hacerlo de esta manera. Desde el campo SHAPE obtendrás un objeto de geometría de punto, del cual puedes obtener las coordenadas X e Y.

2voto

Wayne Werner Puntos 120

No estoy seguro(a) acerca de un script, pero he logrado esto de manera algo automatizada utilizando el generador de modelos: importa tus coordenadas xy y proyéctalas en WGS 1984. Luego agrega campos y calcula la geometría de los puntos en grados decimales. Después lleva tus puntos XY de regreso al sistema de coordenadas original.

0 votos

Es un largo camino por recorrer, prefiero usar el cursor y utilizar WGS-84 como referencia espacial y calcularlo. No es necesario reproyectar y luego unir.

0 votos

@mburkenysdot: Esta es una buena solución alternativa cuando alguien no quiere utilizar ningún script.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X