Calcolo posizione orbita terrestre e le rotazioni
-
30-09-2019 - |
Domanda
Voglio calcolare la posizione della Terra (rispetto al Sole) e asse rotazioni per una certa data e l'ora. E 'ok per assumere il Sole è fermo al 0,0,0 coordinate. deviazioni molto minori, a causa della forza gravitazionale lune per esempio, possono essere ignorati. Tutto ciò accurata all'interno di una laurea o così è abbastanza buono.
Ci sono delle librerie / sorgente / dati là fuori che mi aiuterà realizzare questo?
Soluzione
Il codice aa-56, che può essere scaricato da qui , include un'effemeridi solari che probabilmente si incontrano I tuoi bisogni. Per i lavori di alta precisione che ci si vuole qualcosa di più preciso, come DE421 del JPL, ma ci sono alcuni scomodi grandi tavoli di coefficienti coinvolti, ed è probabilmente estremo eccessivo se sei felice con una precisione di 1 grado.
La rotazione della Terra in un dato momento è dato dal Greenwich tempo siderale.
Jean Meeus' 'Astronomical Algorithms' (un buon riferimento per avere per questo tipo
di calcoli!) fornisce una formula per theta0
(angolo di rotazione cumulativa in gradi)
in termini di data JD
Julian:
T = (JD - 2451545.0 ) / 36525
theta0 = 280.46061837 + 360.98564736629*(JD-2451545.0) +
0.000387933*T*T - T*T*T/38710000.0
theta0 = 0 gradi mod 360 rappresenta l'istante in cui il meridiano di Greenwich è allineato con ascensione retta 0:00 coordinate celesti.
Altri suggerimenti
Sì. Quello che vi serve è un pacchetto Ephemeris .
Il JPL ha un servizio online di Ephemeris che farà i calcoli per voi, quindi se siete web in grado si può colpire che fino.
Ho trovato un libero Ephermeris pacchetto troppo, ma sembra che colpisce solo il sito JPL per te. Tuttavia, c'è un link per scaricare lì database del JPL e farlo funzionare fuori di questo. Quindi, se si desidera lavorare non in linea e non vi occupate di aggiornamento del database dal JPL manualmente ogni tanto, che potrebbe essere un'opzione.
In Python, utilizzando il ephem
libreria:
>>> import ephem
>>> sun = ephem.Sun()
>>> sun.compute(ephem.now())
>>> sun.hlong, sun.hlat, sun.earth_distance
(69:41:32.6, 0:00:00.2, 0.98602390289306641)
ephem
non fornisce una comoda rappresentazione della Terra come un corpo, ma sun.hlong
e sun.hlat
dare la longitudine e la latitudine eliocentrica della Terra. Questo potrebbe essere meglio documentato.
Per la rotazione della Terra, forse si può dire che valore che stai cercando qui. (Normalmente usiamo l'ora del giorno, ma penso che è generalmente chiaro come entrare in possesso di questo!)