Dans la série petit programme qui peut dépanner… je vous présente LLA2XYZ qui permet de transformé des coordonnées GPS de type latitude/longitude/altitude (par exemple tirées de Google Earth) en coordonnées cartésiennes (de type XYZ). Ce programme est une évolution de XYZ2LLA (pas la peine de vous faire un dessin…).
Ces programmes sont disponibles ici sous licence libre (GPL).





Developpement









abonnez-vous
un commentaire
trackback
3 commentaires au billet “LLA2XYZ”
Deux petites remarques au sujet de xyz2lla. Il s’agit de points de détail sans conséquence.
Vous pourriez indiquer que les calculs concernent des latitudes géodésiques (telles qu’utilisées en cartographie) et pas géocentriques (celles auxquelles tout le monde pense mais qui ne servent quasiment à rien), et vous pourriez également mentionner le fait que le passage des coordonnées cartésiennes aux coordonnées angulaires n’est qu’une approximation (même si elle est très bonne) valable pour des altitudes faibles et dans le cas de la terre dont l’ellipticité est très faible. L’erreur grandit avec l’altitude (environ 1cm à 50° et 1000km d’altitude, environ 13cm à 50° et 3000km d’altitude) et devient absolument énorme dès que l’ellipticité grandit (pouvant attendre rapidement des centaines de kilomètres), rendant la formule non généralisable à d’autres corps comme les planètes fluides genre Jupiter.
Luc, merci pour ces remarques.
N’étant pas un spécialiste de la question (loin de là ), c’est vrai que le code n’est pas des plus précis. J’ai également reçu un mail d’un autre utilisateur qui m’a communiqué un algorithme plus précis. Dès que j’ai un peu de temps de libre devant moi, j’essayerai de faire évoluer le programme.
Un algorithme à la fois très robuste et très rapide est décrit à l’URL suivante. Il a été mis au point pour pouvoir supporter des cas très dégénérés, entre autres pour des modélisations d’astéroïdes dans le domaine de la méca-spa et pour des cercles vus quasiment par la tranche dans le domaine de tracés 3D. Il supporte sans problème des ellipsoïdes proches de la crèpe ou du blinis (petit axe 100 ou 1000 fois plus petit que le grand axe). Il y a également une implémentation en Java sur le site. À titre d’information, c’est un algorithme que j’ai utilisé dans certains travaux que j’ai fait pour le CNES, plus performant que l’algorithme qu’ils utilisent dans leur MSLIB.
http://www.spaceroots.org/documents/distance/distance-to-ellipse.pdf
http://www.spaceroots.org/documents/distance/Ellipsoid.java
Publier un commentaire
Partager des documents lors des commentaires: Le groupe Scripd Nicolargo