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
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 ])