J'ai un nuage de points dont les coordonnées sont par rapport à un système de coordonnées local. J'ai également des points de contrôle au sol avec des valeurs GPS. Puis-je convertir ces coordonnées locales en un système de coordonnées global à l'aide de PROJ.4 ou de toute autre bibliothèque?
Tout code en Python pour le problème mentionné ci-dessus serait d'une grande aide.
python
coordinate-system
gps
proj
ground-control
user18953
la source
la source
Réponses:
Vous semblez chercher à effectuer une transformation affine entre votre système de coordonnées local et un système de coordonnées géoréférencées.
Affine transforme sous tous les systèmes de coordonnées et peut être représenté par l'équation de la matrice ci-dessous.
Cependant, vous avez un problème en deux étapes.
Le projet 4 excelle au n ° 2: le transfert entre des systèmes de coordonnées géoréférencées avec des matrices de transformation connues. À ma connaissance, il ne peut pas être utilisé pour trouver une matrice de transformation à partir de données ponctuelles. Cependant, vous pouvez faire tout cela facilement en utilisant une algèbre linéaire légère (une inversion de matrice des moindres carrés) dans Numpy. J'ai utilisé une version de cette classe pour réduire les données de plusieurs études sur le terrain:
Il peut être utilisé tel quel:
projected_coordinates
est maintenant en WGS84, UTM, ou tout autre système de coordonnées enregistré par votre GPS. Une caractéristique majeure de cette méthode est qu'elle peut être utilisée avec n'importe quel nombre de points de liaison (3 ou plus) et gagne en précision à mesure que plus de points de liaison sont utilisés. Vous trouvez essentiellement le meilleur ajustement à travers tous vos points de liaison.la source
La fonction Grass transform fait exactement ce dont vous avez besoin, même si elle n'est pas basée sur python ou proj comme demandé:
http://grass.osgeo.org/grass65/manuals/g.transform.html
la source
Il est toujours plus facile d'identifier le système de coordonnées local, comme nous l'avons fait ici:
Projection stéréographique d'un ellipsoïde WGS84 sur un plan [python]
GDAL est maintenant capable de transformer des données vectorielles en utilisant des points GCP.
la source
J'étais coincé dans le même problème il y a quelques semaines, j'ai trouvé un script python qui peut aider. Solution originale d' ici
la source