pvlib.spectrum.spectrl2#

pvlib.spectrum.spectrl2(apparent_zenith, aoi, surface_tilt, ground_albedo, surface_pressure, relative_airmass, precipitable_water, ozone, aerosol_turbidity_500nm, dayofyear=None, scattering_albedo_400nm=0.945, alpha=1.14, wavelength_variation_factor=0.095, aerosol_asymmetry_factor=0.65)[source]#

Estimate spectral irradiance using the Bird Simple Spectral Model (SPECTRL2).

The Bird Simple Spectral Model 1 produces terrestrial spectra between 300 and 4000 nm with a resolution of approximately 10 nm. Direct and diffuse spectral irradiance are modeled for horizontal and tilted surfaces under cloudless skies. SPECTRL2 models radiative transmission, absorption, and scattering due to atmospheric aerosol, water vapor, and ozone content.

Parameters
  • apparent_zenith (numeric) – Solar zenith angle [degrees]

  • aoi (numeric) – Angle of incidence of the solar vector on the panel [degrees]

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

  • ground_albedo (numeric) – Albedo [0-1] of the ground surface. Can be provided as a scalar value if albedo is not spectrally-dependent, or as a 122xN matrix where the first dimension spans the wavelength range and the second spans the number of simulations. [unitless]

  • surface_pressure (numeric) – Surface pressure [Pa]

  • relative_airmass (numeric) – Relative airmass. The airmass model used in 1 is the ‘kasten1966’ model, while a later implementation by NREL uses the ‘kastenyoung1989’ model. [unitless]

  • precipitable_water (numeric) – Atmospheric water vapor content [cm]

  • ozone (numeric) – Atmospheric ozone content [atm-cm]

  • aerosol_turbidity_500nm (numeric) – Aerosol turbidity at 500 nm [unitless]

  • dayofyear (numeric, optional) – The day of year [1-365]. Must be provided if apparent_zenith is not a pandas Series.

  • scattering_albedo_400nm (numeric, default 0.945) – Aerosol single scattering albedo at 400nm. The default value of 0.945 is suggested in 1 for a rural aerosol model. [unitless]

  • alpha (numeric, default 1.14) – Angstrom turbidity exponent. The default value of 1.14 is suggested in 1 for a rural aerosol model. [unitless]

  • wavelength_variation_factor (numeric, default 0.095) – Wavelength variation factor [unitless]

  • aerosol_asymmetry_factor (numeric, default 0.65) – Aerosol asymmetry factor (mean cosine of scattering angle) [unitless]

Returns

spectra (dict) – A dict of arrays. With the exception of wavelength, which has length 122, each array has shape (122, N) where N is the length of the input apparent_zenith. All values are spectral irradiance with units W/m^2/nm except for wavelength, which is in nanometers.

  • wavelength

  • dni_extra

  • dhi

  • dni

  • poa_sky_diffuse

  • poa_ground_diffuse

  • poa_direct

  • poa_global

Notes

NREL’s C implementation spectrl2_2.c 2 of the model differs in several ways from the original report 1. The report itself also has a few differences between the in-text equations and the code appendix. The list of known differences is shown below. Note that this implementation follows spectrl2_2.c.

Equation

Report

Appendix

spectrl2_2.c

2-4

1.335

1.335

1.3366

2-11

118.93

118.93

118.3

3-8

To’

Tu’

Tu’

3-5, 3-6, 3-7, 3-1

double Cs

single Cs

single Cs

2-5

kasten1966

kasten1966

kastenyoung1989

This implementation also deviates from the reference by including a check for angles of incidence greater than 90 degrees; without this, the model might return negative spectral irradiance values when the sun is behind the plane of array.

References

1(1,2,3,4,5)

Bird, R, and Riordan, C., 1984, “Simple solar spectral model for direct and diffuse irradiance on horizontal and tilted planes at the earth’s surface for cloudless atmospheres”, NREL Technical Report TR-215-2436 DOI: 10.2172/5986936.

2

Bird Simple Spectral Model: spectrl2_2.c. https://www.nrel.gov/grid/solar-resource/spectral.html

Examples using pvlib.spectrum.spectrl2#

Modeling Spectral Irradiance

Modeling Spectral Irradiance