2016-08-26 1 views
2

J'essaie de calculer l'heure solaire locale en fonction de l'heure et de la longitude UTC. J'ai regardé à travers le paquet ephem mais n'a pas pu identifier une méthode directe pour le faire. Des questions similaires à ce sujet évoquent le calcul de positions fixes (sunrise, moon, sunset) (par exemple Calculating dawn and sunset times using PyEphem) ou reçoivent des suggestions de méthodes simplifiées (par exemple Local solar time function from UTC and longitude). Existe-t-il une alternative aux solutions susmentionnées?Pyephem calculer l'heure solaire actuelle

Merci à l'avance

Répondre

2

Pour calculer l'heure solaire locale, je pense que vous pouvez simplement demander l'ascension droite actuelle du point directement au-dessous de l'emplacement (son nadir), et soustraire l'ascension droite du Soleil pour savoir exactement à quelle distance de minuit heure locale, il est:

from ephem import Sun, Observer, pi, hours 

dt = '2016/08/27 19:19' 

sun = Sun() 
sun.compute(dt) 

boston = Observer() 
boston.lat = '42.37' 
boston.lon = '-71.03' 
boston.date = dt 
ra, dec = boston.radec_of('0', '-90') 

print 'Sun right ascension:', sun.ra 
print 'Boston nadir right ascension:', ra 
print 'Solar time:', hours((ra - sun.ra) % (2 * pi)), 'hours' 

Pourriez-vous essayer cette approche et de voir si elle donne les chiffres que vous attendez à une précision raisonnable?