使用总辐照度计算紫外线指数
Use total irradiance to calculate UV index
我正在使用 pvlib 来计算地表的漫射和直射太阳辐射,效果很好。在计算表面的总入射短波辐射时,我考虑了云、反照率、海冰等。
....
transmittance = (1.0 - cloud_covers) * 0.75
# irrads is a DataFrame containing ghi, dni, dhi
irrads = pvlib.irradiance.liujordan(solpos['apparent_zenith'].to_numpy(), transmittance, am_abs_array)
total_irrad = pvlib.irradiance.get_total_irradiance(surface_tilt,
surface_azimuth,
apparent_zenith,
azimuth,
irrads['dni'],
irrads['ghi'],
irrads['dhi'],
albedo=albedo)
sw_dr = total_irrad['poa_direct']
sw_df = total_irrad['poa_diffuse']
现在,使用直接 (sw_dr) 和漫射 (sw_df) 短波辐射,我想计算紫外线指数 1) 通过乘以计算入射太阳辐射的光谱分布通过太阳能光谱 2) 仅考虑波长 280-400 nm (sw_dr_λ_280-400).
中辐照度的贡献
每个波长间隔 dλ 对直接和漫射短波辐射的贡献由其在标准太阳光谱 ASTM E-490 AM0 (Shanmugam and Ahn, 2007), which is available as a table in the supplementary of Séférian et al. 2018 for wavelengths 200-4000 nm. My understanding is that this gives me the direct and diffuse shortwave radiation as a function of wavelength at 10 nm intervals. To calculate the UV index I used the equation found here:
下的太阳能量加权
uvi = np.sum(sw_dr_λ_280_400*erythema_spectrum_λ) * 40.0
其中 erythema_spectrum 是红斑效应的每个波段 (10 nm) 的权重。
当我使用这种方法计算 UVI 值时,值太高了,我想知道我的方法是否有缺陷或者我在这里做错了什么。有没有人用pvlib计算过UVI?
感谢您的帮助。干杯,Trond
更新:
我修复了上面的功能更正确。当我计算 1 月 15 日 30N (0-360E) 以北的 UVI 时,我得到的平均 UVI 为 14,但最大值为 264。
这是它的样子:
更新 2:
根据下面@Cliff H 的评论,我将我的值除以 25。新值在 UVI 的范围内,因此这似乎是正确的。请参阅 2015 年 6 月的 UVI 图。
我没有意识到概念上的错误。积分光谱直接辐照度会得到什么?我希望恢复 sw_dr 宽带价值。要检查的东西。计算 uvi 的代码行看起来很奇怪。 sw_dr from total_irrad是一个Series,sw_dr(λ[280:400])表示sw_dr是一个函数。
我正在使用 pvlib 来计算地表的漫射和直射太阳辐射,效果很好。在计算表面的总入射短波辐射时,我考虑了云、反照率、海冰等。
....
transmittance = (1.0 - cloud_covers) * 0.75
# irrads is a DataFrame containing ghi, dni, dhi
irrads = pvlib.irradiance.liujordan(solpos['apparent_zenith'].to_numpy(), transmittance, am_abs_array)
total_irrad = pvlib.irradiance.get_total_irradiance(surface_tilt,
surface_azimuth,
apparent_zenith,
azimuth,
irrads['dni'],
irrads['ghi'],
irrads['dhi'],
albedo=albedo)
sw_dr = total_irrad['poa_direct']
sw_df = total_irrad['poa_diffuse']
现在,使用直接 (sw_dr) 和漫射 (sw_df) 短波辐射,我想计算紫外线指数 1) 通过乘以计算入射太阳辐射的光谱分布通过太阳能光谱 2) 仅考虑波长 280-400 nm (sw_dr_λ_280-400).
中辐照度的贡献每个波长间隔 dλ 对直接和漫射短波辐射的贡献由其在标准太阳光谱 ASTM E-490 AM0 (Shanmugam and Ahn, 2007), which is available as a table in the supplementary of Séférian et al. 2018 for wavelengths 200-4000 nm. My understanding is that this gives me the direct and diffuse shortwave radiation as a function of wavelength at 10 nm intervals. To calculate the UV index I used the equation found here:
下的太阳能量加权uvi = np.sum(sw_dr_λ_280_400*erythema_spectrum_λ) * 40.0
其中 erythema_spectrum 是红斑效应的每个波段 (10 nm) 的权重。
当我使用这种方法计算 UVI 值时,值太高了,我想知道我的方法是否有缺陷或者我在这里做错了什么。有没有人用pvlib计算过UVI?
感谢您的帮助。干杯,Trond
更新:
我修复了上面的功能更正确。当我计算 1 月 15 日 30N (0-360E) 以北的 UVI 时,我得到的平均 UVI 为 14,但最大值为 264。
这是它的样子:
更新 2:
根据下面@Cliff H 的评论,我将我的值除以 25。新值在 UVI 的范围内,因此这似乎是正确的。请参阅 2015 年 6 月的 UVI 图。
我没有意识到概念上的错误。积分光谱直接辐照度会得到什么?我希望恢复 sw_dr 宽带价值。要检查的东西。计算 uvi 的代码行看起来很奇怪。 sw_dr from total_irrad是一个Series,sw_dr(λ[280:400])表示sw_dr是一个函数。