As part of my GSoC 2026 project (#2750) I am working on diffuse irradiance models in pvlib to expand support for the return_components parameter, which is currently only implemented in some functions. When return_components=True, these functions return a dictionary containing the individual diffuse irradiance components (isotropic, circumsolar, horizon), but also their sum (total diffuse irradiance).
Several people (@AdamRJensen, @adriesse) have raised questions on whether it makes sense to keep the total or if it should be removed. Including the total is convenient and avoids requiring users to recompute it themselves if necessary. Excluding the total avoids redundant outputs and makes the meaning of return_components more explicit: return the components only.
The purpose of this issue is therefore to open a more focused discussion on this point and hopefully reach a consensus.
For reference, irradiance.get_total_irradiance and irradiance.poa_components currently also return several values that could be considered redundant: poa_global, poa_direct, poa_diffuse, poa_sky_diffuse, and poa_ground_diffuse. But in this case, there is no parameter controlling which values are returned.
As part of my GSoC 2026 project (#2750) I am working on diffuse irradiance models in
pvlibto expand support for thereturn_componentsparameter, which is currently only implemented in some functions. Whenreturn_components=True, these functions return a dictionary containing the individual diffuse irradiance components (isotropic, circumsolar, horizon), but also their sum (total diffuse irradiance).Several people (@AdamRJensen, @adriesse) have raised questions on whether it makes sense to keep the total or if it should be removed. Including the total is convenient and avoids requiring users to recompute it themselves if necessary. Excluding the total avoids redundant outputs and makes the meaning of
return_componentsmore explicit: return the components only.The purpose of this issue is therefore to open a more focused discussion on this point and hopefully reach a consensus.
For reference,
irradiance.get_total_irradianceandirradiance.poa_componentscurrently also return several values that could be considered redundant:poa_global,poa_direct,poa_diffuse,poa_sky_diffuse, andpoa_ground_diffuse. But in this case, there is no parameter controlling which values are returned.