Sono nuovo di PyEphem e questa è probabilmente una semplice domanda. Voglio calcolare l'angolo del sole sopra l'orizzonte in un determinato punto e data GPS. Il mio codice è il seguente:Come calcolare l'angolo del sole sopra l'orizzonte usando pyEphem
import ephem
import datetime
date = datetime.datetime(2010,1,1,12,0,0)
print "Date: " + str(date)
obs=ephem.Observer()
obs.lat='31:00'
obs.long='-106:00'
obs.date = date
print obs
sun = ephem.Sun(obs)
sun.compute(obs)
print float(sun.alt)
print str(sun.alt)
sun_angle = float(sun.alt) * 57.2957795 # Convert Radians to degrees
print "sun_angle: %f" % sun_angle
e l'uscita è:
python sunTry.py
Date: 2010-01-01 12:00:00
<ephem.Observer date='2010/1/1 12:00:00' epoch='2000/1/1 12:00:00' lon=-106:00:00.0 lat=31:00:00.0 elevation=0.0m horizon=0:00:00.0 temp=15.0C pressure=1010.0mBar>
-0.44488877058
-25:29:24.9
sun_angle: -25.490249
Perché l'alt negativo? La posizione GPS è da qualche parte in Messico e ho specificato 12 Noon nel parametro data dell'osservatore. Il sole dovrebbe essere praticamente direttamente sopra la testa quindi avrei pensato che la variabile alt avrebbe restituito un angolo da qualche parte nel range di 70 - 90 gradi? Cosa mi manca qui?
Grazie
Stephen
La mia memoria è un po 'confusa con l'utilizzo datetime. È possibile che ci sia un problema di fuso orario lì? Forse ephem e datetime stanno cospirando per interpretare il tuo tempo come in un altro fuso orario, come l'UTC o il tuo TZ locale? –