Attenzione! Javascript è disabilitato

Il Cielo Delle Baronie

Benvenuto in questo sito, dedicato alle bellezze del cielo della Sardegna.

Versione inglese

ASTROJS - Esempi di codice: Le Coordinate Azimutali di un astro.

Elenco di listati realizzati per il calcolo delle coordinate azimutali (C.A.) di un astro.
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...

Le coordinate azimutali vere di un astro in questo istante.

In questi due listati non si tiene conto della rifrazione atmosferica e dell'altitudine del luogo di osservazione, ma viene applicata una semplice trasformazione di coordinate Equatoriali -> Azimutali.

<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 LAT=42.53;// Latitudine della località in gradi sessadecimali.
    var LON=12.21;// Longitudine della località in gradi sessadecimali.(negativa a W di Greenwich)

    var    njd=calcola_jd();  // Calcola il G.G. riferito al tempo di Greenwich in questo istante.

    var coo_az=trasf_equa_azim(njd,AR,DE,LON,LAT);    // (1)Array delle coordinate azimutali.

    var      h= coo_az[0];                   // Altezza vera dell'astro.
    var azimut= coo_az[1];                   // Azimut dell'astro.

    document.write("Altezza h: "+h+"<br>");   // scrive il risultato.
    document.write("Azimut az: "+azimut);     // scrive il risultato.

    //-->

</script>

Le coordinate azimutali vere di un astro per qualsiasi data:

<script language="JavaScript" type="text/javascript">
    //<!--

    //Calcolo delle coordinate azimutali per la stella Sirio per la data.

    var dd=23;                     // giorno.
    var mm=6;                      // mese.
    var yy=2011;                   // anno.
    var hh=10;                     // ora.
    var mi=20;                     // minuti.
    var se=30.25;                  // secondi (possono avere decimali).

    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 LAT=42.53; // Latitudine della località in gradi sessadecimali.
    var LON=12.21; // Longitudine della località in gradi sessadecimali.(negativa a W di Greenwich)

    var    njd=calcola_jddata(dd,mm,yy,hh,mi,se);   // G.G. della data.

    var coo_az=trasf_equa_azim(njd,AR,DE,LON,LAT);  // (1)Array delle coordinate azimutali.

    document.write("Altezza h:"+coo_az[0]+"<br>");  // scrive il risultato.
    document.write("Azimut az:"+coo_az[1]+"<br>");  // scrive il risultato.

     // formattare i risultati con la funzione: sc_angolo(...)

    document.write("Altezza h: "+sc_angolo(coo_az[0])+"<br>");  // scrive il risultato.
    document.write("Azimut az: "+sc_angolo(coo_az[1]));         // scrive il risultato.


    //-->

</script>

