pvlib.irradiance.haydavies#

pvlib.irradiance.haydavies(surface_tilt, surface_azimuth, dhi, dni, dni_extra, solar_zenith=None, solar_azimuth=None, projection_ratio=None, return_components=False)[source]#

Determine diffuse irradiance from the sky on a tilted surface using the Hay and Davies (1980) model.

The Hay and Davies model determines the diffuse irradiance from the sky (ground reflected irradiance is not included in this algorithm) on a tilted surface using the surface tilt angle, surface azimuth angle, diffuse horizontal irradiance, direct normal irradiance, extraterrestrial irradiance, sun zenith angle, and sun azimuth angle.

Parameters:
  • surface_tilt (numeric) – Panel tilt from the horizontal, in decimal degrees, see surface_tilt.

  • surface_azimuth (numeric) – Surface azimuth angles in decimal degrees. The azimuth convention is defined as degrees east of north (e.g. North=0, South=180, East=90, West=270).

  • dhi (numeric) – Diffuse horizontal irradiance. [Wm⁻²]

  • dni (numeric) – Direct normal irradiance, see dni. [Wm⁻²]

  • dni_extra (numeric) – Extraterrestrial normal irradiance. [Wm⁻²]

  • solar_zenith (numeric, optional) – Solar apparent (refraction-corrected) zenith angles in decimal degrees. Must supply solar_zenith and solar_azimuth or supply projection_ratio.

  • solar_azimuth (numeric, optional) – Solar azimuth angles in decimal degrees. Must supply solar_zenith and solar_azimuth or supply projection_ratio.

  • projection_ratio (numeric, optional) – Ratio of angle of incidence projection to solar zenith angle projection. Must supply solar_zenith and solar_azimuth or supply projection_ratio.

  • return_components (bool, default False) – If False, sky_diffuse is returned. If True, diffuse_components is returned.

Returns:

  • numeric, OrderedDict, or DataFrame – Return type controlled by return_components argument. If False, sky_diffuse is returned. If True, diffuse_components is returned.

  • sky_diffuse (numeric) – The sky diffuse component of the solar radiation on a tilted surface.

  • diffuse_components (OrderedDict (array input) or DataFrame (Series input)) –

    Keys/columns are:
    • sky_diffuse: Total sky diffuse

    • isotropic

    • circumsolar

    • horizon

Notes

In the Hay and Davies (1980) model [1] [2], sky diffuse irradiance, \(I_d\), is as follows:

\[I_{d} = DHI \left( A\cdot R_b + (1 - A) \left(\frac{ 1 + \cos\beta}{2}\right ) \right ).\]

\(DHI\) is the diffuse horizontal irradiance, \(A\) is the anisotropy index, which is the ratio of the direct normal irradiance to the extraterrestrial irradiation, \(R_b\) is the projection ratio, which is defined as the ratio of the cosine of the angle of incidence (AOI) to the cosine of the zenith angle, and finally \(\beta\) is the tilt angle of the array.

If supplying projection_ratio, consider constraining its values when the zenith angle approaches 90 degrees or the AOI projection is negative. See code for details.

References