In questa pagina si descrive uno dei metodi generici di trasformazione di coordinate sferiche di un astro da un sistema di riferimento ad un altro. L’esempio riguarda le coordinate polari, ma con semplici adattamenti si può ottenere la trasformazione di coordinate sferiche ortogonali. Nell’applicare questi metodi alle trasformazioni di coordinate astronomiche è necessario tener conto delle convenzioni del verso orario o antiorario in cui cresce la longitudine. Il problema si risolve mantenendo lo stesso verso per tutti i valori di longitudine (nel nostro esempio: $\Theta$, $\Omega$, $\theta$ e $\theta’$). Se, ad esempio, si utilizza l’azimut $A_z$ del sistema altazimutale, crescente in senso orario, conviene sostituirlo con il valore $360°-A_z$ prima di applicare le formule. In compenso abbiamo il vantaggio di alcune semplificazioni dovute al fatto che i sistemi di riferimento astronomici spesso condividono tra loro uno o più elementi. Ad esempio, il sistema orario e il sistema altazimutale hanno il semicerchio origine sullo stesso meridiano (il meridiano celeste). Un altro esempio è dato dai sistemi equatoriale ed eclittico che condividono il coluro dei solstizi. Questo è un esempio generico nel quale eseguiamo la trasformazione delle coordinate di un punto $A$, da un sistema di riferimento qualsiasi ad un altro.

In questa immagine:

  • $A$ è la posizione di un astro o di un qualsiasi punto della sfera celeste di raggio arbitrario.
  • $P$ è il polo del sistema di riferimento originario e l’arco $PQ$ è il suo semicerchio origine ($QPR$ è il cerchio massimo passante per i poli di questo sistema).
    Le due coordinate polari del punto $A$ rispetto a questo sistema sono l’angolo sferico $\theta = Q\hat PA$, la longitudine, e il lato sferico $p=PA$ la colatitudine o distanza polare.
  • $P’$ è il polo del nuovo sistema di cui si intende calcolare le coordinate e l’arco $P’Q’$ è il corrispondente semicerchio origine ($Q’P’R’$ è il cerchio massimo passante per i poli del secondo sistema).
  • Le nuove coordinate del punto $A$ relative al secondo sistema sono l’angolo sferico $\theta’=Q’\widehat{P’}A$ e il lato $p’=P’A$.
  • $\Theta=Q\hat PP’$ è la longitudine del nuovo polo $P’$ rispetto al primo sistema.
    $\Omega=Q’\widehat{P’}P$ è la longitudine del polo $P$ rispetto al secondo sistema.
    Il lato $u=PP’$ è la distanza polare reciproca tra i poli, comune ad entrambi i sistemi.

Il triangolo $APP’$ è un triangolo sferico perché i suoi lati sono archi di cerchio massimo e perciò possiamo applicare ad esso le formule fondamentali di trigonometria sferica che riportiamo qui:

\begin{align*}
\cos{a}&=\cos{b}\cdot\cos{c}+\sin{b}\cdot\sin{c}\cdot\cos{\alpha} \\
\sin a\cdot\sin \beta &=\sin{\alpha}\cdot\sin{b}\\
\sin a \cdot \cos \beta &= \cos b \cdot \sin c – \sin b\cdot\cos c \cdot \cos \alpha
\end{align*}

Sostituiamo gli elementi delle formule generiche con i corrispondenti elementi delle coordinate definiti prima:

$a=p’$
$b=p$
$\alpha=\hat P=\theta-\Theta$
$\beta=\widehat{P’}=\Omega-\theta’$
$c=u$

Si ottengono le seguenti uguaglianze:

\begin{equation}\tag{1}\label{eq1}
\cos{p’}=\cos{p}\cdot\cos{u}+\sin{p}\cdot\sin{u}\cdot\cos{(\theta-\Theta)}
\end{equation}

\begin{equation}\tag{2}\label{eq2}
\sin{p’}\cdot \sin{(\Omega-\theta’)}= \sin{p} \cdot \sin{(\theta-\Theta)}
\end{equation}

\begin{equation}\tag{3}\label{eq3}
\sin p’ \cdot \cos (\Omega-\theta’) = \cos p \cdot \sin u – \sin p\cdot\cos u \cdot \cos (\theta-\Theta)
\end{equation}

La (1) si può utilizzare tale e quale: essa permette di calcolare la nuova colatitudine $p’$ in base alle coordinate del primo sistema.

Ora dividiamo membro a membro la (2) e la (3) ottenendo:

$$\frac{\sin{p’}\cdot \sin{(\Omega-\theta’)}}{\sin p’ \cdot \cos (\Omega-\theta’)}=\frac{\sin{p} \cdot \sin{(\theta-\Theta)}}{\cos p \cdot \sin u – \sin p\cdot\cos u \cdot \cos (\theta-\Theta)}$$

da cui, semplificando:

$$\tan (\Omega-\theta’)=\frac{\sin{p} \cdot \sin{(\theta-\Theta)}}{\cos p \cdot \sin u – \sin p\cdot\cos u \cdot \cos (\theta-\Theta)}$$

L’angolo $\beta=\Omega-\theta’$ si ricava perciò con la funziona arcotangente e quindi $\theta’$ con la sottrazione:
$\theta’=\Omega-\beta$.

Suggerimenti per chi intende implementare questi algoritmi con un linguaggio di programmazione.

E’ utile sapere che, per non perdere l’informazione del quadrante si deve utilizzare la funzione arcotangente a due parametri, il numeratore e il denominatore della frazione. Nei linguaggi di programmazione questa funzione è generalmente denominata atan2.

Per quando riguarda la (1), essa è corretta e sufficiente per la stragrande maggioranza dei casi, ma nel caso particolare in cui $\theta \simeq \Theta$ e $p \simeq u$, cioè quando la posizione dell’astro $A$ coincide o è molto vicina al polo $P’$ del secondo sistema, essa può dare un risultato leggermente maggiore di 1 per effetto degli arrotondamenti in virgola mobile e la funzione arcocoseno necessaria a calcolare $p’$ in questi casi produce un errore di dominio (il valore di coseno deve rientrare nell’intervallo [-1,+1]). In ogni caso, se $p’=0$ oppure $p’=180°$ la seconda coordinata $\theta’$ degenera e si ottiene $\theta’=\Theta$ come valore convenzionale, non come valore di longitudine.

Il seguente procedimento previene l’errore.
Posti $m_2$ e $m_3$ i secondi membri della (2) e della (3):
$p′ = atan2(hypot(m_2, m_3), \cos{p′})$

La (1) è corretta e sufficiente per la stragrande maggioranza dei casi; la variante con atan2 è preferibile perché è stabile vicino ai poli e immune al problema del dominio dell’arcocoseno.