bsrn.modeling.separation.yang4_separation#

bsrn.modeling.separation.yang4_separation(times, ghi, lat, lon, ghi_clear)[source]#

Yang4 irradiance separation: diffuse fraction k_d from k_t, AST, Z, Δk_tc, k_de, and Engerer2 60-min k. k_d^YANG4 = C + (1-C)/(1 + exp(β0 + β1*k_t + β2*AST + β3*Z + β4*Δk_tc + β6*k_d,60min^ENGERER2)) + β5*k_de. Uses YANG2 coefficient set (TABLE III) from 1-min SURFRAD data.

Caller must provide clear-sky GHI (e.g. from a clear-sky model or add_clearsky_columns).

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

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

  • lat (float) – Latitude. [degrees]

  • lon (float) – Longitude. [degrees]

  • ghi_clear (array-like) – Clear-sky GHI. [W/m^2] Same length as times. Required.

Returns:

out – DataFrame with index=times and columns k, dhi, bni (modeled).

Return type:

pd.DataFrame

Raises:

ValueError – If times is not a DatetimeIndex, lengths mismatch, or _engerer2_k_at_resolution() rejects inputs (e.g. missing ghi_clear).

References