Attenzione! Javascript è disabilitato
Raccolta di funzioni per il calcolo di una effemeride per i pianeti (esluso Plutone).
Prima di iniziare, collegate la vostra pagina Html alla libreria Astrojs, incollando il seguente listato, sotto il tag <title>.
IMPORTANTE! Le funzioni evidenziate in rosso, non sono comandi Javascript, ma appartengono alla libreria Astrojs.
<script type="text/javascript" src="http://www.suchelu.it/astrojs/astrojs.js"></script>
Utilizzate il menu a tendina [ Apri Menu Scripts: ], per poter accedere velocemente, all'elenco di tutti gli scripts, finora realizzati...
<script language="JavaScript" type="text/javascript"> <!-- // Calcola la posizione del pianeta Mercurio in questo istante. // Le coordinate equatoriali sono riferite all'Equinozio della data. var np=0; // Selezionare il pianeta: np=0 per Mercurio. var njd=calcola_jd(); // (1) Calcola il G.G. riferito al tempo di Greenwich. var effemeridi=pos_pianeti(njd,np); // Calcola la posizione di Mercurio. // La funzione (pos_pianeti), restituisce 12 variabili. // Vedi la lista dei valori presenti nell'array effemeridi[0,1,...11], in fondo a questa pagina. //Stampa i risultati. document.write("A. R. geocentrica:"+effemeridi[0]+"<br>"); //in ore decimali document.write(" Dec. geocentrica:"+effemeridi[1]+"<br>"); //in gradi decimali document.write(" Fase attuale :"+effemeridi[2]+"<br>"); //Fase document.write("Dist. :"+effemeridi[4]+"<br>"); //Distanza Terra-pianeta in U.A. document.write("Diam. :"+effemeridi[5]+"<br>"); //Diametro apparente in secondi d'arco. //--> </script>
In tutti i listati è stato previsto l'Effetto di Tempo-Luce, sulle coordinate equatoriali.
Per calcolare la posizione del pianeta per l'ora 0(zero) T.U. di oggi, utilizzate var njd=calcola_jdUT0(); in sostituzione della riga (1).
Sostituite il valore 0(zero) di np con il numero 3 per calcolare la posizione attuale di Marte; inserite 5 per Saturno (vedi elenco in basso).
Non è ammesso il valore 2.
np=0 Mercurio, np=1 Venere, np=3 Marte, np=4 Giove, np=5 Saturno, np=6 Urano, np=7 Nettuno
Per la data, inserite solo valori compresi all'interno dell'intervallo di tempo, che va dall'anno 1 (DC) al 3000 (DC).
<script language="JavaScript" type="text/javascript"> <!-- // Calcola le coordinate equatoriali geocentriche per il T.U. di Greenwich. // Le coordinate equatoriali sono riferite all'Equinozio della data. // Sostituite i valori numerici predefiniti per la data. var dd=23; // giorno. var mm=6; // mese. var yy=2011; // anno. var hh=12; // ora di Greenwich. var mi=34; // minuti. var se=27.85; // secondi (possono avere i decimali). var np=0; // np=0 per Mercurio. var njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var effemeridi=pos_pianeti(njd,np); // Calcola la posizione di Mercurio. //Stampa i risultati. document.write("A. R. geocentrica:"+effemeridi[0]+"<br>"); //in ore decimali document.write(" Dec. geocentrica:"+effemeridi[1]+"<br>"); //in gradi decimali document.write(" Fase attuale :"+effemeridi[2]+"<br>"); //Fase document.write("Dist. :"+effemeridi[4]+"<br>"); //Distanza Terra-pianeta in U.A. document.write("Diam. :"+effemeridi[5]+"<br>"); //Diametro apparente in secondi d'arco. //--> </script>
np=0 Mercurio, np=1 Venere, np=3 Marte, np=4 Giove, np=5 Saturno, np=6 Urano, np=7 Nettuno
<script language="JavaScript" type="text/javascript"> <!-- // Calcola le coordinate equatoriali geocentriche apparenti per il T.U. di Greenwich. // Correzioni dovute agli effetti della nutazione e aberrazione della luce. // Le coordinate equatoriali sono riferite all'Equinozio della data. // Sostituite i valori numerici predefiniti per la data. var dd=23; // giorno. var mm=6; // mese. var yy=2011; // anno. var hh=12; // ora di Greenwich. var mi=34; // minuti. var se=27.85; // secondi (possono avere decimali). var np=0; // Selezionare il pianeta: np=0 per Mercurio. var njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var effemeridi=pos_pianeti(njd,np); // Calcola la posizione di Mercurio. var AR=effemeridi[0]; // Ascensione retta in ore decimali. var DE=effemeridi[1]; // Declinazione in gradi decimali. var coord_app=pos_app(njd,AR,DE); // Coordinate equatoriali apparenti . var AR_app= coord_app[0]; // Ascensione retta apparente in ore decimali. var DE_app= coord_app[1]; // Declinazione apparente in gradi sessadecimali. //Stampa i risultati. document.write("A. R. geocentrica:"+effemeridi[0]+"<br>"); //in ore decimali document.write(" Dec. geocentrica:"+effemeridi[1]+"<br>"); //in gradi decimali document.write("A. R. geo. apparente:"+AR_app+"<br>"); //in ore decimali document.write(" Dec. geo. apparente:"+DE_app+"<br>"); //in gradi decimali //--> </script>
np=0 Mercurio, np=1 Venere, np=3 Marte, np=4 Giove, np=5 Saturno, np=6 Urano, np=7 Nettuno
<script language="JavaScript" type="text/javascript"> <!-- // Calcola le coordinate equatoriali Topocentriche apparenti per il T.U. di Greenwich. // Correzioni dovute agli effetti della nutazione e aberrazione della luce. // Correzioni dovute alla parallasse diurna. // Le coordinate equatoriali sono riferite all'Equinozio della data. // Sostituite i valori numerici predefiniti per la data. // ************************************************************. var dd=23; // giorno. var mm=6; // mese. var yy=2011; // anno. var hh=12; // ora di Greenwich. var mi=34; // minuti. var se=27.85; // secondi (possono avere decimali). // Sostituite i valori numerici predefiniti con le coordinate della vs. località. // Coordinate geografiche della località var LAT=42; // Latitudine (può avere decimali). var LON=12; // Longitudine (può avere decimali). var ALT=0; // Altitudine sul livello del mare in metri (decimali non necessari). var np=0; // Selezionare il pianeta: np=0 per Mercurio. // ************************************************************. var njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var effemeridi=pos_pianeti(njd,np); // Calcola una effemeridi per Mercurio. var AR=effemeridi[0]; // Ascensione retta in ore decimali. var DE=effemeridi[1]; // Declinazione in gradi decimali. var coord_app=pos_app(njd,AR,DE); // Coordinate equatoriali apparenti . var AR_app= coord_app[0]; // Ascensione retta apparente in ore decimali. var DE_app= coord_app[1]; // Declinazione apparente in gradi decimali. // Correzione delle Coordinate equatoriali apparenti per la parallasse. var P=effemeridi[10]; // La parallase del pianeta in gradi (vedi tabella primo listato). var coord_top=cor_parall(njd,AR_app,DE_app,P,LAT,LON,ALT);// Coord. eq. Topocentriche. var AR_top= coord_top[0]; // Ascensione retta apparente topocentrica in ore decimali. var DE_top= coord_top[1]; // Declinazione apparente topocentrica in gradi sessadecimali. //Stampa i risultati. document.write("A. R. topocentrica:"+AR_top+"<br>"); //in ore decimali document.write(" Dec. topocentrica:"+DE_top+"<br>"); //in gradi decimali //--> </script>
np=0 Mercurio, np=1 Venere, np=3 Marte, np=4 Giove, np=5 Saturno, np=6 Urano, np=7 Nettuno
Se volete applicare nel vostro calcolo, le correzioni, dovute alla nutazione, aberrazione della luce e alla parallase;
potete sostituire le funzioni precedenti, con un'altra più generale; che applica tutte e tre le correzioni:pos_app_pa(njd,AR,DE,P,LAT,LON,ALT);
in questo modo potete ridurre le righe del vostro listato.
A seguire il listato definitivo per il calcolo della posizione di un pianeta per qualsiasi data.
<script language="JavaScript" type="text/javascript"> <!-- // Calcola le coordinate equatoriali Topocentriche apparenti per il T.U. di Greenwich. // Correzioni dovute agli effetti della nutazione e aberrazione della luce. // Correzioni dovute alla parallasse diurna. // Le coordinate equatoriali sono riferite all'Equinozio della data. // Sostituite i valori numerici predefiniti per la data. // ************************ inserire le variabili per il calcolo ************************* var dd=23; // giorno. var mm=6; // mese. var yy=2011; // anno. var hh=12; // ora di Greenwich. var mi=34; // minuti. var se=27.85; // secondi (possono avere decimali). // Sostituite i valori numerici predefiniti con le coordinate della vs. località. // Coordinate geografiche della località var LAT=42; // Latitudine (può avere decimali). var LON=12; // Longitudine (può avere decimali). var ALT=0; // Altitudine sul livello del mare in metri (decimali non necessari). var np=4; // Selezionare il pianeta: np=4 per il pianeta Giove. // **************************************************************************************** var njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var effemeridi=pos_pianeti(njd,np); // Calcola la posizione del pianeta Giove. var AR=effemeridi[0]; // ascensione retta in ore decimali. var DE=effemeridi[1]; // declinazione in gradi sessadecimali. var P=effemeridi[10]; // parallasse del pianeta in gradi (vedi tabella primo listato). var coord_top=pos_app_pa(njd,AR,DE,P,LAT,LON,ALT);// Coord. eq. Topocentriche apparenti. var AR_top= coord_top[0]; // Ascensione retta apparente topocentrica in ore decimali. var DE_top= coord_top[1]; // Declinazione apparente topocentrica in gradi decimali. //Stampa i risultati. document.write("A.R. topocentrica app.:"+AR_top+"<br>"); //in ore decimali document.write("Dec. topocentrica app.:"+DE_top+"<br>"); //in gradi sessadecimali //--> </script>
np=0 Mercurio, np=1 Venere, np=3 Marte, np=4 Giove, np=5 Saturno, np=6 Urano, np=7 Nettuno
Con questa funzione è possibile individuare in quale costellazione sta transitando il pianeta, dopo averne calcolato la posizione.
A causa della forma particolarmente complessa dei confini delle costellazioni, questa funzione potrà essere utilizzata solo con oggetti che si muovono molto vicini al piano dell'eclittica, come i pianeti, il Sole e la Luna.
Per questo motivo è stato inserito come parametro solo l'ascensione retta, in quanto si presuppone, la vicinanza dell'astro al piano dell'eclittica.
Per astri che si trovano lontano dall'eclittica, la funzione, restituirà valori completamente errati.
// Individua la costellazione di transito (compreso Ofiuco) del pianeta. // AR= ascensione retta in ore decimali. // Restituisce una stringa con una abbreviazione in latino del nome della costellazione. var transit_cost=costell(AR); document.write(" Costellazione:"+transit_cost+"<br>"); //Nome della costellazione in Latino.
// Individua la costellazione di transito (compreso Ofiuco) del pianeta. // AR= ascensione retta in ore decimali. // Restituisce una stringa del nome (per esteso) in latino della costellazione. var transit_cost=costell2(AR); document.write(" Costellazione:"+transit_cost+"<br>"); //Nome della costellazione in Latino.
Inserite questo listato all'interno di uno qualsiasi dei precedenti (vedi esempio in basso).
<script language="JavaScript" type="text/javascript"> <!-- // Calcola le coordinate equatoriali Topocentriche apparenti per il T.U. di Greenwich. // Correzioni dovute agli effetti della nutazione e aberrazione della luce. // Correzioni dovute alla parallasse diurna. // Le coordinate equatoriali sono riferite all'Equinozio della data. // Trova la costellazione di transito. // Sostituite i valori numerici predefiniti per la data. // ************************ inserire le variabili per il calcolo ************************* var dd=23; // giorno. var mm=6; // mese. var yy=2011; // anno. var hh=12; // ora di Greenwich. var mi=34; // minuti. var se=27.85; // secondi (possono avere decimali). // Sostituite i valori numerici predefiniti con le coordinate della vs. località. // Coordinate geografiche della località var LAT=42; // Latitudine (può avere decimali). var LON=12; // Longitudine (può avere decimali). var ALT=0; // Altitudine sul livello del mare in metri (decimali non necessari). var np=4; // Selezionare il pianeta: np=4 per il pianeta Giove. // **************************************************************************************** var njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var effemeridi=pos_pianeti(njd,np); // Calcola la posizione del pianeta Giove. var AR=effemeridi[0]; // ascensione retta in ore decimali. var DE=effemeridi[1]; // declinazione in gradi sessadecimali. var P=effemeridi[10]; // parallasse del pianeta in gradi (vedi tabella primo listato). var coord_top=pos_app_pa(njd,AR,DE,P,LAT,LON,ALT);// Coord. eq. Topocentriche apparenti. var AR_top= coord_top[0]; // Ascensione retta apparente topocentrica in ore decimali. var DE_top= coord_top[1]; // Declinazione apparente topocentrica in gradi decimali. var transit_cost=costell(AR_top); //inserite AR o AR_top come parametro. //Stampa i risultati. document.write("A.R. topocentrica app.:"+AR_top+"<br>"); //in ore decimali document.write("Dec. topocentrica app.:"+DE_top+"<br>"); //in gradi sessadecimali document.write("Nome Costellazione:"+transit_cost+"<br>"); //Nome costellazione. //--> </script>
Le funzioni presenti in questa pagina sono utili per la formattazione dei risultati (ricavati dai calcoli), prima della pubblicazione.
Utilizzando queste funzioni è possibile formattare le ore/ascensione retta, dal formato decimale in hh: mm: ss.
Anche gli angoli sessadecimali si possono formattare in ° ' " (gradi| minuti| secondi).
//formattazione dell'ascensione retta o delle ore decimali //Esempio numerico var ar_dec=22.5426538; // Ascensione Retta/Ora decimale var AR_F1= sc_ore(ar_dec); // L'Ascensione Retta decimale è trasformata in (h m s) var AR_F2= sc_oresd(ar_dec); // L'Ascensione Retta decimale è trasformata in (h m s+2decimali) var AR_F3= sc_ore_hm(ar_dec); // L'Ascensione Retta decimale è trasformata in (h m ) var AR_F4=sc_ore_hmd(ar_dec); // L'Ascensione Retta decimale è trasformata in (h m+1 decimale ) document.write(AR_F1+"<br>"); document.write(AR_F2+"<br>"); document.write(AR_F3+"<br>"); document.write(AR_F4);
Le funzioni precedenti possono essere utilizzate indifferentemente, per formattare l'ascensione retta decimale o le ore decimali; e
riportano questi valori, sempre all'interno dell'intervallo orario 0-24 ore.
La funzione sc_oresd(), non deve essere utilizzata per l'ascensione retta della Luna e dei pianeti, in quanto la precisione realizzata dall'algoritmo di calcolo, non giustifica la presenza di decimali per i secondi d'arco;
ma può essere utilizzata con l'ascensione retta del Sole.
//Risultati della formattazione per un valore decimale di ar_dec=22.5426538 :
22h. 32m. 33s.
22h. 32m. 33.55s.
22h. 32m.
22h. 32.6m.
//Per ar_dec o ore di tempo=256.325323 le funzioni restituiranno i seguenti valori: 16h. 19m. 31s. 16h. 19m. 31.16s. 16h. 19m. 16h. 19.5m. //ar_dec è stato riportato all'interno dell'intervallo 0-24 ore e formattato:
Per qualsiasi angolo sessadecimale si utilizzano queste funzioni.
var angolo_dec=25.23563; // Declinazione o angolo sessadecimale da formattare var DE_F1= sc_angolo(angolo_dec); // Declinazione sessadecimale è trasformata in (° ' ") var DE_F2=sc_angolo_sd(angolo_dec); // Declinazione sessadecimale è trasformata in (° ' ") var DE_F3=sc_angolo_gm(angolo_dec,2); // Declinazione sessadecimale è trasformata in (° ' ") document.write(DE_F1+"<br>"); document.write(DE_F2+"<br>"); document.write(DE_F3+"<br>");
//Risultati della formattazione di un angolo_sessadecimale=25.23563;:
25º 14' 08''
25° 14' 08.27''
25° 14.14'
Per altri tipi di variabili (distanza, fase, ect.), utilizzate il comando toFixed(decimali) di Javascript per eliminare i decimali di troppo.
// Utilizzate il comando toFixed() per eliminare i decimali in eccesso... var PH=effemeridi[4].toFixed(5); //Distanza dalla Terra in U.A, con 5 decimali. var MA=effemeridi[5].toFixed(2); //Diametro apparente del pianeta in secondi d'arco con 2 decimali.
Listato completo, per calcolare una Effemeride per il pianeta Mercurio, dal 1 Marzo al 31 Marzo 2012.
...La variabile (STEP=1), indica l'intervallo di tempo, in questo caso è stato inserito un giorno.
Per un maggior ordine, i dati calcolati verranno inseriti all'interno di una tabella <table>.
Utilizzando un foglio di stile CSS, sarà possibile personalizzare l'aspetto grafico della tabella, in modo tale da rendere più leggibili i dati.
<script language="JavaScript" type="text/javascript"> <!-- // Calcola una effemeride per il pianeta Mercurio.************ (inizio ) var njd1=calcola_jddata( 1,3,2012,0,0,0); // Data: 1 marzo 2011 var njd2=calcola_jddata(31,3,2012,0,0,0); // Data: 31 marzo 2011 var numero_iterazioni=Math.abs(njd1-njd2)+1; var STEP=1; // In giorni o frazione di giorni var njd=njd1-1; // Sostituite i valori numerici predefiniti con le coordinate della vs. località. // Coordinate geografiche della località. var LAT=42.15; // Latitudine (può avere decimali). var LON=12.32; // Longitudine (può avere decimali). var ALT=0; // Altitudine sul livello del mare in metri (decimali non necessari). var np=0; // Selezionare il pianeta: np=0 per Mercurio. // Crea una tabella per i dati document.write("<table>"); document.write(" <tr>"); document.write(" <td>Data:</td> "); document.write(" <td>Ascensione retta:</td> "); document.write(" <td>Declinazione:</td>"); document.write(" <td>Distanza in UA:</td>"); document.write(" <td>Diam.:</td>"); document.write(" <td>Elongazione:</td>"); document.write(" <td>Parallasse:</td>"); document.write(" <td>Costellazione:</td>"); document.write(" <td>Magnitudine:</td>"); document.write(" </tr>"); for (b=0; b<numero_iterazioni; b=b+STEP){ njd=njd+STEP; effemeridi=pos_pianeti(njd,np); // Calcola una effemeridi per Mercurio. var AR=effemeridi[0]; // ascensione retta in ore decimali. var DE=effemeridi[1]; // declinazione in gradi sessadecimali. var P=effemeridi[10]; // parallasse del pianeta in gradi (vedi tabella primo listato). var coord_top=pos_app_pa(njd,AR,DE,P,LAT,LON,ALT); // Coord. eq. Topocentriche apparenti. var AR_top= sc_ore(coord_top[0]); // AR apparente topocentrica in hh mm ss. var DE_top= sc_angolo(coord_top[1]); // DE apparente topocentrica in gg mm ss. //Stampa i risultati. var transit_cost=costell2(AR); //ATTENZIONE! Utilizzate AR decimale come parametro. // AR_top è stato formattato con (sc_ore) e non può essere utilizzato nei calcoli numerici. // DE_top è stato formattato con (sc_angolo) e non può essere utilizzato nei calcoli numerici. data=jd_data(njd); //Recupera la data del calendario. data_s=parseInt(data[0])+"|"+data[1]+"|"+data[3];// data: gg|mm|giorno della settimana document.write(" <tr>"); document.write(" <td>"+data_s+"</td>"); document.write(" <td>"+AR_top+"</td>"); document.write(" <td>"+DE_top+"</td>"); document.write(" <td>"+effemeridi[4].toFixed(6)+"</td>"); document.write(" <td>"+effemeridi[5].toFixed(2)+"</td>"); document.write(" <td>"+sc_angolo(effemeridi[6])+"</td>"); document.write(" <td>"+(effemeridi[10]*3600).toFixed(2)+"</td>"); document.write(" <td>"+transit_cost+"</td>"); document.write(" <td>"+effemeridi[3]+"</td>"); document.write(" </tr>"); } document.write(" </table>"); //--> </script>
Tutti gli elenchi sono stati formattati in modo tale, da poter essere inseriti all'interno del vostro listato, come note di Javascript.
2) I valori restituiti dalla funzione pos_pianeti(njd,np): // **** Elenco dei dati presenti nell'array effemeridi[0,1,2,...12] **** //effemeridi[0]; Ascensione Retta geocentrica - equinozio della data. //effemeridi[1]; Declinazione geocentrica - equinozio della data. //effemeridi[2]; Fase. //effemeridi[3]; Magnitudine. //effemeridi[4]; Distanza dalla Terra in U.A. //effemeridi[5]; Diametro apparente del pianeta in secondi d'arco. //effemeridi[6]; Elongazione in gradi sessadecimali. //effemeridi[7]; Longitudine geocentrica del Sole. //effemeridi[8]; Distanza della Terra dal Sole in U.A. //effemeridi[9]; Longitudine eliocentrica vera del pianeta. //effemeridi[10]; Parallasse diurna del pianeta in gradi. //effemeridi[11]; Distanza del pianeta dal Sole in U.A. //effemeridi[12]; Angolo di fase del pianeta.
3) I valori restituiti dalla funzione jd_data(njd): // **** Elenco dei dati presenti nell'array data[0,1,2,...4] **** data[0]; // giorno e ore decimali. data[1]; // mese. data[2]; // anno. data[3]; // giorno della settimana in italiano (abbreviato). data[4]; // giorno della settimana in inglese (abbreviato).
Siete liberi di utilizzare dei nomi differenti (tra quelli ammessi dalla sintassi di javascript), per gli Array: effemeridi[] o data[]; l'ordine numerico dei valori restituiti dalle due funzioni non cambierà.
Vedi pagina dedicata al calcolo di posizione del Sole, nel capitolo: Esempio numerico
In tutti i listati, dove sono previsti calcoli di posizione, le coordinate equatoriali, sono sempre riferite all'equinozio medio della data.
Se avete la necessità, di dover riportare le coordinate ad uno specifico equinozio: ad esempio a quello del 2000.0, o al 1950.0 (oppure a quello di un'altro periodo), applicate questo listato.
var njd0=calcola_jd(); // Equinozio data iniziale. var njd1=calcola_jddata(1,1,1950,0,0,0); // Equinozio data finale 1950.0. ar0=hams_dec(9,37,21.71); // ascensione retta in hh:mm:ss. data iniziale de0=hams_dec(14,10,56.5); // declinazione in gg:mm:ss. data iniziale // oppure inserite le coordinate direttamente in formato decimale. ar0=9.6226972; // ascensione retta in ore decimali. de0=14.182361; // declinazione in gradi sessadecimali. var eq=precess(njd0, njd1, ar0, de0); // ar. e dec. per l'equinozio del 1950.0. document.write(sc_oresd(eq[0])+"<br>"); // ascensione retta equinozio 1950.0. document.write(sc_angolo_sd(eq[1])+"<br>"); // declinazione equinozio 1950.0.
Se disponete di coordinate equatoriali, che fanno riferimento all'equinozio del 1950.0 e le volete riportare a quello del 2000.0; sostituite le prime due righe con queste:
var njd0=calcola_jddata(1,1,1950,0,0,0); // Equinozio data iniziale. var njd1=calcola_jddata(1,1,2000,0,0,0); // Equinozio data finale.
Con questo listato, è possibile calcolare la data della prossima opposizione (per i pianeti esterni), a partire da questo istante.
Nell'algoritmo è comunque compreso, il calcolo della congiunzione inferiore per Mercurio e Venere.
<script language="JavaScript" type="text/javascript"> <!-- // Calcola la prossima opposizione di Marte. // Usa la data odierna .... var np=3; // Selezionare il pianeta Marte: np=3 var njd=calcola_jd(); // (1) Calcola il G.G. riferito al tempo di Greenwich. var calc_opp=opp_cong(njd,np); // Calcola la data dell'opposizione di Marte. // La funzione (opp_cong), restituisce 4 variabili. //Stampa i risultati. document.write("G.G. Opposizione:"+calc_opp[0]+"<br>"); //Giorno Giuliano document.write("Long. eliocentrica Terra:"+calc_opp[1]+"<br>"); //in gradi decimali document.write("Long. eliocentrica pianeta: "+calc_opp[2]+"<br>"); //in gradi decimali document.write("Periodo Sinodico in giorni"+calc_opp[3]+"<br>"); //in giorni decimali. //--> </script>
Per trasformare il giorno giuliano nella data del calendario, utilizzate questo listato:
var data=jd_data(calc_opp[0]); var gg=data[0].toFixed(0); //Giorno senza decimali. var mm=data[1]; //Mese. var yy=data[2]; //Anno. var data_opposizione =" "+gg+" : "+mm+" : "+yy; //Stringa completa della data. document.write("Data opposizione: "+data_opposizione+"<br>"); //data.
In questo calcolo non è fondamentale conoscere anche l'ora, di conseguenza ho arrotondato il giorno, eliminando i decimali.
Aggiungendo altre 4 righe, è possibile calcolare l'ascensione retta del Sole e del pianeta, per la data dell'opposizione, e verificare il nostro risultato.
Se il calcolo è corretto, la differenza in ascensione retta tra Sole è pianeta dovrà essere di circa 12h (ore).
var ar_sole=pos_sole(calc_opp[0]); var ar_pianeta=pos_pianeti(calc_opp[0],np); document.write(ar_sole[0]+"<br>"); document.write(ar_pianeta[0]);
Per la data calcolata dal listato, per l'opposizione del 2014, la differenza in AR tra Sole e Marte, non è esattamente di 12h (180°). ma c'è uno scarto di circa 1°.
Questo è dovuto al fatto, che l'algoritmo, attraverso un ciclo di iterazioni, tende a far convergere, le longitudini eliocentriche della Terra e di Marte.
Di conseguenza, considerando che, l'orbita di Marte ha un'inclinazione di circa 1.85° sul piano dell'eclittica, e che non viene considerata nel calcolo; ci troveremo ad avere queste discrepanze, più o meno marcate, se l'evento si verifica lontano dai nodi.
Volendo, è possibile aumentare la qualità del calcolo, applicando un ciclo iterativo alle ascensioni rette, del Sole e del pianeta, utilizzando la data
calcolata col metodo precedente, come prima approssimazione, e in modo tale da eliminare anche queste differenze.
Non dovrebbe essere molto complicato, ma personalmente, mi accontento del grado di precisione raggiungibile col metodo del listato.
Importante: Consultate la pagina [ Note ], per le specifiche sui parametri e le variabili (Array) delle funzioni.
Riferimenti bibliografici:
JEAN MEEUS - Astronomia con il computer. ( Hoepli-1990 ) - PETER DUFFETT-SMITH -Astronomia pratica. ( Sansoni Studio 1981 )
FRANCESCO ZAGAR -Astronomia sferica e teorica ( Zanichelli 1988 )
Copyright ©2009 - Salvatore Ruiu
Tutti i contenuti del sito sono protetti dal diritto d'autore.
All Rights Reserved.
Questo sito è Online da dicembre 2009 || Ultima modifica: 10-Dicembre 2009 || Questa pagina web rispetta le direttive del W3C | CSS 2.1 | XHTML 1.0