0

我最近遇到了一个使用 PVLIB 函数计算清晰度指数和外星辐照度的问题。基本上,数字不合。

这是我运行该函数的原始数据(我的 Datetime 已经知道时区):

我的原始数据

然后我运行下面的代码来获得清晰指数:

latitude = -22.24
longitude = 114.09
times = pd.DatetimeIndex(test_data['Datetime']) #Converting to Datetime Index
solpos = solarposition.get_solarposition(times, latitude, longitude)
test_data['apparent_elevation'] = solpos.apparent_elevation.to_numpy()
test_data['zenith'] = solpos.zenith.to_numpy()
#    data_file = data_file[data_file.apparent_elevation > 0] #For now, not removing data during night time
test_data.reset_index(drop = True, inplace = True)
extr_irr = pvlib.irradiance.get_extra_radiation(pd.DatetimeIndex(test_data['Datetime']))
clearness_index = pvlib.irradiance.clearness_index(ghi = np.array(test_data['GHI']), solar_zenith = np.array(test_data['zenith']), extra_radiation = np.array(extr_irr), min_cos_zenith=0.065, max_clearness_index=2.0)
test_data = pd.DataFrame(test_data)
test_data['clearness_index'] = clearness_index
test_data['GHI_ET'] = extr_irr.to_numpy()

现在分析计算的数据:

计算数据

在这里我们可以看到,例如在第一行,

GHI/GHI_ET 不等于 clearness_index 值。

谁能指出我在这里遗漏或做错了什么?

谢谢

4

1 回答 1

3

问题出在这一行:

test_data['GHI_ET'] = extr_irr.to_numpy()

您需要将外星辐照度乘以cos(zenith)以获得水平面的值。如果你查看clearness_index函数内部,你会发现它也在那里完成。

于 2021-05-18T10:31:36.767 回答