bsrn.modeling.separation.erbs_separation#
- bsrn.modeling.separation.erbs_separation(times, ghi, lat, lon, elev=0, min_mu0=0.065, max_zenith=87.0)[source]#
Erbs irradiance separation [1]: diffuse fraction $k$ from clearness index $k_t$, then DHI and BNI.
Inputs are time, ghi, and location (lat, lon, elev); zenith and clearness index are computed inside.
Piecewise formula (Erbs et al.): - $k_t leq 0.22$: $k = 1.0 - 0.09 k_t$ - $0.22 < k_t leq 0.80$: $k = 0.9511 - 0.1604 k_t + 4.388 k_t^2 - 16.638 k_t^3 + 12.336 k_t^4$ - $k_t > 0.80$: $k = 0.165$
- Parameters:
times (pd.DatetimeIndex) – Timestamps.
ghi (array-like) – Global horizontal irradiance. [W/m^2]
lat (float) – Latitude. [degrees]
lon (float) – Longitude. [degrees]
elev (float, default 0) – Site elevation. [m] Use same value as for zenith when comparing to pvlib.
min_mu0 (float, default 0.065) – Minimum $mu_0$ when computing $k_t$.
max_zenith (float, default 87.0) – Maximum zenith for valid BNI; beyond this BNI is set to 0. [degrees]
- Returns:
out – DataFrame with index=times and columns
k,dhi,bni(modeled).- Return type:
pd.DataFrame
- Raises:
ValueError – Propagated from
_get_solar_and_kt()iftimesorghiare invalid.
References