Attenzione! Javascript è disabilitato
Listati realizzati per il calcolo del Sorgere, Transito e Tramonto (STT) di un astro, compresi gli azimut.
Tutti gli algoritmi tengono conto della rifrazione atmosferica e dell'altitudine del osservatore.
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>
Calcola il sorgere, transito e tramonto di un astro in questo istante, compresi gli azimut del sorgere e del tramontare.
I tempi sono espressi in Tempo locale, compresa l'ora legale quando è in vigore.
Gli azimut del sorgere e del tramontare e i tempi, sono riferiti alla località indicata nelle coordinate geografiche.
Come esempio è stata utilizzata la stella Sirio.
<script language="JavaScript" type="text/javascript"> <!-- // coordinate equatoriali della stella Sirio. // AR: 6h 45m 8.917s. // DE: -16° 42′ 58.017″ var AR=hams_dec(6,45,8.917) ; // AR. in ore decimali. var DE=hams_dec(-16,42,58.017); // DE. in gradi sessadecimali. var LON=12.255; // LON: longitudine negativa W, positiva per E. var LAT=40.526; // LAT: latitudine della località. Negativa per l'emisfero sud var ALT=125; // ALT: altitudine in metri sul livello del mare (decimali non necessari) var RAG=0; // RAG: dimensioni apparenti in gradi dell'astro. // Questo valore è uguale a 0.25 gradi solo per la Luna e il Sole. var dati_ast=ST_ASTRO(AR,DE,LON,LAT,ALT,RAG); // I tempi in T.U. e gli azimut. // Trasformazione degli Istanti, da T.U. a Tempo Locale (compresa l'ora legale). var t_locale=-fuso_loc(); //calcola le ore da aggiungere al T.U. per avere il tempo locale. // verifica se il tempo locale ricade all'interno dell'intervallo 0-24 var sorge= ore_24(dati_ast[2]+t_locale); // verifica intervallo 0-24 var transita= ore_24(dati_ast[3]+t_locale); // verifica intervallo 0-24 var tramonta= ore_24(dati_ast[4]+t_locale); // verifica intervallo 0-24 // Recupero dei dati dall'array dati_ast[] e formattazione. var azimut_s=sc_angolo_gm(dati_ast[0],1); // Azimut del sorgere con 1 decimali. var azimut_t=sc_angolo_gm(dati_ast[1],1); // Azimut del tramontare con 1 decimali. var sorge=sc_ore_hm(sorge); // Sorge in hh|mm. var transita=sc_ore_hm(transita); // Transita in hh|mm. var tramonta=sc_ore_hm(tramonta); // Tramonta in hh|mm. document.write("Azimut s:"+azimut_s+"<br>"); // scrive il risultato in ore decimali. document.write("Azimut t:"+azimut_t+"<br>"); // scrive il risultato in ore decimali. document.write("Sorge:"+sorge+"<br>"); // scrive il risultato in ore decimali. document.write("Transita:"+transita+"<br>"); // scrive il risultato in ore decimali. document.write("Tramonta:"+tramonta+"<br>"); // scrive il risultato in ore decimali. //--> </script>
Dopo aver aggiunto al T.U. le ore per avere il Tempo locale, la funzione ore_24(tempo locale) verificherà se l'istante ricade all'interno
dell'intervallo 0-24, e applicherà una correzione se necessario.
Infatti può capitare che un astro tramonti alle 23 T.U., applicando una correzione di 2 ore, avremmo che, per il nostro tempo locale, quell'astro tramonterà alle 25.
Con la funzione ore_24(25) l'istante diventa: ore 1.
<script language="JavaScript" type="text/javascript"> <!-- // I tempi sono riferiti a Greenwich. // Gli azimut sono riferiti alla località indicata nelle coordinate geografiche. // Inserire le variabili. // L'ascensione retta e la declinazione, sono già in formato decimale. var AR= 15.256; // Ascensione Retta in ore decimali. var DE=-25.365; // Declinazione in gradi sessadecimali. var LON=12.255; // LON: longitudine negativa W, positiva per E. var LAT=40.526; // LAT: latitudine della località. Negativa per l'emisfero sud var ALT=125; // ALT: altitudine in metri sul livello del mare (decimali non necessari) var RAG=0; // RAG: dimensioni apparenti in gradi dell'astro. // Questo valore è uguale a 0.25 gradi solo per la Luna e il Sole. var dd=23; // giorno. var mm=6; // mese. var yy=2011; // anno. var hh=0; // ora: sempre=0. var mi=0; // minuti: sempre=0 var se=0; // secondi: sempre=0 var njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var dati_ast=ST_ASTRO_DATA(njd,AR,DE,LON,LAT,ALT,RAG); // I tempi e gli azimut. // Trasformazione degli Istanti, da T.U. a Tempo Locale. var t_locale=hh_loc(1,njd); //calcola le ore da aggiungere al T.U. per avere il Tempo Locale. var sorge= ore_24(dati_ast[2]+t_locale); var transita= ore_24(dati_ast[3]+t_locale); var tramonta= ore_24(dati_ast[4]+t_locale); // Recupero dei dati dall'array dati_ast[] e formattazione. var azimut_s=sc_angolo_gm(dati_ast[0],1); // Azimut del sorgere con 1 decimali. var azimut_t=sc_angolo_gm(dati_ast[1],1); // Azimut del tramontare con 1 decimali. var sorge=sc_ore_hm(dati_ast[2]); // Sorge in hh|mm. var transita=sc_ore_hm(dati_ast[3]); // Transita in hh|mm. var tramonta=sc_ore_hm(dati_ast[4]); // Tramonta in hh|mm. document.write("Azimut s:"+azimut_s+"<br>"); // scrive il risultato in ore decimali. document.write("Azimut t:"+azimut_t+"<br>"); // scrive il risultato in ore decimali. document.write("Sorge:"+sorge+"<br>"); // scrive il risultato in ore decimali. document.write("Transita:"+transita+"<br>"); // scrive il risultato in ore decimali. document.write("Tramonta:"+tramonta+"<br>"); // scrive il risultato in ore decimali. //--> </script>
In questo listato è stata sostituita la funzione fuso_loc() con hh_loc(1,njd), in quanto la prima, calcola la differenza del fuso orario e dell'ora legale, per questo istante; mentre la seconda è valida per qualsiasi data.
Per il Sole ho predisposto un algoritmo apposito, a causa del suo moto apparente non trascurabile (circa 1° al giorno).
L'algoritmo applica un ciclo di 5 iterazioni, in grado di calcolare i tre istanti STT. con sempre maggior precisione.
La funzioni restituisce i risultati solo dopo aver completato tutte e 5 le iterazioni.
Per il Sole non è stata prevista la correzione della parallasse, ma si tratta di soli 8" d'arco.
Gli istanti del sorgere e del tramontare sono riferiti al lembo superiore del disco solare.
<script language="JavaScript" type="text/javascript"> <!-- // I tempi sono riferiti a Greenwich. // Gli azimut sono riferiti alla località indicata nelle coordinate geografiche. // Inserire le variabili. var LON=12.255; // LON: longitudine negativa W, positiva per E. var LAT=40.526; // LAT: latitudine della località. Negativa per l'emisfero sud var ALT=125; // ALT: altitudine in metri sul livello del mare (decimali non necessari) var dd=2; // giorno. var mm=1; // mese. var yy=2012; // anno. var hh=0; // ora: sempre=0. var mi=0; // minuti: sempre=0 var se=0; // secondi: sempre=0 var njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var dati_ast=ST_SOLE(njd,LON,LAT,ALT); // I tempi e gli azimut. // Recupero dei dati dall'array dati_ast[] e formattazione. var azimut_s=sc_angolo_gm(dati_ast[0],1); // Azimut del sorgere con 1 decimali. var azimut_t=sc_angolo_gm(dati_ast[1],1); // Azimut del tramontare con 1 decimali. var sorge=sc_ore_hm(dati_ast[2]); // Sorge in hh|mm. var transita=sc_ore_hm(dati_ast[3]); // Transita in hh|mm. var tramonta=sc_ore_hm(dati_ast[4]); // Tramonta in hh|mm. document.write("Azimut s:"+azimut_s+"<br>"); // scrive il risultato in ore decimali. document.write("Azimut t:"+azimut_t+"<br>"); // scrive il risultato in ore decimali. document.write("Sorge:"+sorge+"<br>"); // scrive il risultato in ore decimali. document.write("Transita:"+transita+"<br>"); // scrive il risultato in ore decimali. document.write("Tramonta:"+tramonta+"<br>"); // scrive il risultato in ore decimali. //--> </script>
L'istante del transito del Sole corrisponde al mezzogiorno vero locale.
Anche per la Luna ho predisposto un algoritmo apposito, a causa del suo moto apparente ancora più veloce di quello del Sole (circa 13° al giorno).
L'algoritmo applica un ciclo di 10 iterazioni, in grado di calcolare i tre istanti STT. con sempre maggior precisione.
La funzioni restituisce i risultati solo dopo aver completato tutte e 10 le iterazioni.
Per la Luna non può essere trascurato l'effetto dovuto alla parallasse, di conseguenza è stata applicata la correzione alle coordinate equatoriali geocentriche,
prima di calcolare STT.
La funzione per il calcolo delle coordinate topocentriche apparenti della Luna è già implementata nella funzione ST_LUNA(...)
<script language="JavaScript" type="text/javascript"> <!-- // I tempi sono riferiti a Greenwich. // Gli azimut sono riferiti alla località indicata nelle coordinate geografiche. // Inserire le variabili. var LON=12.255; // LON: longitudine negativa W, positiva per E. var LAT=40.526; // LAT: latitudine della località. Negativa per l'emisfero sud var ALT=125; // ALT: altitudine in metri sul livello del mare (decimali non necessari) var dd=2; // giorno. var mm=1; // mese. var yy=2012; // anno. var hh=0; // ora: sempre=0. var mi=0; // minuti: sempre=0 var se=0; // secondi: sempre=0 var njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var dati_ast=ST_LUNA(njd,LON,LAT,ALT); // I tempi e gli azimut. // Recupero dei dati dall'array dati_ast[] e formattazione. var azimut_s=sc_angolo_gm(dati_ast[0],1); // Azimut del sorgere con 1 decimali. var azimut_t=sc_angolo_gm(dati_ast[1],1); // Azimut del tramontare con 1 decimali. var sorge=sc_ore_hm(dati_ast[2]); // Sorge in hh|mm. var transita=sc_ore_hm(dati_ast[3]); // Transita in hh|mm. var tramonta=sc_ore_hm(dati_ast[4]); // Tramonta in hh|mm. document.write("Azimut s:"+azimut_s+"<br>"); // scrive il risultato in ore decimali. document.write("Azimut t:"+azimut_t+"<br>"); // scrive il risultato in ore decimali. document.write("Sorge:"+sorge+"<br>"); // scrive il risultato in ore decimali. document.write("Transita:"+transita+"<br>"); // scrive il risultato in ore decimali. document.write("Tramonta:"+tramonta+"<br>"); // scrive il risultato in ore decimali. //--> </script>
Anche per i pianeti ho predisposto un algoritmo apposito, per non trascurare il loro moto proprio giornaliero. Non è prevista la correzione per la parallasse, in quanto per i pianeti è sempre dell'ordine dei secondi d'arco, quindi molto piccola.
<script language="JavaScript" type="text/javascript"> <!-- // I tempi sono riferiti a Greenwich. // Gli azimut sono riferiti alla località indicata nelle coordinate geografiche. // Inserire le variabili. var LON=12.255; // LON: longitudine negativa W, positiva per E. var LAT=40.526; // LAT: latitudine della località. Negativa per l'emisfero sud var ALT=125; // ALT: altitudine in metri sul livello del mare (decimali non necessari) var dd=2; // giorno. var mm=1; // mese. var yy=2012; // anno. var hh=0; // ora: sempre=0. var mi=0; // minuti: sempre=0 var se=0; // secondi: sempre=0 var np=4; // np=4 per il pianeta Giove var njd=calcola_jddata(dd,mm,yy,hh,mi,se); // calcola il G.G. della data. var dati_ast=ST_PIANETI(njd,np,LON,LAT,ALT); // I tempi e gli azimut. // Recupero dei dati dall'array dati_ast[] e formattazione. var azimut_s=sc_angolo_gm(dati_ast[0],1); // Azimut del sorgere con 1 decimali. var azimut_t=sc_angolo_gm(dati_ast[1],1); // Azimut del tramontare con 1 decimali. var sorge=sc_ore_hm(dati_ast[2]); // Sorge in hh|mm. var transita=sc_ore_hm(dati_ast[3]); // Transita in hh|mm. var tramonta=sc_ore_hm(dati_ast[4]); // Tramonta in hh|mm. document.write("Azimut s:"+azimut_s+"<br>"); // scrive il risultato in ore decimali. document.write("Azimut t:"+azimut_t+"<br>"); // scrive il risultato in ore decimali. document.write("Sorge:"+sorge+"<br>"); // scrive il risultato in ore decimali. document.write("Transita:"+transita+"<br>"); // scrive il risultato in ore decimali. document.write("Tramonta:"+tramonta+"<br>"); // scrive il risultato in ore decimali. //--> </script>
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