Attenzione! Javascript è disabilitato
Raccolta di funzioni per il calcolo di una effemeride per la Luna.
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"> <!-- // La posizione della Luna in questo istante. var njd=calcola_jd(); // (1) Calcola il G.G. riferito al tempo di Greenwich. var effemeridi=pos_luna(njd); // Calcola la pos. della Luna. // La funzione restituisce 8 variabili - utilizzate solo quelle che ritenete importanti. // Vedi la lista dei valori presenti nell'array effemeridi[0,1,...7] // nella pagina: Note per i calcoli. //Stampa i risultati. document.write("A. R. geocentrica:"+effemeridi[0]+"<br>"); //AR in ore decimali document.write(" Dec. geocentrica:"+effemeridi[1]+"<br>"); //DE in gradi sessadecimali document.write(" Fase attuale :"+effemeridi[3]+"<br>"); //Fase attuale document.write("Diametro :"+effemeridi[6]+"<br>"); //Diametro apparente. document.write("Distanza in Km :"+effemeridi[7]+"<br>"); //Distanza in Km. //--> </script>
Per poter calcolare una effemeridi per l'ora 0(zero) T.U. di oggi, utilizzate var njd=calcola_jdUT0(); in sostituzione della riga (1).
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 eq. 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 njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var effemeridi=pos_luna(njd); // Calcola una effemeridi per la Luna. //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[3]+"<br>"); //Fase attuale document.write("Diam. :"+effemeridi[6]+"<br>"); //Diametro apparente. document.write("Dist. :"+effemeridi[7]+"<br>"); //Dist. in Km. //--> </script>
<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 eq. 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 njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var effemeridi=pos_luna(njd); // Calcola una effemeridi per la Luna. 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 ore decimali. //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. apparente:"+AR_app+"<br>"); //in ore decimali document.write(" Dec. apparente:"+DE_app+"<br>"); //in gradi decimali //--> </script>
<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 eq. 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 Greenwih. 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 njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var effemeridi=pos_luna(njd); // Calcola una effemeridi per la Luna. 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[5]; // La parallase della Luna 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 decimali. //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>
Se avete intenzione di 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 di una effemeridi 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 eq. 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 Greenwih. 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 njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var effemeridi=pos_luna(njd); // Calcola una effemeridi per la Luna. var AR=effemeridi[0]; // ascensione retta in ore decimali. var DE=effemeridi[1]; // declinazione in gradi sessadecimali. var P=effemeridi[5]; // parallase della luna in gradi. 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:"+AR_top+"<br>"); //in ore decimali document.write(" Dec. topocentrica:"+DE_top+"<br>"); //in gradi decimali //--> </script>
Vedi la pagina: Effemeridi pianeti
Vedi la pagina: Effemeridi pianeti
Listato completo, per calcolare una Effemeride per la Luna, dal 1 Marzo al 31 Marzo 2012.
...La variabile (STEP=1), indica l'intervallo di tempo: in questo caso è stato indicato 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 effemeridi per il Sole.************ (inizio ) var njd1=calcola_jddata( 1,3,2012,0,0,0); // Data: 1 marzo 2012 var njd2=calcola_jddata(31,3,2012,0,0,0); // Data: 31 marzo 2012 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). // 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>Fase:</td>"); document.write(" <td>Elongazione.:</td>"); document.write(" <td>Parallasse:</td>"); document.write(" <td>Diametro apparente:</td>"); document.write(" <td>Distanza in Km.:</td>"); document.write(" <td>Costellazione:</td>"); document.write(" </tr>"); for (b=0; b<numero_iterazioni; b=b+STEP){ njd=njd+STEP; effemeridi=pos_luna(njd); // Calcola una effemeridi per la Luna. var AR=effemeridi[0]; // ascensione retta in ore decimali. var DE=effemeridi[1]; // declinazione in gradi sessadecimali. var P=effemeridi[5]; // parallasse della Luna in gradi (vedi tabella Note per i calcoli). 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=costell(AR); //Utilizzate AR come parametro. 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[3].toFixed(2)+"</td>"); document.write(" <td>"+sc_angolo(effemeridi[4])+"</td>"); document.write(" <td>"+(effemeridi[5]*3600).toFixed(2)+"</td>"); document.write(" <td>"+effemeridi[6]+"</td>"); document.write(" <td>"+effemeridi[7]+"</td>"); document.write(" <td>"+transit_cost+"</td>"); document.write(" </tr>"); } document.write(" </table>"); //--> </script>
In questa pagina sono indicate le variabili parametro da utilizzare nei calcoli e l'elenco completo dei valori restituiti dalle funzioni.
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_luna(njd): // **** Elenco dei dati presenti nell'array effemeridi[0,1,2,...7] **** //effemeridi[0]; Ascensione Retta geocentrica - equinozio della data. //effemeridi[1]; Declinazione geocentrica - equinozio della data. //effemeridi[2]; Longitudine geocentrica in gradi sessadecimali.. //effemeridi[3]; Fase. //effemeridi[4]; Elongazione in gradi sessadecimali. //effemeridi[5]; Parallasse della Luna in gradi. //effemeridi[6]; Diametro apparente in secondi d'arco. //effemeridi[7]; Distanza dalla Terra in Km..
2) 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à.
Per una descrizione dettagliata della procedura, vedi pagina dedicata al calcolo di posizione del Sole, nel capitolo: Esempio numerico
Per riportare le coordinate equatoriali della Luna, dall'equinozio della data, ad un'altro: Calcolo effemeridi pianeti: NOTE
Importante: Consultate la pagina [ Note per i calcoli ], 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