Как получить солнечный зенитный угол, используя pysolar?

Я использую модуль pysolar, чтобы получить Solar Zenith Angle, Я проверял данные солнечного калькулятора NOAA. Я думал, есть ли способ добавить часовой пояс в get_altitude метод. Я рассчитал SZA без использования какого-либо часового пояса, но он слишком сильно отличается от того, что показывает калькулятор NOAA. Код ниже для Dubai, Часовой пояс: Asia/Dubai,

from pysolar.solar import *
import datetime

dobj = datetime.datetime(2017,7,20,7,0)
sza = float(90)-get_altitude(25.0657, 55.17128, dobj)
print (sza)

Выход: 93.11938274977194, Но NOAA показывает, что SZA в 7 утра должно быть 132.88884,

Может кто-нибудь сказать мне, что я делаю не так?

1 ответ

Дубай находится в часовом поясе UTC+4, поэтому нам нужно настроить время Дубая на время UTC. Часовой пояс по умолчанию - часовой пояс вашего компьютера, в зависимости от вашего местоположения и настроек.

Таким образом, я получаю результат 73,9 со следующими кодами. Считается, что утром вы ожидаете, что солнце близко к горизонту.

dobj = datetime.datetime(2017,7,20,7,tzinfo=datetime.timezone.utc) - datetime.timedelta(hours=4)
sza = float(90) - get_altitude(25.0657, 55.17128, dobj)
print ("timezone = UTC+4,",sza)
Другие вопросы по тегам