我正在使用这个源来计算一天中每个小时的 UVI 值(从早上 7 点到晚上 7 点)。并使用pysolar模块获取Solar Zenith Angle
. 等式如下:
from pysolar.solar import *
from math import cos
import datetime
dobj = datetime.datetime(2017,7,1,8,0)
sza = float(90)-get_altitude(42.57952, 1.65362, dobj)
ozone = 300
raw_uvi = 12.50*pow(cos(sza),2.42)*pow(float(ozone)/300,-1.23)
print (raw_uvi)
输出为:0.4850283419701262+1.8890606693266203j
我的问题是当 cos(sza) 变为负数时,它会给出一个复数作为输出,我该如何处理?此外,早上 7 点的 uvi 结果9.232276464148745
是错误的。我错过了什么吗?还是我对算法的解释是错误的?