Distanza angolare

Dovendo trovare la distanza angolare fra due oggetti celesti può venire utile quanto descriverò di seguito.

Separation con Astropy

Astropy ha già funzioni che permettono il calcolo.

Le coordinate dei due oggetti (M1 ed M1-42) sono in degree, ma per fare il calcolo sono necessarie delle conversioni di cui si fa carico la libreria.

    import astropy.units as u
    from astropy.coordinates import SkyCoord as sc

    dat = [ { "ra": 83.6331,   "dec": 22.0145 },       # Crab M1
            { "ra": 272.77095, "dec": -28.98314722 } ] # Eye of Sauron M1-42
    star = [ sc(ra=d["ra"]*u.deg, dec=d["dec"]*u.deg, frame="icrs") for d in dat ]

    print("Separation [deg]: %.4f" % star[1].separation(star[0]).deg) # 169.2102

Riferimento: astropy.coordinates.SkyCoord.separation

Formula esplicita (1)

Volendo avere la formula esplicita a disposizione, la prima approssimazione è data dalla legge sferica dei coseni che calcola l'angolo seguendo il cerchio massimo.

    import math as m

    t = m.sin(star[0].dec.radian) * m.sin(star[1].dec.radian) \
      + m.cos(star[0].dec.radian) * m.cos(star[1].dec.radian) \
      * m.cos((star[0].ra.radian-star[1].ra.radian))

    print("Distance [deg]: %.4f" % m.degrees(m.acos(t)))

Parola del giorno: ortodromia, cioè la linea che individua il cammino più breve fra due punti di una superficie sferica.

Formula esplicita (2)

Calcolo esplicito sfruttando la formula di Vincenty, che è quella usata da Astropy con separation.

[todo] ;-)

2019-06-26