Cloudy#

class abcmodel.rad.cloudy.CloudyRadiationState(net_rad, in_srad=<factory>, out_srad=<factory>, in_lrad=<factory>, out_lrad=<factory>)[source]#

Bases: StandardRadiationState

Standard radiation model with clouds state.

class abcmodel.rad.cloudy.CloudyRadiationModel(lat=51.97, lon=-4.93, doy=268.0)[source]#

Bases: StandardRadiationModel

Standard radiation model with solar position and atmospheric effects including prognostic cloud transmittance.

Calculates time-varying solar rad based on geographic location and atmospheric conditions. Includes both shortwave (solar) and longwave (thermal) rad components.

Parameters:
  • lat (float) – latitude [degrees], range -90 to +90. Default is 51.97.

  • lon (float) – longitude [degrees], range -180 to +180. Default is -4.93.

  • doy (float) – day of year [-], range 1 to 365. Default is 268.0.

init_state(net_rad=400.0)[source]#

Initialize the model state.

Parameters:

net_rad (float) – Net surface radiation [W m-2]. Default is 400.0.

Returns:

The initial radiation state.

run(state, t, dt, tstart)[source]#

Calculate rad components and net surface rad.

Parameters:
Returns:

The updated rad state object.

compute_atmospheric_transmission_w_clouds(solar_elevation, cl_trans)[source]#

Calculate atmospheric transmission coefficient for solar rad.

Parameters:
  • solar_elevation (Array) – sine of the solar elevation angle [-].

  • cl_trans (Array) – prognostic cloud layer transmittance [-].

Returns:

Atmospheric transmission coefficient [-].

Notes

This is a simplified empirical parameterization (linear model) for atmospheric transmission \(\tau\).

  1. A clear-sky transmission \(\tau_{\text{clear}}\) is calculated based on the solar elevation \(\sin(\alpha)\) as

    \[\tau_{\text{clear}} = 0.6 + 0.2 \cdot \sin(\alpha).\]
  2. The prognostic cloud transmittance \(\tau_{\text{cloud}}\) is provided directly by the model state (cl_trans).

  3. The final transmission is then the product of these two factors, giving

    \[\tau = \tau_{\text{clear}} \cdot \tau_{\text{cloud}}.\]