Caratteristiche di diversi metodi per convertire ECEF in LLA


12

Sto cercando di convertire le coordinate ECEF (centrate sulla terra, fisse sulla terra), che sono definite in X, Y, Z, centrate a (0,0,0) in LLA (latitudine, longitudine, altitudine). Ci sono un paio di metodi che ho trovato su Internet (per favore fatemi sapere se ci sono metodi migliori). Entrambi sono chiaramente descritti in questo documento, alle pagine 3-4:

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

Uno utilizza un metodo iterativo e l'altro è una soluzione a forma chiusa. Vorrei sapere quale metodo utilizzare per la mia applicazione. Due criteri rilevanti sono la velocità (tempo di calcolo) e la precisione . Gli algoritmi non sono difficili da implementare, ma non credo sia semplice confrontare i due ... Ad esempio, penso che l'accuratezza varierà in base alle coordinate ECEF di input.

Qualcuno ha ulteriori informazioni su ciascun metodo? Sarebbe bello se potessi ottenere quale è più veloce (indovinando la forma chiusa) e un'accuratezza approssimativa che posso aspettarmi da ciascuno (cioè, entro quanti metri dall'LLA reale posso aspettarmi che la mia risposta sia o qualcosa del genere) .


Risposte:


10

È possibile confrontare i due. Nella maggior parte delle applicazioni sospetto che il secondo metodo (diretto) sarà quello da scegliere.

La precisione del primo metodo (iterativo) dipende dalla precisione con cui si eseguono i calcoli e da quando si decide di interrompere l'iterazione. Pertanto può essere reso accurato come il secondo metodo per tutti gli input in cui entrambi sono validi (il primo metodo funziona solo per le altezze terrestri, non per quelle astronomiche).

Ciò che è più veloce dipende dall'ambiente di programmazione, dall'architettura informatica e dalla precisione necessaria. (Nei miei test con Mathematica, il secondo metodo - diretto - è in realtà due volte più veloce del primo, praticamente non importa quanta imprecisione è stata tollerata nel metodo iterativo.) Perché entrambi i metodi richiedono circa la stessa quantità di calcolo ma il prima deve iterare almeno una volta, in realtà può essere più lento. Se stai solo facendo le conversioni a livello del mare (h = 0), il metodo iterativo potrebbe essere un po 'più veloce, ma la differenza non sarà enorme (sarei sorpreso da un duplice vantaggio).

A proposito, nota che la "formula chiusa" (per il secondo metodo) è un po 'ingannevole: quando arrivi a calcolare l'altezza h , devi ottenere il raggio di curvatura N in termini di latitudine che hai appena calcolato ( phi ) . Per fare ciò, usa la formula per N trovata nella sezione precedente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.