View  Edit  Attributes  History  Attach  Print  Search

Script Python : Astro : Calculer l'élévation solaire pendant 24H

  • Ce code Python ..
#!/usr/bin/python
# -*- coding: utf-8 -*-

# modules à importer
import math, random
import datetime
import ephem # librairie Astro

# pour installer pyEphem sous Gnu/Linux
# sudo apt-get install python-dev
# sudo apt-get install python-pip
# sudo pip install pyephem

#déclaration des variables globales pour calcul astro
longitude="" # variable longitude
latitude="" # variable latitude

# fonction principale
def main():

        #-- calcul de la position réelle du soleil
        # paramètres observateur
        global obs, latitude, longitude # objet observateur

        longitude="-3:20:00" # -W / +E
        latitude="47:45:00" # +N / -S
        obs=ephem.Observer() # objet global désigant l'observateur local

        print("Longitude =" + longitude)
        print("Latitude =" + latitude)

        dt=datetime.datetime.now() # date/heure locale
        print dt.strftime("%d %B %Y - %I:%M:%S")

        dt=datetime.datetime.utcnow() # date/heure utc
        dt.strftime("%d %B %Y - %I:%M:%S")

        #obs.date=datetime.datetime.utcnow() # date/heure utc
        #obs.date=ephem.Date('2013/11/27 12:00') # date (A/M/D) /heure - pour test
        obs.date=datetime.date.today() # date courante

        for i in range(24*60): # defile les heures
                #obs.date=ephem.Date(obs.date + (ephem.hour)) # ajoute le nombre d'heures à la date
                obs.date=ephem.Date(obs.date + (ephem.minute)) # ajoute le nombre d'heures à la date
                print (obs.date),

                obs.lat=str(latitude)
                obs.long=str(longitude)

                sun=ephem.Sun(obs) # objet représentant le soleil basé sur paramètres observateur
                if sun.alt>0 : # elevation
                        print ","+ str(math.degrees(sun.alt)), # elevation
                        print "," +str(math.degrees(sun.az)) # azimut
                else :
                        print ",0 ,0"


#--- obligatoire pour rendre code exécutable ---
if __name__ == "__main__": # cette condition est vraie si le fichier est le programme exécuté
        main()# appelle la fonction principale