使用 PVLIB 函数查找清晰度指数和地外辐照度的问题
Issues with finding the clearness index and extraterrestrial irradiance using PVLIB functions
我最近 运行 遇到了使用 PVLIB 函数计算清晰度指数和地外辐照度的问题。基本上,数字不相符。
这是我 运行 函数的原始数据(我的日期时间已经可以识别时区):
然后我运行下面的代码来获取清晰度指数:
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 值。
谁能指出我遗漏了什么或做错了什么?
谢谢
问题出在这一行:
test_data['GHI_ET'] = extr_irr.to_numpy()
您需要将地外辐照度乘以 cos(zenith)
以获得水平面的值。如果您查看 clearness_index
函数内部,您会看到它也在那里完成。
我最近 运行 遇到了使用 PVLIB 函数计算清晰度指数和地外辐照度的问题。基本上,数字不相符。
这是我 运行 函数的原始数据(我的日期时间已经可以识别时区):
然后我运行下面的代码来获取清晰度指数:
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 值。
谁能指出我遗漏了什么或做错了什么?
谢谢
问题出在这一行:
test_data['GHI_ET'] = extr_irr.to_numpy()
您需要将地外辐照度乘以 cos(zenith)
以获得水平面的值。如果您查看 clearness_index
函数内部,您会看到它也在那里完成。