Newsgroup: it.scienza.astronomia
Titolo: Vi prego di verificare la correttezza delle mie formule

Sto scrivendo questa libreria di funzioni utilizzando
le informazioni trovate qua è la con google.
Vi prego di verificare se le formule e le annotazioni sono
corrette.
Questo listato, scritto in purebasic, lo rendo di dominio pubblico
e quindi potete disporne come credete.
#pi  = 3.14592654
#pix2 = 6.28318531
#pi_2 = 1.57079633
;Conversione da gradi a radianti
Procedure.f grd_rad(deg)
   ProcedureReturn  deg * 0.01745329
EndProcedure
;Conversione da radianti a gradi
Procedure.f rad_grd(rad)
   ProcedureReturn rad * 57.2957795
EndProcedure
;calcola l'arcotangente nel giusto quadrante
Procedure arg(y.f, x.f)
   If x < 0
       ProcedureReturn ATan(y/x) + #pi
   EndIf
   If x > 0 And  y > 0
       ProcedureReturn ATan(y/x)
   EndIf
   If x > 0 And  y < 0
       ProcedureReturn #pix2 + ATan(y/x)
   EndIf
   ;x = 0
   If y > 0
       ProcedureReturn #pi_2
   EndIf
   If y < 0
       ProcedureReturn 3 * #pi_2
   EndIf
   ProcedureReturn 0.0