La funzione: sc_angolo(...), formatta i risultati in gradi | minuti | secondi - (° | ' | " )

Gli effetti della rifrazione atmosferica sull'altezza dell'astro:

Gli strati dell'atmosfera provocano un aumento dell'altezza apparente dell'astro e di conseguenza una diminuzione del suo angolo zenitale.
Per calcolare l'entità di questo effetto sull'altezza dell'astro, utilizzate la funzione: rifraz(z). La funzione restituisce l'angolo zenitale apparente dell'astro.
Conosciuto l'angolo zenitale apparente è possibile calcolare l'altezza apparente utilizzando la formula:
altezza_apparente=90-zenit_apparente.
Da applicare ad uno dei precedenti listati, dopo aver calcolato l'altezza vera dell'astro.

     //Rifrazione atmosferica: formula di Bennett.

    var h=coo_az[0]; // altezza vera dell'astro in gradi.
    var z=90-h;      // calcola l'angolo zenitale vero dell'astro in gradi.

    var z_app=rifraz(z); // calcola l'angolo zenitale apparente in gradi.

    var h_app=90-z_app;         // altezza apparente dell'astro in gradi sessadecimali.

    document.write(h_app);      //  stampa il risultato.

La rifrazione atmosferica non ha effetti sull'azimut.

Altitudine dell'osservatore e l'altezza dell'astro.

Anche l'altitudine dell'osservatore influenza l'altezza dell'astro rispetto al suo orizzonte locale.
Un osservatore che si trovi a un'altitudine di 1000 metri, vedrà sorgere l'astro, prima di un'altro situato al livello del mare.

    //l'altezza dell'astro in funzione dell'altitudine.

    var ALT=350;    // altitudine in metri sul livello del mare, della località.

    var delta_h=corr_alt(ALT); // entità della correzione in gradi sessadecimali.

Questa correzione non ha effetti sull'azimut e sull'angolo zenitale.
Vedi il listato completo nella prossima pagina...

Coordinate azimutali apparenti per qualsiasi data:

Listato completo per il calcolo delle coordinate azimutali apparenti di un astro; dove sono previsti gli effetti dovuti all'altitudine dell'osservatore e alla rifrazione atmosferica.

<script language="JavaScript" type="text/javascript">
    //<!--

    //calcola il G.G. per la data indicata nelle variabili.

    var dd=23;                     // giorno.
    var mm=6;                      // mese.
    var yy=2011;                   // anno.
    var hh=10;                     // ora.
    var mi=20;                     // minuti.
    var se=30.25;                  // secondi (possono avere decimali).

    var  AR=  6.7524;  // AR. in ore decimali dell'astro.
    var  DE=-16.7161;  // DE. in gradi sessadecimali dell'astro.

 // per AR e DE utilizzate la funzione: hams_dec(ah,m,s) 
 // quando non sono in formato decimale (vedi 1° listato)

    var LAT=42.53;     // Latitudine in gradi sessadecimali.
    var LON=12.21;     // Longitudine in gradi sessadecimali. (negativa a W di Greenwich)
    var ALT=350;       // Altitudine in metri s.l.m. della località

    var    njd=calcola_jddata(dd,mm,yy,hh,mi,se);   // G.G. della data.

    var coo_az=trasf_equa_azim(njd,AR,DE,LON,LAT);  // (1)Array delle coordinate azimutali.

    //Rifrazione atmosferica -inizio.

    var h=coo_az[0];      // altezza vera dell'astro in gradi.
    var z=90-h;           // calcola l'angolo zenitale vero dell'astro, in gradi.
    var z_app=rifraz(z);  // calcola l'angolo zenitale apparente, in gradi.
    var h_app=90-z_app;   // altezza apparente dell'astro.

    //Rifrazione atmosferica -fine.

        h_app=h_app+corr_alt(ALT); // altezza apparente definitiva (rifrazione+altitudine).

    // formattare i risultati con la funzione: sc_angolo(...)

    document.write("Altezza vera h:"+sc_angolo(coo_az[0])+"<br>");  // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");  // scrive il risultato.

    document.write("Altezza apparente h:"+sc_angolo(h_app)+"<br>");  // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");   // scrive il risultato.


    //-->

</script>

Calcolo delle coordinate azimutali apparenti del Sole per la data:

<script language="JavaScript" type="text/javascript">
    //<!--

    //calcola il G.G. per la data indicata nelle variabili.

    var dd=23;         // giorno.
    var mm=6;          // mese.
    var yy=2011;       // anno.
    var hh=10;         // ora.
    var mi=20;         // minuti.
    var se=30.25;      // secondi (possono avere decimali).

    var LAT=42.53;     // Latitudine in gradi sessadecimali.
    var LON=12.21;     // Longitudine in gradi sessadecimali. (negativa a W di Greenwich)
    var ALT=350;       // Altitudine in metri s.l.m. della località

    var      njd=calcola_jddata(dd,mm,yy,hh,mi,se); // G.G. della data.
    var coo_sole=pos_sole(njd);    //Calcola la posizione del Sole per la data.

    var AR=coo_sole[0];      //Ascensione retta in ore decimali.
    var DE=coo_sole[1];      //Declinazione in gradi sessadecimali.

    var coo_az=trasf_equa_azim(njd,AR,DE,LON,LAT);  // (1)Array delle coordinate azimutali.

    //Rifrazione atmosferica -inizio.

    var h=coo_az[0];      // altezza vera dell'astro in gradi.
    var z=90-h;           // calcola l'angolo zenitale vero dell'astro, in gradi.
    var z_app=rifraz(z);  // calcola l'angolo zenitale apparente, in gradi.
    var h_app=90-z_app;   // altezza apparente dell'astro.

    //Rifrazione atmosferica -fine.

        h_app=h_app+corr_alt(ALT); // altezza apparente definitiva (rifrazione+altitudine).

    // formattare i risultati con la funzione: sc_angolo(...)

    document.write("Altezza vera h:"+sc_angolo(coo_az[0])+"<br>");  // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");  // scrive il risultato.

    document.write("Altezza apparente h:"+sc_angolo(h_app)+"<br>");  // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");   // scrive il risultato.


    //-->

</script>

Le coordinate azimutali del Sole in questo istante:

<script language="JavaScript" type="text/javascript">
    //<!--

    var LAT=42.53;     // Latitudine in gradi sessadecimali.
    var LON=12.21;     // Longitudine in gradi sessadecimali. (negativa a W di Greenwich)
    var ALT=350;       // Altitudine in metri s.l.m. della località

    var      njd=calcola_jd();  // G.G. in questo istante.
    var coo_sole=pos_sole(njd); //Calcola la posizione del Sole in questo istante.

    var AR=coo_sole[0];      //Ascensione retta.
    var DE=coo_sole[1];      //Declinazione.

    var coo_az=trasf_equa_azim(njd,AR,DE,LON,LAT);  // (1)Array delle coordinate azimutali.

    //Rifrazione atmosferica -inizio.

    var h=coo_az[0];      // altezza vera dell'astro in gradi.
    var z=90-h;           // calcola l'angolo zenitale vero dell'astro, in gradi.
    var z_app=rifraz(z);  // calcola l'angolo zenitale apparente, in gradi.
    var h_app=90-z_app;   // altezza apparente dell'astro.

    //Rifrazione atmosferica -fine.

        h_app=h_app+corr_alt(ALT); // altezza apparente definitiva (rifrazione+altitudine).

    // formattare i risultati con la funzione: sc_angolo(...)

    document.write("Altezza vera h:"+sc_angolo(coo_az[0])+"<br>");  // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");  // scrive il risultato.

    document.write("Altezza apparente h:"+sc_angolo(h_app)+"<br>");  // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");   // scrive il risultato.


    //-->

</script>

Calcolo delle coordinate azimutali apparenti della Luna in questo istante:

Per il Sole non abbiamo considerato l'effetto dovuto alla parallasse (8" d'arco), ma per la Luna non possiamo trascurarlo.
Per il nostro satellite naturale il valore della parallasse può arrivare a 1° ( che corrisponde al doppio del suo diametro apparente), di conseguenza dobbiamo applicare una correzione, per poter calcolare delle coordinate azimutali precise.
La funzione: pos_app_pa(njd,AR,DE,PA,LAT,LON,ALT) calcola le coordinate topocentriche apparenti della Luna, e può essere applicata anche per il Sole e i pianeti.

