You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PVLib中不同函数对真/视太阳天顶角的要求及适配方法咨询

问题

我希望使用pvlib.irradiance.erbs从GHI估算DHI和DNI,步骤如下:

  • 首先通过pvlib.Location.get_solarposition计算目标地点的太阳位置
  • 再结合天顶角与GHI气象数据运行erbs
  • 之后用pvlib.tracking.singleaxis调整太阳跟踪
  • 最后通过pvlib.irradiance.get_total_irradiance计算辐照度

我注意到pvlib.tracking.singleaxis和pvlib.irradiance.get_total_irradiance需要视太阳角,pvlib.irradiance.erbs需要真太阳天顶角,但pvlib.Location.get_solarposition未明确输出类型。

因此我想咨询:

  1. 是否需要在这些函数间转换真/视太阳角?
  2. 若需要,应如何操作?
  3. pvlib.Location.get_solarposition应适配哪种类型?

回答

1. 是否需要转换真/视太阳角?

需要。erbs模型依赖真太阳天顶角(忽略大气折射的理论值),而跟踪系统、总辐照度计算需要视太阳角(包含大气折射修正,更贴近实际观测的太阳位置),两者物理定义不同,必须对应转换后再传入对应函数。

2. 如何进行转换?

pvlib提供了直接的大气折射修正工具,转换逻辑如下:

  • 真太阳天顶角转视太阳天顶角:调用pvlib.atmosphere.refraction计算折射修正值,用真太阳天顶角减去该值得到视太阳天顶角
  • 视太阳天顶角转真太阳天顶角:用视太阳天顶角加上折射修正值即可

示例代码:

import pvlib

# 假设已获取真太阳天顶角tsza,观测点气压默认101325Pa
refraction_correction = pvlib.atmosphere.refraction(tsza, pressure=101325)
# 得到视太阳天顶角
apparent_zenith = tsza - refraction_correction

3. pvlib.Location.get_solarposition应适配哪种类型?

pvlib.Location.get_solarposition默认输出真太阳角(包含真太阳天顶角、真太阳方位角),可以直接将结果中的zenith字段传入erbs使用;之后再通过上述折射转换得到视太阳角,供给singleaxis和get_total_irradiance。

如果需要直接获取视太阳角,调用get_solarposition时可设置参数refraction=True,函数会自动应用大气折射修正返回视太阳角。但如果同时需要给erbs用的真太阳角,建议先获取真太阳角再手动转换,避免重复计算。


内容的提问来源于stack exchange,提问作者Thomas Arildsen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 18:17:18