Come si calcola il raggio terrestre a una determinata latitudine geodetica?


19

(Vedo che esiste un'equazione su Wikipedia che fa esattamente quello che sto chiedendo, ma non ci sono riferimenti. Non ho modo di confermare la validità di questa equazione!)

Comprendo già la differenza tra latitudine geocentrica e latitudine geodetica.

Supponendo che vengano dati raggi noti semi maggiori ae semi minori b. Come si calcola il raggio a una determinata latitudine geodetica?

Ho bisogno di una sorta di conferma da esperto (derivazione, collegamento a derivazione, conferma da esperto, spiegazione, ecc.).

Risposte:


25

Questa domanda assume un modello ellissoidale della terra. La sua superficie di riferimento è ottenuta ruotando un'ellisse attorno al suo asse minore (tracciato verticalmente per convenzione). Un tale ellisse è solo un cerchio che è stata allungata orizzontalmente di un fattore di una e verticalmente di un fattore b . Utilizzando la parametrizzazione standard del cerchio unitario,

t --> (cos(t), sin(t))

(che definisce coseno e seno), otteniamo una parametrizzazione

t --> (a cos(t), b sin(t)).

(Le due componenti di questa parametrizzazione descrivono un viaggio intorno alla curva: specificano, in coordinate cartesiane, la nostra posizione al "tempo" t .)

La latitudine geodetica , f , di qualsiasi punto è l'angolo che "in alto" fa rispetto al piano equatoriale. Quando a differisce da b , il valore di f differisce da quello di t (tranne lungo l'equatore e ai poli).

figura

