pvlib.irradiance.get_total_irradiance(surface_tilt, surface_azimuth, solar_zenith, solar_azimuth, dni, ghi, dhi, dni_extra=None, airmass=None, albedo=0.25, surface_type=None, model='isotropic', model_perez='allsitescomposite1990', **kwargs)[source]

Determine total in-plane irradiance and its beam, sky diffuse and ground reflected components, using the specified sky diffuse irradiance model.

\[I_{tot} = I_{beam} + I_{sky diffuse} + I_{ground}\]
Sky diffuse models include:
  • isotropic (default)

  • klucher

  • haydavies

  • reindl

  • king

  • perez

  • surface_tilt (numeric) – Panel tilt from horizontal. [degree]

  • surface_azimuth (numeric) – Panel azimuth from north. [degree]

  • solar_zenith (numeric) – Solar zenith angle. [degree]

  • solar_azimuth (numeric) – Solar azimuth angle. [degree]

  • dni (numeric) – Direct Normal Irradiance. [W/m2]

  • ghi (numeric) – Global horizontal irradiance. [W/m2]

  • dhi (numeric) – Diffuse horizontal irradiance. [W/m2]

  • dni_extra (None or numeric, default None) – Extraterrestrial direct normal irradiance. [W/m2]

  • airmass (None or numeric, default None) – Relative airmass (not adjusted for pressure). [unitless]

  • albedo (numeric, default 0.25) – Surface albedo. [unitless]

  • surface_type (None or str, default None) – Surface type. See get_ground_diffuse() for the list of accepted values.

  • model (str, default 'isotropic') – Irradiance model. Can be one of 'isotropic', 'klucher', 'haydavies', 'reindl', 'king', 'perez'.

  • model_perez (str, default 'allsitescomposite1990') – Used only if model='perez'. See perez().


total_irrad (OrderedDict or DataFrame) – Contains keys/columns 'poa_global', 'poa_direct', 'poa_diffuse', 'poa_sky_diffuse', 'poa_ground_diffuse'.


Models 'haydavies', 'reindl', or 'perez' require 'dni_extra'. Values can be calculated using get_extra_radiation().

The 'perez' model requires relative airmass (airmass) as input. If airmass is not provided, it is calculated using the defaults in get_relative_airmass().