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.
Location can be given by BSRN station code or by explicit lat/lon/elev.
- Parameters:
df (pd.DataFrame) – Input data with pd.DatetimeIndex.
station_code (str, optional) – BSRN station abbreviation. [e.g. ‘QIQ’] Used if lat/lon/elev not provided.
lat (float, optional) – Latitude. [degrees] Required if station_code omitted.
lon (float, optional) – Longitude. [degrees] Required if station_code omitted.
elev (float, optional) – Elevation. [m] Required if station_code omitted.
- Returns:
df – DataFrame with added ‘zenith’, ‘apparent_zenith’, ‘azimuth’, ‘bni_extra’, and ‘ghi_extra’ columns.
- Return type:
pd.DataFrame
- Raises:
ValueError – If
df.indexis not aDatetimeIndex.ValueError – If the median timestep is > 5 minutes (prevents non-linear geometric errors).
ValueError – If neither a valid station_code nor complete (lat, lon, elev) is provided.