<script language="JavaScript" type="text/javascript">
    //<!--

    var LAT=42.53;  // Latitudine della località in gradi sessadecimali.
    var LON=12.21;  // Longitudine della località in gradi sessadecimali.(negativa a W di Greenwich)
    var ALT=350;    // Altitudine in metri s.l.m. della località

    var      njd=calcola_jd();  // G.G. in questo istante.
    var coo_luna=pos_luna(njd); //Calcola la posizione della Luna in questo istante.

    var AR=coo_luna[0];    //Ascensione retta.
    var DE=coo_luna[1];    //Declinazione.
    var PA=coo_luna[5];    //Il valore della parallasse lunare in questo istante.

    var coo_app=pos_app_pa(njd,AR,DE,PA,LAT,LON,ALT);  //coordinate apparenti e parallasse.

    var ARp=coo_app[0];    //Ascensione retta topocentrica apparente.
    var DEp=coo_app[1];    //Declinazione topocentrica apparente.

    var coo_az=trasf_equa_azim(njd,ARp,DEp,LON,LAT);  // (1)Array delle coordinate azimutali.

    //Rifrazione atmosferica -inizio.

    var h=coo_az[0];      // altezza vera dell'astro in gradi.
    var z=90-h;           // calcola l'angolo zenitale vero dell'astro, in gradi.
    var z_app=rifraz(z);  // calcola l'angolo zenitale apparente, in gradi.
    var h_app=90-z_app;   // altezza apparente dell'astro.

    //Rifrazione atmosferica -fine.

        h_app=h_app+corr_alt(ALT); // altezza apparente definitiva (rifrazione+altitudine).

    // formattare i risultati con la funzione: sc_angolo(...)

    document.write("Altezza vera h:"+sc_angolo(coo_az[0])+"<br>");  // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");  // scrive il risultato.

    document.write("Altezza apparente h:"+sc_angolo(h_app)+"<br>");  // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");   // scrive il risultato.


    //-->

