bsrn.utils.clear_sky_detection.brightsun_csd#

bsrn.utils.clear_sky_detection.brightsun_csd(zenith, ghi, ghi_clear, dhi, dhi_clear, times, return_diagnostics=False)[source]#

BrightSun2020CSDc clear-sky detection (tri-component) [1].

MATLAB mapping: BrightSun2020CSDc(zen, ghi, ghics, dif, difcs, LST) with zen -> zenith, ghics -> ghi_clear, dif -> dhi, difcs -> dhi_clear.

The method proceeds in four stages matching the MATLAB routine:

  1. Initial Reno-style CSD guess for candidate clear periods.

  2. Daily clear-sky optimisation scales GHI, DHI, BNI clear-sky curves independently (alpha bounds [0.7, 1.5] for GHI/BNI, [0.3, 1.5] for DHI).

  3. Tri-component analysis on optimised curves.

  4. Cascaded duration filters (90/30/10-min).

Parameters:
  • zenith (array-like) – Solar zenith angle. [degrees]

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

  • ghi_clear (array-like) – Clear-sky GHI. [W/m^2]

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

  • dhi_clear (array-like) – Clear-sky DHI. [W/m^2]

  • times (array-like or pd.DatetimeIndex) – Time index (MATLAB LST equivalent).

  • return_diagnostics (bool, default False) – If True, include method diagnostics.

Returns:

out – Columns: is_clearsky, cloud_flag (duration-filtered), method; diagnostics when requested.

Return type:

pd.DataFrame

Raises:

ValueError – When input lengths do not match.

References