Jestem nowy w PyEphem i jest to prawdopodobnie proste pytanie. Chcę obliczyć kąt słońca nad horyzontem w określonym punkcie GPS i datę. Mój kod wygląda następująco:Jak obliczyć kąt słońca nad horyzontem za pomocą 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
a wyjście jest:
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
Dlaczego alt negatywne? Lokalizacja GPS jest gdzieś w Meksyku i określiłem 12 południa w parametrze daty obserwatora. Słońce powinno być prawie bezpośrednio nad głową, więc pomyślałem, że zmienna alt zwróci kąt gdzieś w zakresie 70 - 90 stopni? Czego tu mi brakuje?
Dzięki
Stephen
Moja pamięć jest trochę rozmyta dzięki użyciu datetime. Czy jest możliwe, że istnieje tam strefa czasowa? Może efem i datetime konspirują do interpretowania twojego czasu tak, jak w innej strefie czasowej, takiej jak UTC czy twój lokalny TZ? –