Description
Is your feature request related to a problem? Please describe.
I am working on an application using pvlib.iam.marion_diffuse
, and I would like to inject my own IAM function (from interpolated IEC 61853-2 data) as a parameter to pvlib.iam.marion_diffuse
.
Describe the solution you'd like
Add the option for passing a callable to pvlib.iam.marion_diffuse
instead of the existing strings for the builtin IAM model functions. (The existing strings would still be accepted.)
Also add a function to create IAM functions as a PCHIP interpolation of data such as from IEC 61853-2. Note that this solution can also be made to add support for passing the existing pvlib.iam.interp
function (whose cubic
option is slightly different that pchip
) to pvlib.iam.marion_diffuse
.
Describe alternatives you've considered
Rolling my own interpolant each time, and then calling the lower-level pvlib.iam.marion_integrate
for each of the three components.
Additional context
This is a followup to #1980, but without any concern to improving the diffuse-horizontal integral.