Tengo una nube de puntos cuyas coordenadas son con respecto a un sistema de coordenadas local. También tengo puntos de control de tierra con valores de GPS. ¿Puedo convertir estas coordenadas locales en un sistema de coordenadas global usando PROJ.4 o cualquier otra biblioteca?
Cualquier código en Python para el problema mencionado anteriormente sería de gran ayuda.
python
coordinate-system
gps
proj
ground-control
usuario18953
fuente
fuente
Respuestas:
Parece que está buscando realizar una transformación afín entre su sistema de coordenadas local y un sistema de coordenadas georreferenciado.
Affine transforma debajo de todos los sistemas de coordenadas y puede representarse mediante la ecuación matricial a continuación.
Sin embargo, tiene un problema de dos pasos.
El proyecto 4 sobresale en el n. ° 2: transferencia entre sistemas de coordenadas georreferenciadas con matrices de transformación conocidas. Que yo sepa, no se puede utilizar para encontrar una matriz de transformación a partir de datos de puntos. Sin embargo, puede hacer todo fácilmente usando un poco de álgebra lineal ligera (una inversión de matriz de mínimos cuadrados) en Numpy. He usado una versión de esta clase para reducir los datos de varios estudios de campo:
Se puede usar como tal:
projected_coordinates
ahora está en WGS84, UTM o cualquier sistema de coordenadas que haya grabado con su GPS. Una característica importante de este método es que se puede usar con cualquier número de puntos de conexión (3 o más) y gana precisión a medida que se usan más puntos de conexión. Básicamente, estás encontrando el mejor ajuste a través de todos tus puntos de empate.fuente
La función de transformación de Grass hace exactamente lo que necesita, aunque no se basa en Python o Proj como se solicita:
http://grass.osgeo.org/grass65/manuals/g.transform.html
fuente
Siempre es más fácil identificar el sistema de coordenadas local, como hicimos aquí:
Proyección estereográfica del elipsoide WGS84 en un plano [pitón]
GDAL ahora puede transformar datos vectoriales utilizando puntos GCP.
fuente
Estuve atrapado en el mismo problema hace unas semanas, descubrí un script de Python que puede ayudar. Solución original de aquí
fuente