Caractéristiques des différentes méthodes pour convertir ECEF en LLA

12

J'essaie de convertir les coordonnées ECEF (Earth Centered, Earth Fixed), qui sont définies en X, Y, Z, centrées à (0,0,0) en LLA (Latitude, Longitude, Altitude). Il y a quelques méthodes que j'ai trouvées sur Internet (faites-moi savoir s'il existe de meilleures méthodes). Les deux sont clairement décrits dans ce document, aux pages 3-4:

http://www.microem.ru/pages/u_blox/tech/dataconvert/GPS.G1-X-00006.pdf

L'un utilise une méthode itérative et l'autre est une solution sous forme fermée. Je voudrais savoir quelle méthode utiliser pour mon application. Deux critères pertinents sont la vitesse (temps de calcul) et la précision . Les algorithmes ne sont pas difficiles à implémenter, mais je ne pense pas qu'il soit simple de comparer les deux ... Par exemple, j'ai l'impression que la précision variera en fonction des coordonnées ECEF en entrée.

Alors, quelqu'un a-t-il plus d'informations sur chaque méthode? Ce serait formidable si je pouvais obtenir lequel est le plus rapide (deviner la forme fermée) et une précision approximative que je peux attendre de chacun (c.-à-d., À combien de mètres de la LLA réelle puis-je m'attendre à ce que ma réponse soit ou quelque chose du genre) .

Pris
la source

Réponses:

10

Vous pouvez comparer les deux. Dans la plupart des applications, je soupçonne que la deuxième méthode (directe) sera celle à choisir.

La précision de la première méthode (itérative) dépend de la précision avec laquelle vous effectuez les calculs et du moment où vous décidez d'arrêter l'itération. Il peut donc être rendu aussi précis que la deuxième méthode pour toutes les entrées où les deux sont valides (la première méthode ne fonctionne que pour les hauteurs terrestres, pas pour les hauteurs astronomiques).

Ce qui est plus rapide dépend de l'environnement de programmation, de l'architecture informatique et de la précision requise. (Dans mes tests avec Mathematica, la deuxième méthode - directe - est en fait deux fois plus rapide que la première, pratiquement quelle que soit l'inexactitude tolérée dans la méthode itérative.) Parce que les deux méthodes prennent à peu près la même quantité de calcul mais la doit d'abord itérer au moins une fois, il peut en fait être plus lent. Si vous ne faites que des conversions au niveau de la mer (h = 0), la méthode itérative pourrait être un peu plus rapide, mais la différence ne sera pas énorme (je serais surpris par un double avantage).

BTW, notez que la "formule fermée" (pour la deuxième méthode) est un peu trompeuse: lorsque vous arrivez à calculer la hauteur h , vous devez obtenir le rayon de courbure N en fonction de la latitude que vous venez de calculer ( phi ) . Pour ce faire, utilisez la formule pour N trouvée dans la section précédente.

whuber
la source