使用PVLIB计算晴空指数与地外辐照度时数值不匹配问题求助
PVLIB计算晴空指数结果与手动计算GHI/地外辐照度比值不一致的原因
核心差异来自你对晴空指数的定义理解和PVLIB库函数的计算逻辑不符,具体说明如下:
- PVLIB的
pvlib.irradiance.clearness_index采用行业通用的标准晴空指数(Kt)定义,计算公式为:Kt = 水平面实测GHI / (地外法向辐照度 * cos(太阳天顶角(弧度)))
你直接计算GHI和地外辐照度GHI_ET的比值,缺少了乘以太阳天顶角余弦的修正项,因此结果必然和函数输出不匹配。 - 函数内置的阈值处理规则也会对输出结果产生影响:
min_cos_zenith阈值限制:当cos(太阳天顶角)小于你设置的0.065时(对应太阳高度角低于约3.7度,接近日出日落或夜间场景),函数会触发截断逻辑,避免分母过小导致计算结果异常偏大,此时不会按标准公式返回计算值。max_clearness_index阈值限制:如果按公式计算得到的Kt超过你设置的2.0,函数会将结果截断为2.0,避免输出不符合物理意义的超大值。
- 验证方法:
你可以手动取对应行的数据,将天顶角转换为弧度后计算余弦值,代入上述标准公式计算,再确认是否触发阈值规则,得到的结果就会和函数输出的clearness_index完全一致。 - 特殊需求处理:
如果你确实需要GHI与地外辐照度的直接比值,不需要引入天顶角修正,可以自行计算,不需要调用clearness_index函数:test_data['ghi_et_ratio'] = test_data['GHI'] / test_data['GHI_ET']
内容的提问来源于stack exchange,提问作者cmk101010
相关产品推荐
相关产品推荐