EndProcedure
;Calcolo del Tempo Siderale Locale.
;Il giorno siderale  è dato dal passaggio di una stessa stella sullo
;stesso meridiano e corrisponde ad una rotazione completa del nostro 
pianeta
;sull'asse.
;Poiché il Sole, per via del moto della Terra lungo l'orbita, sembra 
muoversi
;relativamente alle stelle, il giorno siderale dura 3 minuti e 56 
secondi meno del giorno solare.
Procedure.f TSL(A.w, M.b, G.b, TU.f, lg.f)
;A = anno
;M = mese (1-12)
;G = giorno (1-31).
;TU = tempo universale = ora di Greenwich (GMT)
;     Le ore 12:00 TU si hanno quando il Sole medio è sul meridiano 0.
;     Il sole medio è un sole ipotetico, che descrive l'orbita 
sull'equatore celeste ed
;     i cui passaggi per i punti equinoziali corrispondano con quelli 
del Sole reale.
;     1 ora di TU corrisponde a 15 gradi.
;     Per passare all'ora italiana basta quindi aggiungere 1 ora al TU
;     ( 2 quando è in vigore l'ora legale ).
;lg = longtudine (in gradi) della propria posizione + se Est  e - se Ovest.
   Protected ng.f
   ;numero  di giorni dalla  mezzanotte del 1° gennaio 2000
   ;00:00 1/1/2000 = 2451544,5 giorni dalla fondazione del calendario 
giuliano (4/10/1582)
   ng = 367*A - Int(7*(A + Int((M+9)/12)))/4 + Int(275*M/9) + G - 730530 
+ TU/24
   ;valore è in gradi
   ProcedureReturn 98.9818  +  0.98564735 * ng  +  TU * 15  +  lg
EndProcedure
;Conversione da coordinate equatoriali ad azimut.
Procedure.f azimuth(TSL.f, lt.f, AR.f, Dc.f)
;TSL = tempo siderale locale (in gradi)
;lt latitudine (in gradi) della propria posizione + se Nord e - se Sud,
;AR è l'ascension retta espressa in ore (1 ora di AR corrisponde a 15 gradi)
;Dc è la declinazione in gradi da -90 (=sud)  a +90 (=nord)
   Protected dn.f, TSL.f, AO.f, lat.f, Dec.f
   ;Angolo Orario (in radianti)
   AO  = grd_rad(TSL - AR * 15)
   lat = grd_rad(lt)
   Dec = grd_rad(Dc)
   ;L'azimuth è 0 gradi a nord e 90 gradi ad est
   ProcedureReturn 180 + rad_grd( arg(Sin(AO), Cos(AO) * Sin(lat) - 
Tan(Dec) * Cos(Lat)) )
EndProcedure
;Conversione da coordinate equatoriali ad altezza.
Procedure.f altezza(TSL.f, lt.f, AR.f, Dc.f)
;TSL = tempo siderale locale (in gradi)
;lt latitudine (in gradi) della propria posizione + se Nord e - se Sud,
;AR è l'ascension retta espressa in ore (1 ora di AR corrisponde a 15 gradi)
;Dc è la declinazione in gradi da -90 (=sud)  a +90 (=nord)
   Protected dn.f, TSL.f, AO.f, lat.f, Dec.f
   ;Angolo Orario (in radianti)
   AO  = grd_rad(TSL - AR * 15)
   lat = grd_rad(lt)
   Dec = grd_rad(Dc)
;Altezza (in gradi)
   ProcedureReturn rad_grd(ASin(Sin(lat) * Sin(Dec)  +  Cos(lat) * 
Cos(Dec) * Cos(AO)))
EndProcedure
;Azimuth di levata di un astro.
Procedure.f Az_levata(AR.f,Dc.f,TSL0.f,lt.f)
;AR è l'ascension retta espressa in ore (1 ora di AR corrisponde a 15 gradi)
;Dc è la declinazione in gradi da -90 (=sud)  a +90 (=nord)
;TSL0 = tempo siderale locale alle ore 0 TU (gradi)
;lt = latitudine dell' osservatore (gradi)
   Protected OM.f,lat.f,Dec.f
   ;Ora al meridiano (gradi):
   OM  =  AR * 15 - TSL0
   lat = grd_rad(lt) ;conversione in radianti
   Dec = grd_rad(Dc) ;conversione in radianti
   ;Angolo orario (radianti):
   AO = ACos(-1 * Tan(lat) * Tan(Dec))
   ;gradi
   ProcedureReturn OM - rad_grd(AO)
EndProcedure
;Azimuth di tramonto di un astro.
Procedure.f Az_tramonto(AR.f,Dc.f,TSL0.f,lt.f)
;AR è l'ascension retta espressa in ore (1 ora di AR corrisponde a 15 gradi)
;Dc è la declinazione in gradi da -90 (=sud)  a +90 (=nord)
;TSL0 = tempo siderale locale alle ore 0 TU (gradi)
;lt = latitudine dell' osservatore (gradi)
   Protected OM.f,lat.f,Dec.f
   ;Ora al meridiano (gradi):
   OM  =  AR * 15 - TSL0
   lat = grd_rad(lt) ;conversione in radianti
   Dec = grd_rad(Dc) ;conversione in radianti
   ;Angolo orario (radianti):
   AO = ACos(-1 * Tan(lat) * Tan(Dec))
   ;gradi
   ProcedureReturn OM + rad_grd(AO)
EndProcedure
-- 
Voltaire:
"E'pericoloso avere ragione quando le autorita' costituite hanno torto".


La questione dell'azimut è controversa: in Geodesia e Navigazione è
come tu scrivi: in Astronomia taluni la misurano da Sud... basta
specificare la convenzione e non si letica più!!


Speriamo che altri apprezzino, se non il listato, almeno l'intrinseca
tua volontà e la voglia di fare con le proprie mani.
Ciao, saluti e buon lavoro.

 tua volontà e la voglia di fare con le proprie mani.
Grazie per l' augurio.
In soffitta ho un vecchio telescopio rifrattore altozimutale da 60mm di 
apertura.
Il listato è nato dall' idea di motorizzarlo usando un interfaccia a 
relais collegata alla porta parallela.
Bisogna vedere se poi riesco a creare una meccanica adatta allo scopo.


 "E'pericoloso avere ragione quando le autorita' costituite hanno torto".
Saluti.

 TAI.
Un ultima domanda:
Tempo Dinamico Terrestre = TAI + 32,184''
Ma che relazione c'è fra il TDT ed il TU ?
-- 


 Ma che relazione c'è fra il TDT ed il TU ?
http://tycho.usno.navy.mil/systime.html
http://www.phys.uu.nl/~vgent/astro/deltatime.htm
Cristiano

 "E'pericoloso avere ragione quando le autorita' costituite hanno torto".
Ciao e non ve la prendete.

Correggeta la svista. Dovete leggere:
ET = padre di TDT
TDT = padre di TT
la genealogia non è il mio forte...

 signori, i tempi belli..
Dove trovo codeste normative ?
Una ricerca nei siti dei suddetti enti si č rivelata una infrottuosa 
navigazione.
Ormai ci ho preso gusto e volevo fare un addendum alla mia libreria
Per il calcolo pre 1620 ho addottato la formula del sito JPL Horizons


 "E'pericoloso avere ragione quando le autorita' costituite hanno torto".
Saluti e sangue freddo.