</script>

Per calcolare le coordinate azimutali per altre date, sostituite quella parte di listato che calcola il G.G. in questo istante (vedi listati precedenti).

Calcolo delle coordinate azimutali di un pianeta in questo istante:

Calcoleremo le coordiante azimutali apparenti del pianeta Marte in questo istante: senza tener conto della parallasse.
Per gli altri pianeti il listato è identico, basta sostituire il valore della variabile np, con quello specifico del pianeta (vedi note).

<script language="JavaScript" type="text/javascript">
    //<!--

    var LAT=42.53;     // Latitudine in gradi sessadecimali.
    var LON=12.21;     // Longitudine in gradi sessadecimali. (negativa a W di Greenwich)
    var ALT=350;       // Altitudine in metri s.l.m. della località
    var  np=3;         // np=3 per il pianeta Marte.

    var      njd=calcola_jd();  // G.G. in questo istante.
    var coo_pianeta=pos_pianeti(njd,np); //Calcola la posizione di Marte in questo istante.

    var AR=coo_pianeta[0];    //Ascensione retta.
    var DE=coo_pianeta[1];    //Declinazione.

    var coo_az=trasf_equa_azim(njd,AR,DE,LON,LAT);  // (1)Array delle coordinate azimutali.

    //Rifrazione atmosferica -inizio.

    var h=coo_az[0];      // altezza vera dell'astro in gradi.
    var z=90-h;           // calcola l'angolo zenitale vero dell'astro, in gradi.
    var z_app=rifraz(z);  // calcola l'angolo zenitale apparente, in gradi.
    var h_app=90-z_app;   // altezza apparente dell'astro.

    //Rifrazione atmosferica -fine.

        h_app=h_app+corr_alt(ALT); // altezza apparente definitiva (rifrazione+altitudine).

    // formattare i risultati con la funzione: sc_angolo(...)

    document.write("Altezza vera h:"+sc_angolo(coo_az[0])+"<br>");  // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");  // scrive il risultato.

    document.write("Altezza apparente h:"+sc_angolo(h_app)+"<br>"); // scrive il risultato.
    document.write("Azimut vero az:"+sc_angolo(coo_az[1])+"<br>");  // scrive il risultato.


    //-->

</script>

Anche qui potete calcolare le coordinate azimutali del pianeta per altre date, basta sostituire la funzione del G.G.

Elenco dei parametri e degli Array:

In questa pagina sono elencate le variabili parametro da utilizzare nei calcoli e l'elenco completo dei valori restituiti dalle funzioni utilizzate.
Tutti gli elenchi, sono stati formattati in modo tale da poter essere inseriti all'interno del vostro listato come note di Javascript.
Inserendo uno dei listati precedenti all'interno di una funzione da richiamare con setInterval("nome_funzione()",1000); sarà possibile aggiornare in tempo reale la posizione dell'astro sul nostro orizzonte.

1) I Valori che può assumere la variabile parametro np nella funzione pos_pianeti(njd,np):

// np=0 Mercurio, np=1 Venere, np=3 Marte, np=4 Giove, np=5 Saturno, np=6 Urano, np=7 Nettuno.

2) I valori restituiti dalla funzione pos_pianeti(njd,np):

    // **** Elenco dei dati presenti nell'array effemeridi[0,1,2,...11] ****

    //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 eliocentrica vera della Terra.
    //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.
3) 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.
4) 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..

Apri Menu Scripts: >>

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