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. See surface_tilt. [°]

  • surface_azimuth (numeric) – Panel azimuth. See surface_azimuth. [°]

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

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

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

  • solar_zenith (numeric, optional) – Solar apparent (refraction-corrected) zenith angles. Must supply solar_zenith and solar_azimuth, or supply projection_ratio. [°]

  • solar_azimuth (numeric, optional) – Solar azimuth angles. Must supply solar_zenith and solar_azimuth, or supply projection_ratio. See solar_azimuth. [°]

  • 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. [Wm⁻²]

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

    Keys/columns are:
    • sky_diffuse: Total sky diffuse

    • isotropic

    • circumsolar

    • horizon (always zero, not accounted for by the Hay-Davies model)

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