pvlib.iam.marion_integrate¶
-
pvlib.iam.
marion_integrate
(function, surface_tilt, region, num=None)[source]¶ Integrate an incidence angle modifier (IAM) function over solid angle to determine a diffuse irradiance correction factor using Marion’s method.
This lower-level function actually performs the IAM integration for the specified solid angle region.
Parameters: - function (callable(aoi)) – The IAM function to evaluate across solid angle. The function must be vectorized and take only one parameter, the angle of incidence in degrees.
- surface_tilt (numeric) – Surface tilt angles in decimal degrees. The tilt angle is defined as degrees from horizontal (e.g. surface facing up = 0, surface facing horizon = 90).
- region ({'sky', 'horizon', 'ground'}) –
The region to integrate over. Must be one of:
- ’sky’: radiation from the sky dome (zenith <= 90)
- ’horizon’: radiation from the region of the sky near the horizon (89.5 <= zenith <= 90)
- ’ground’: radiation reflected from the ground (zenith >= 90)
See [1] for a detailed description of each class.
- num (int, optional) –
The number of increments in the zenith integration. If not specified, N will follow the values used in [1]:
- ’sky’ or ‘ground’: num = 180
- ’horizon’: num = 1800
Returns: iam (numeric) – AOI diffuse correction factor for the specified region.
See also
References
[1] (1, 2) B. Marion “Numerical method for angle-of-incidence correction factors for diffuse radiation incident photovoltaic modules”, Solar Energy, Volume 147, Pages 344-348. 2017. DOI: 10.1016/j.solener.2017.03.027 Examples
>>> marion_integrate(pvlib.iam.ashrae, 20, 'sky') 0.9596085829811408
>>> from functools import partial >>> f = partial(pvlib.iam.physical, n=1.3) >>> marion_integrate(f, [20, 30], 'sky') array([0.96225034, 0.9653219 ])