Attenzione! Javascript è disabilitato
Raccolta di funzioni per il calcolo di una effemeridi per il Sole.
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>
<script language="JavaScript" type="text/javascript"> <!-- // La posizione del Sole in questo istante. // Le coordinate equatoriali sono riferite all'Equinozio medio della data. var njd=calcola_jd(); // (1) Calcola il G.G. riferito al tempo di Greenwich. var effemeridi=pos_sole(njd); // Calcola la posizione del Sole. // La funzione restituisce 7 variabili - utilizzate solo quelle che ritenete importanti. // Vedi la lista nelle note per icalcoli. //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("Distanza :"+effemeridi[4]+"<br>"); //Distanza in U.A. document.write("Diametro :"+effemeridi[5]+"<br>"); //Diametro apparente. //--> </script>
Per calcolare una effemeridi per l'ora 0(zero) T.U. di oggi, utilizzate var njd=calcola_jdUT0(); in sostituzione della riga (1).
Prima di pubblicare i risultati, è necessario formattare i dati appena calcolati, utilizzando alcune funzioni specifiche.
Sostituite le ultime 4 righe del precedente listato con queste.
//Formatta e stampa i risultati. document.write("A. R. geocentrica:"+sc_oresd(effemeridi[0])+"<br>"); //AR. in hh:mm:ss.decimali document.write(" Dec. geocentrica:"+sc_angolo_sd(effemeridi[1])+"<br>"); //DE. in ° ' " document.write("Distanza :"+effemeridi[4].toFixed(6)+"<br>"); //Distanza in U.A. con 6 decimali document.write("Diametro :"+effemeridi[5]+"<br>"); //Diametro apparente.
Per ulteriori chiarimenti sulla formattazione dei risultati, consultate la pagina Formattazione nelle Effemeridi dei pianeti.
<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 Greenwih. 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_sole(njd); // Calcola la posizione del Sole. //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("Distanza :"+effemeridi[4]+"<br>"); //Distanza in U.A. document.write("Diametro :"+effemeridi[5]+"<br>"); //Diametro apparente. //--> </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_sole(njd); // Calcola la posizione del Sole. var AR=effemeridi[0]; // Ascensione retta in ore decimali. var DE=effemeridi[1]; // Declinazione in gradi sessadecimali. 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 sessadecimali document.write("A.R. geocentrica apparente:"+AR_app+"<br>"); //in ore decimali document.write("Dec. geocentrica apparente:"+DE_app+"<br>"); //in gradi sessadecimali //--> </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.25; // Latitudine (può avere decimali). var LON=12.36; // 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_sole(njd); // Calcola la posizione del Sole. 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[6]; // La parallase del sole 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 della posizione del Sole 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 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.32; // Latitudine (può avere decimali). var LON=12.06; // 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_sole(njd); // Calcola la posizione del Sole. var AR=effemeridi[0]; // ascensione retta in ore decimali. var DE=effemeridi[1]; // declinazione in gradi sessadecimali. var P=effemeridi[6]; // parallase del pianeta in gradi. var coord_top=pos_app_pa(njd,AR,DE,P,LAT,LON,ALT);// Coord. Equat. 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 sessadecimali. //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>
Listato completo, per calcolare una Effemeride per il Sole, 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>Distanza in UA:</td>"); document.write(" <td>Diametro apparente.:</td>"); document.write(" <td>Parallasse:</td>"); document.write(" <td>Costellazione:</td>"); document.write(" </tr>"); for (b=0; b<numero_iterazioni; b=b+STEP){ njd=njd+STEP; effemeridi=pos_sole(njd); // Calcola una effemeridi per il Sole. var AR=effemeridi[0]; // ascensione retta in ore decimali. var DE=effemeridi[1]; // declinazione in gradi sessadecimali. var P=effemeridi[6]; // parallasse del Sole 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_oresd(coord_top[0]); // AR apparente topocentrica in hh mm ss. var DE_top= sc_angolo_sd(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[4].toFixed(6)+"</td>"); document.write(" <td>"+effemeridi[5]+"</td>"); document.write(" <td>"+(effemeridi[6]*3600).toFixed(2)+"</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_sole(njd): // **** Elenco dei dati presenti nell'array effemeridi[0,1,2,...6] **** //effemeridi[0]; Ascensione Retta geocentrica - equinozio della data. //effemeridi[1]; Declinazione geocentrica - equinozio della data. //effemeridi[2]; Longitudine in gradi sessadecimali. //effemeridi[3]; Anomalia media. //effemeridi[4]; Distanza dalla Terra in U.A. //effemeridi[5]; Diametro apparente in secondi d'arco. //effemeridi[6]; Parallasse diurna in gradi.
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à.
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