bsrn.modeling.separation.brl_separation#

bsrn.modeling.separation.brl_separation(times, ghi, lat, lon, min_mu0=0.065, max_zenith=87.0)[source]#

BRL irradiance separation [1]: diffuse fraction $k$ from logistic function of $k_t$, AST, $alpha$, $K_t$, $psi$.

$k = 1 / (1 + exp(-5.38 + 6.63 k_t + 0.006,text{AST} - 0.007,alpha + 1.75 K_t + 1.31 psi))$. $psi$ at sunrise = $k_{t+1}$, at sunset = $k_{t-1}$, else $(k_{t-1}+k_{t+1})/2$. $K_t$ = daily clearness index.

Parameters:
  • times (pd.DatetimeIndex) – Timestamps.

  • ghi (array-like) – Global horizontal irradiance. [W/m^2]

  • lat (float) – Latitude. [degrees]

  • lon (float) – Longitude. [degrees]

  • 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() if times or ghi are invalid.

References