0

我正在使用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 显示早上 7 点的 SZA 应该是132.88884

谁能告诉我我做错了什么?

4

1 回答 1

0

迪拜在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)
于 2018-09-20T17:34:37.443 回答