bsrn.physics.geometry.add_solpos_columns#
- bsrn.physics.geometry.add_solpos_columns(df, station_code=None, lat=None, lon=None, elev=None)[source]#
Adds high-precision solar geometry and extraterrestrial irradiance columns to a DataFrame. 向 DataFrame 添加高精度太阳几何和地外辐射列。
Location can be given by BSRN station code or by explicit lat/lon/elev. 位置可由 BSRN 站点代码指定,或由显式的 lat/lon/elev 指定。
- Parameters:
df (pd.DataFrame) – Input data with pd.DatetimeIndex. 包含 DatetimeIndex 的输入数据。
station_code (str, optional) – BSRN station abbreviation. [e.g. ‘QIQ’] Used if lat/lon/elev not provided. BSRN 站点缩写。[例如 ‘QIQ’]。未提供 lat/lon/elev 时使用。
lat (float, optional) – Latitude. [degrees] Required if station_code omitted. 纬度。[度]。未提供 station_code 时必填。
lon (float, optional) – Longitude. [degrees] Required if station_code omitted. 经度。[度]。未提供 station_code 时必填。
elev (float, optional) – Elevation. [m] Required if station_code omitted. 海拔。[米]。未提供 station_code 时必填。
- Returns:
df – DataFrame with added ‘zenith’, ‘apparent_zenith’, ‘azimuth’, ‘bni_extra’, and ‘ghi_extra’ columns. 增加了 ‘zenith’、’apparent_zenith’、’azimuth’、’bni_extra’ 和 ‘ghi_extra’ 列的 DataFrame。
- Return type:
pd.DataFrame
- Raises:
ValueError – If
df.indexis not aDatetimeIndex. / 索引非 DatetimeIndex。ValueError – If the median timestep is > 5 minutes (prevents non-linear geometric errors). 若数据时间步长大于 5 分钟(防止非线性几何误差)。
ValueError – If neither a valid station_code nor complete (lat, lon, elev) is provided. 若既未提供有效 station_code 也未提供完整的 (lat, lon, elev)。