From 67963c46da2c474fbc1cd3df425f45947f9868b7 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Thu, 15 Jan 2026 16:07:00 -0500 Subject: [PATCH 1/4] adapt to changed keys from pvlib perez function https://github.com/pvlib/pvlib-python/pull/2627 --- pvfactors/irradiance/utils.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/pvfactors/irradiance/utils.py b/pvfactors/irradiance/utils.py index b25a582..93a5ae7 100644 --- a/pvfactors/irradiance/utils.py +++ b/pvfactors/irradiance/utils.py @@ -114,24 +114,18 @@ def perez_diffuse_luminance(timestamps, surface_tilt, surface_azimuth, # Calculate diffuse luminance luminance = pd.DataFrame( np.array([ - components['horizon'] / vf_perez['vf_horizon'], - components['circumsolar'] / vf_perez['vf_circumsolar'], - components['isotropic'] / vf_perez['vf_isotropic'] + components['poa_horizon'] / vf_perez['vf_horizon'], + components['poa_circumsolar'] / vf_perez['vf_circumsolar'], + components['poa_isotropic'] / vf_perez['vf_isotropic'] ]).T, index=df_inputs.index, columns=['luminance_horizon', 'luminance_circumsolar', 'luminance_isotropic'] ) - luminance.loc[components['sky_diffuse'] == 0, :] = 0. - - # Format components column names - components = components.rename(columns={'isotropic': 'poa_isotropic', - 'circumsolar': 'poa_circumsolar', - 'horizon': 'poa_horizon'}) + luminance.loc[components['poa_sky_diffuse'] == 0, :] = 0. df_inputs = pd.concat([df_inputs, components, vf_perez, luminance], axis=1, join='outer') - df_inputs = df_inputs.rename(columns={'sky_diffuse': 'poa_total_diffuse'}) # Adjust the circumsolar luminance when it hits the back surface if df_inputs_back_surface.shape[0] > 0: From 68e88e87a306d288fabc68ed73b84a6118415e7b Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Thu, 15 Jan 2026 16:10:39 -0500 Subject: [PATCH 2/4] whatsnew --- docs/sphinx/whatsnew/v1.6.1.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/sphinx/whatsnew/v1.6.1.rst b/docs/sphinx/whatsnew/v1.6.1.rst index 1cb2230..d367eb5 100644 --- a/docs/sphinx/whatsnew/v1.6.1.rst +++ b/docs/sphinx/whatsnew/v1.6.1.rst @@ -3,13 +3,17 @@ v1.6.1 (??) ========== +This release includes changes for compatibility with pvlib 0.14.0. + +Requirements +------------ +* pvlib >= 0.14.0 (:pull:`39`) Maintenance ----------- * Drop Python 3.8 and 3.9 support (:pull:`30`, :pull:`33`) * Add Python 3.14 support (:pull:`35`) - Documentation ------------- * Fixed typo in README. (:issue:`28`, :pull:`29`) From dc77a03d2f23d7604688679633419ec28bdb18d3 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Thu, 15 Jan 2026 16:13:16 -0500 Subject: [PATCH 3/4] retain compatibility with older pvlib --- docs/sphinx/whatsnew/v1.6.1.rst | 6 ++---- pvfactors/irradiance/utils.py | 6 ++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/sphinx/whatsnew/v1.6.1.rst b/docs/sphinx/whatsnew/v1.6.1.rst index d367eb5..48f91b7 100644 --- a/docs/sphinx/whatsnew/v1.6.1.rst +++ b/docs/sphinx/whatsnew/v1.6.1.rst @@ -3,11 +3,9 @@ v1.6.1 (??) ========== -This release includes changes for compatibility with pvlib 0.14.0. - -Requirements +Enhancements ------------ -* pvlib >= 0.14.0 (:pull:`39`) +* Compatibility with pvlib >=0.14.0. (:pull:`39`) Maintenance ----------- diff --git a/pvfactors/irradiance/utils.py b/pvfactors/irradiance/utils.py index 93a5ae7..9b80070 100644 --- a/pvfactors/irradiance/utils.py +++ b/pvfactors/irradiance/utils.py @@ -94,6 +94,12 @@ def perez_diffuse_luminance(timestamps, surface_tilt, surface_azimuth, am, return_components=True) + # compatibility with pvlib<0.14.0 + components = components.rename(columns={'isotropic': 'poa_isotropic', + 'circumsolar': 'poa_circumsolar', + 'horizon': 'poa_horizon', + 'sky_diffuse': 'poa_sky_diffuse'}) + # Calculate Perez view factors: a = irradiance.aoi_projection( df_inputs.surface_tilt, From cb755a0a7bdacc3dcb72425477024dbaacee33f4 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Thu, 15 Jan 2026 16:22:56 -0500 Subject: [PATCH 4/4] fix mistake --- pvfactors/irradiance/utils.py | 1 + 1 file changed, 1 insertion(+) diff --git a/pvfactors/irradiance/utils.py b/pvfactors/irradiance/utils.py index 9b80070..7200085 100644 --- a/pvfactors/irradiance/utils.py +++ b/pvfactors/irradiance/utils.py @@ -132,6 +132,7 @@ def perez_diffuse_luminance(timestamps, surface_tilt, surface_azimuth, df_inputs = pd.concat([df_inputs, components, vf_perez, luminance], axis=1, join='outer') + df_inputs = df_inputs.rename(columns={'poa_sky_diffuse': 'poa_total_diffuse'}) # Adjust the circumsolar luminance when it hits the back surface if df_inputs_back_surface.shape[0] > 0: