Page 2 sur 2

Re: heures lever coucher soleil

MessagePosté: Dimanche 20 Janvier 2008 00:18
de mikelima
Il y a plein de logiciels pour calculer la nuit aeronautique ainsi d'ailleurs que beaucoup de sources dispo pour en ecrire un soi-même.

mais j'en ai trouvé un plus sympathique que les autres : http://olravet.free.fr/SoleilAero.zip

Re: heures lever coucher soleil

MessagePosté: Dimanche 20 Janvier 2008 00:54
de Bob
mikelima a écrit:Il y a plein de logiciels pour calculer la nuit aeronautique ainsi d'ailleurs que beaucoup de sources dispo pour en ecrire un soi-même.

mais j'en ai trouvé un plus sympathique que les autres : http://olravet.free.fr/SoleilAero.zip


Le moins qu'on puisse dire, c'est qu'il ressemble beaucoup à celui cité par Thiev...

Re: heures lever coucher soleil

MessagePosté: Dimanche 20 Janvier 2008 21:14
de mikelima
Effectivement, c'est le même. Je n'avais pas cliqué sur le lien cité par Thiev.

pour répondre à la question plus basique de départ, de comment programmer, ci dessous le source de mon prog en Visual Basic

Private Sub Form_Load()
Dim lat As Double
Dim lon As Double
Dim lejour As Date
Dim cejour As String
Const pi As Double = 3.14159265358979

'par defaut, la date courante et les coordonnees de Carpentras
cejour = Format(Date, "dd/mm/yyyy")
datej.Text = Format(cejour, "dd/mm")
an.Text = Format(cejour, "yyyy")
latitude(1).Text = 1.4
latitude(2).Text = "N"
longitude(0).Text = 5
longitude(1).Text = 5.5
longitude(2).Text = "E"
Me.Show
Call pre_exec
End Sub


Private Sub pre_exec()
Dim d1 As Date, d2 As Date
Dim fractemps As Double, eqtemps As Double, declin As Double, ah As Double
Dim m As Double, c As Double, c1 As Double, l As Double, r As Double, r1 As Double
Const pi As Double = 3.14159265358979
latitude(2).Text = UCase(latitude(2).Text)
longitude(2).Text = UCase(longitude(2).Text)
lejour = datej.Text + "/" + an.Text

'conversion coordonnées en radians
lat = ((latitude(0).Text) + (latitude(1).Text) / 60) * pi / 180
lon = ((longitude(0).Text) + (longitude(1).Text) / 60) * pi / 180
If (longitude(2) = "E") Then lon = lon * -1
d1 = "31/03"    'calcul de date de l'heure d'été
j1 = DatePart("w", d1)
d1 = d1 - j1 + 1
d2 = "31/10"    'calcul de date de l'heure d'hiver
j2 = DatePart("w", d2)
d2 = d2 - j2 + 1
'fraction de l'année en radians
If (Year(lejour) Mod 4 = 0) Then annee = 366 Else annee = 365
fractemps = DatePart("y", lejour) / annee * 2 * pi

'équation du temps en minutes
m = 357.5291 * pi / 180 + 0.95560028 * pi / 180 * DatePart("y", lejour)
c = 1.9148 * pi / 180 * Sin(m) + 0.02 * pi / 180 * Sin(2 * m) + 0.0003 * pi / 180 * Sin(3 * m)
c1 = c * 180 / pi
l = 280.47 * pi / 180 + c + 0.98560028 * pi / 180 * DatePart("y", lejour)
r = -2.468 * pi / 180 * Sin(2 * l) + 0.053 * pi / 180 * Sin(4 * l) - 0.0014 * pi / 180 * Sin(6 * l)
r1 = r * 180 / pi
eqtemps = (c1 + r1) * 4

'déclinaison en radians (obliquité de l'ecliptique 23°27')
declin = Arcsinus(0.397949 * Sin(l))  

'angle horaire au lever et au coucher en degres
'6° sous l'horizon pour le calcul direct du jour et nuit aero
ah = (-0.105 - Sin(declin) * Sin(lat)) / (Cos(declin) * Cos(lat))
ah = Arcosinus(ah) * 180 / pi
'heures jour et nuit aeronautique en minutes
jour = 720 + 4 * ((lon * 180 / pi) - ah) + eqtemps
nuit = 720 + 4 * ((lon * 180 / pi) + ah) + eqtemps

'heures jour et nuit pour les heures en UTC en format hh:mm
jour = Format(TimeSerial(Int(jour / 60), jour - (60 * Int(jour / 60)), 0), "hh:mm")
nuit = Format(TimeSerial(Int(nuit / 60), nuit - (60 * Int(nuit / 60)), 0), "hh:mm")

'été ou hiver pour les heures en local
If (lejour < d1) Then
   jour1 = Format(DateAdd("h", 1, jour), "hh:mm")
   nuit1 = Format(DateAdd("h", 1, nuit), "hh:mm")
   periode = "Nous sommes en heure d'hiver"
    Else
    jour1 = Format(DateAdd("h", 2, jour), "hh:mm")
    nuit1 = Format(DateAdd("h", 2, nuit), "hh:mm")
    periode = "Nous sommes en heure d'été"
End If
  
End Sub


Function Arcosinus(x As Double) As Double
Arcosinus = Atn(-x / Sqr(-x * x + 1)) + 2 * Atn(1)
End Function


Function Arcsinus(x As Double) As Double
Arcsinus = Atn(x / Sqr(-x * x + 1))
End Function


Private Sub Calculer_Click()
Call pre_exec
End Sub


Private Sub exit_Click()
Unload Me
End Sub


Private Sub reset_Click()
Call Form_Load
End Sub

Re: heures lever coucher soleil

MessagePosté: Dimanche 20 Janvier 2008 21:38
de denis r-e
mikelima a écrit:Effectivement, c'est le même. Je n'avais pas cliqué sur le lien cité par Thiev.

pour répondre à la question plus basique de départ, de comment programmer, ci dessous le source de mon prog en Visual Basic

Private Sub Form_Load()
Dim lat As Double
Dim lon As Double
......................................................
.....................
Private Sub reset_Click()
Call Form_Load
End Sub


ImageImage Rien de plus sexy ??? ImageImage

Re: heures lever coucher soleil

MessagePosté: Dimanche 20 Janvier 2008 22:31
de kilopapi
merci mike lima, je fais analyser les données par notre laboratoire ! Image Image


Question pilotage, je me pose quand même la question: C'est pas un peu dangereux 30 minutes après le coucher du soleil ? parceque quand on n' habite pas une région toute plate, 30 minute apèrs la nuit, c'est la nuit ! noire s'entend ..  Image

Re: heures lever coucher soleil

MessagePosté: Lundi 21 Janvier 2008 01:07
de mikelima
Kilopapi

Une petite précision :

Si tu veux le lever et le coucher du soleil il faut changer un peu la formule de l'angle horaire (ah)
à 50' (34' pour la refraction et 16' pour le demi diametre sous l'horizon au lieu de 6° (Sin = 0,10452846)
la valeur de 50' étant d'ailleurs sujet à de nombreuses discussions, le bureau des longitudes prenant 36,6' pour la refraction

sin 50' = 0,0145439
sin 52,6' = 0,01530012


'angle horaire au lever et au coucher en degres 50' sous l'horizon
ah = (-0.01454 - Sin(declin) * Sin(lat)) / (Cos(declin) * Cos(lat))
ah = Arcosinus(ah) * 180 / pi

Attention également, les calculs angulaire sont en radians dans VB

Re: heures lever coucher soleil

MessagePosté: Mardi 22 Janvier 2008 21:35
de kilopapi
Merci à tous!  visiblement le webmestre du club a pu se dépatouiller avec tout ça , et le site du club indique désormais l'heure de la nuit
Image  Image  Image