In questa immagine, la curva blu è un quadrante di tale ellisse (molto esagerata rispetto all'eccentricità della terra). Il punto rosso nell'angolo in basso a sinistra è il suo centro. La linea tratteggiata indica il raggio su un punto della superficie. La sua direzione "in alto" è mostrata con un segmento nero: è, per definizione, perpendicolare all'ellisse in quel punto. A causa dell'eccentricità esagerata, è facile vedere che "su" non è parallelo al raggio.

Nella nostra terminologia, t è correlato all'angolo creato dal raggio rispetto all'orizzontale e f è l'angolo creato da quel segmento nero. (Si noti che qualsiasi punto sulla superficie può essere visto da questa prospettiva. Questo ci consente di limitare sia t che f in modo che si trovino tra 0 e 90 gradi; i loro coseni e seni saranno positivi, quindi non dobbiamo preoccuparci del negativo radici quadrate nelle formule.)

Il trucco è di convertire dalla t- parametrizzazione a una in termini di f , perché in termini di t il raggio R è facile da calcolare (tramite il teorema di Pitagora). Il suo quadrato è la somma dei quadrati dei componenti del punto,

R(t)^2 = a^2 cos(t)^2 + b^2 sin(t)^2.

Per effettuare questa conversione è necessario correlare la direzione "su" f al parametro t . Questa direzione è perpendicolare alla tangente dell'ellisse. Per definizione, si ottiene una tangente a una curva (espressa come vettore) differenziandone la parametrizzazione:

Tangent(t) = d/dt (a cos(t), b sin(t)) = (-a sin(t), b cos(t)).

(La differenziazione calcola il tasso di variazione. Il tasso di variazione della nostra posizione mentre percorriamo la curva è, ovviamente, la nostra velocità e che punta sempre lungo la curva.)

Ruota questo in senso orario di 90 gradi per ottenere il perpendicolare, chiamato vettore "normale":

Normal(t) = (b cos(t), a sin(t)).

La pendenza di questo vettore normale, uguale a (a sin (t)) / (b cos (t)) ("rise over run"), è anche la tangente dell'angolo che fa rispetto all'orizzontale, da cui

tan(f) = (a sin(t)) / (b cos(t)).

Equivalentemente,

(b/a) tan(f) = sin(t) / cos(t) = tan(t).

(Se avete buona visione geometria euclidea, si potrebbe ottenere questo rapporto direttamente dalla definizione di un ellisse senza passare attraverso qualsiasi trigonometria o calcolo, semplicemente riconoscendo che le espansioni orizzontali e verticali combinati da un e b rispettivamente hanno l'effetto di modificare tutte le pendenze di questo fattore b / a .)

Guardate ancora la formula per R (t) ^ 2: conosciamo un e b - determinano la forma e la dimensione dell'ellisse - quindi abbiamo solo bisogno di trovare cos (t) ^ 2 e il peccato (t) ^ 2 in termini di f , che l'equazione precedente ci consente di fare facilmente:

cos(t)^2 = 1/(1 + tan(t)^2) 
         = 1 / (1 + (b/a)^2 tan(f)^2) 
         = a^2 / (a^2 + b^2 tan(f)^2);
sin(t)^2 = 1 - cos(t)^2 
         = b^2 tan(f)^2 / (a^2 + b^2 tan(f)^2).

(Quando l'abbronzatura (f) è infinita, siamo al polo, quindi basta impostare f = t in quel caso.)

Questa è la connessione di cui abbiamo bisogno. Sostituisci questi valori con cos (t) ^ 2 e sin (t) ^ 2 nell'espressione per R (t) ^ 2 e semplifica per ottenere

R(f)^2 = ( a^4 cos(f)^2 + b^4 sin(f)^2 ) / ( a^2 cos(f)^2 + b^2 sin(f)^2 ).

Una semplice trasformazione mostra che questa equazione è la stessa di quella trovata su Wikipedia. Poiché a ^ 2 b ^ 2 = (ab) ^ 2 e (a ^ 2) ^ 2 = a ^ 4,

R(f)^2 = ( (a^2 cos(f))^2 + (b^2 sin(f))^2 ) / ( (a cos(f))^2 + (b sin(f))^2 )

+1 .. tranne che penso che la formula finale abbia una parentesi fuori posto ... non dovrebbe (b^4 sin(f))^2essere cambiata in (b^4 sin(f)^2)?
Kirk Kuykendall,

davvero contento che ci siano alcuni esperti in materia su questo argomento =).
Trevor Boyd Smith,

È possibile pubblicare un file Geogebra (html) su questo sito? Ho un raggio della verticale principale che potrebbe dimostrare visivamente cosa sta succedendo.

Puoi esportare l'originale in formato .png, @Dan: usa la finestra di dialogo File | Esporta. Consiglio di usare caratteri grandi (16 o 18 punti sembrano funzionare bene) e di ingrandire l'immagine quanto più possibile per prima.
whuber

Presumo che allora l'interattività andrà persa. La demo dimostra come variando i raggi e la latitudine di interesse cambino le proprietà.

3

Interessante scoprire che la mia soluzione analfabeta in matematica ha funzionato con 5 minuti di riflessione e codifica, non si dovrebbe considerare il fattore appiattimento piuttosto che un modello ellittico perfetto?

        double pRad = 6356.7523142;
        double EqRad = 6378.137;                      
        return pRad + (90 - Math.Abs(siteLatitude)) / 90 * (EqRad - pRad); 

1
Dove pRad è il raggio polare ed EqRad è il raggio equatoriale.
Stefan Steiger,

questa è l'unica risposta che potrei leggere. Sembra funzionare per me.
Sean Bradley,

1
Vedo che stai facendo un'interpolazione lineare del raggio tra polo ed equatore. Sebbene non vi sia motivo di credere che l' interpolazione lineare sia accurata , la userò come "abbastanza buona" per la Terra, dato il suo lieve fattore di appiattimento. A proposito, penso che sia leggermente più facile leggere l'equivalente:, return E + (P - E) * Abs(Lat) / 90quindi non è necessario averlo 90 - ...nella formula.
ToolmakerSteve

2

inserisci qui la descrizione dell'immagine

Almeno questa è la formula che ho trovato presso la US dati analisi e valutazione Center (DAAC) per il Dipartimento della Difesa (DoD) High Performance Computing Modernization programma (HPCMP) wiki . Dice che hanno preso in prestito pesantemente dall'entrata di Wikipedia . Tuttavia, il fatto che abbiano mantenuto quella formula dovrebbe contare qualcosa.


Puoi fornire un link al contenuto?
Trevor Boyd Smith,

dove φ è la latitudine geodetica e a (asse semi-maggiore) eb (asse semi-minore) sono, rispettivamente, il raggio equatoriale e il raggio polare. var a = 6378137; // m var b = 6356752.3142; // m en.wikipedia.org/wiki/Semi-major_and_semi-minor_axes en.wikipedia.org/wiki/World_Geodetic_System
Stefan Steiger
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.