From 7507ac19a85ea481c278247f1407ef7b9a7951bf Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 20 Apr 2026 11:10:26 -0400 Subject: [PATCH 01/11] miscellaneous RST fixes --- .../source/user_guide/extras/nomenclature.rst | 3 +++ .../source/user_guide/modeling_topics/iam.rst | 2 +- docs/sphinx/source/whatsnew/v0.15.1.rst | 20 +++---------------- pvlib/tracking.py | 2 +- 4 files changed, 8 insertions(+), 19 deletions(-) diff --git a/docs/sphinx/source/user_guide/extras/nomenclature.rst b/docs/sphinx/source/user_guide/extras/nomenclature.rst index 2bfab1aea3..9507680e7e 100644 --- a/docs/sphinx/source/user_guide/extras/nomenclature.rst +++ b/docs/sphinx/source/user_guide/extras/nomenclature.rst @@ -106,6 +106,9 @@ There is a convention on consistent variable names throughout the library: gri Ground-reflected irradiance + iam + Incidence angle modifier + i_sc Short circuit module current diff --git a/docs/sphinx/source/user_guide/modeling_topics/iam.rst b/docs/sphinx/source/user_guide/modeling_topics/iam.rst index ecd591133e..800025bed6 100644 --- a/docs/sphinx/source/user_guide/modeling_topics/iam.rst +++ b/docs/sphinx/source/user_guide/modeling_topics/iam.rst @@ -15,7 +15,7 @@ the reduction at normal incidence is implicit in the PV module's power rating and does not need to be accounted for separately in a performance model. Therefore, only the extra reduction at non-normal incidence should be modeled. -This is done using incidence angle modififer (:term:`IAM`) models. +This is done using incidence angle modififer (:term:`IAM `) models. Conceptually, IAM is the fraction of incident light that is transmitted to the PV cell, normalized to the fraction transmitted at normal incidence: diff --git a/docs/sphinx/source/whatsnew/v0.15.1.rst b/docs/sphinx/source/whatsnew/v0.15.1.rst index d5ea67b355..3052438f5f 100644 --- a/docs/sphinx/source/whatsnew/v0.15.1.rst +++ b/docs/sphinx/source/whatsnew/v0.15.1.rst @@ -1,15 +1,8 @@ .. _whatsnew_0_15_1: -v0.15.1 (Anticipated March 2026) --------------------------------- - -Breaking Changes -~~~~~~~~~~~~~~~~ - - -Deprecations -~~~~~~~~~~~~ +v0.15.1 (Anticipated April 20, 2026) +------------------------------------ Bug fixes @@ -35,7 +28,7 @@ Enhancements (:issue:`2714`, :pull:`2715`) * Include `ross` and `faiman_rad` in the allowed models within :py:meth:`pvlib.pvsystem.PVSystem.get_cell_temperature` (:issue:`2625`, :pull:`2631`) -* Accelerate the internals of :py:func:`~pvlib.solarpostion.ephemeris`. (:pull:`2626`) +* Accelerate the internals of :py:func:`~pvlib.solarposition.ephemeris`. (:pull:`2626`) * Accelerate the intervals of :py:func:`~pvlib.pvsystem.singlediode` when `method='lambertw'`. (:pull:`2732`, :pull:`2723`) * :py:func:`~pvlib.tracking.singleaxis` accepts negative values for @@ -74,13 +67,6 @@ Testing produces consistent results for vectorized and scalar inputs. (:issue:`2649`, :pull:`2661`) -Benchmarking -~~~~~~~~~~~~ - - -Requirements -~~~~~~~~~~~~ - Maintenance ~~~~~~~~~~~ diff --git a/pvlib/tracking.py b/pvlib/tracking.py index 07cc9a709e..defa7c5223 100644 --- a/pvlib/tracking.py +++ b/pvlib/tracking.py @@ -45,7 +45,7 @@ def singleaxis(apparent_zenith, solar_azimuth, The tilt of the axis of rotation (i.e, the y-axis defined by ``axis_azimuth``) with respect to horizontal (degrees). Positive ``axis_tilt`` is *downward* in the direction of ``axis_azimuth``. For - example, for a tracker with ``axis_azimuth``=180 and ``axis_tilt``=10, + example, for a tracker with ``axis_azimuth=180``and ``axis_tilt=10``, the north end is higher than the south end of the axis. axis_azimuth : float, default 0 From 52d0949bd04729f4ff5611ad1903cf1db86884ea Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 20 Apr 2026 11:33:14 -0400 Subject: [PATCH 02/11] add missing contributors --- docs/sphinx/source/whatsnew/v0.15.1.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/sphinx/source/whatsnew/v0.15.1.rst b/docs/sphinx/source/whatsnew/v0.15.1.rst index 3052438f5f..6144ea0dfd 100644 --- a/docs/sphinx/source/whatsnew/v0.15.1.rst +++ b/docs/sphinx/source/whatsnew/v0.15.1.rst @@ -90,4 +90,8 @@ Contributors * Jean-Baptiste Pasquier (:ghuser:`pasquierjb`) * Rodrigo Amaro e Silva (:ghuser:`ramaroesilva`) * James Fulton (:ghuser:`dfulu`) - +* Will Holmgren (:ghuser:`wholmgren`) +* Mark Campanelli (:ghuser:`markcampanelli`) +* Chirag Sharma (:ghuser:`Chirag3841`) +* Will Hobbs (:ghuser:`williamhobbs`) +* Adam R. Jensen (:ghuser:`adamrjensen`) From b868374cfce6d62c0feb6856bac69fa022d0375f Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 20 Apr 2026 11:49:47 -0400 Subject: [PATCH 03/11] whatsnew tweak --- docs/sphinx/source/whatsnew/v0.15.1.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/sphinx/source/whatsnew/v0.15.1.rst b/docs/sphinx/source/whatsnew/v0.15.1.rst index 6144ea0dfd..31c3db997d 100644 --- a/docs/sphinx/source/whatsnew/v0.15.1.rst +++ b/docs/sphinx/source/whatsnew/v0.15.1.rst @@ -1,8 +1,8 @@ .. _whatsnew_0_15_1: -v0.15.1 (Anticipated April 20, 2026) ------------------------------------- +v0.15.1 (April 20, 2026) +------------------------ Bug fixes From dc6e849b11ec1ab492df38a81260df135cfd0ab1 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 20 Apr 2026 13:27:57 -0400 Subject: [PATCH 04/11] fix typo --- docs/sphinx/source/user_guide/modeling_topics/iam.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/sphinx/source/user_guide/modeling_topics/iam.rst b/docs/sphinx/source/user_guide/modeling_topics/iam.rst index 800025bed6..3097164604 100644 --- a/docs/sphinx/source/user_guide/modeling_topics/iam.rst +++ b/docs/sphinx/source/user_guide/modeling_topics/iam.rst @@ -74,7 +74,7 @@ following table: +-------------------------------------------+---------+-------------------------------------------+ | :py:func:`~pvlib.iam.schlick` | direct | Does not take module-specific parameters | +-------------------------------------------+---------+-------------------------------------------+ -| :py:func:`~pvlib.iam.schlick_diffuse` | diffuse | Does not take module-specific parmaeters | +| :py:func:`~pvlib.iam.schlick_diffuse` | diffuse | Does not take module-specific parameters | +-------------------------------------------+---------+-------------------------------------------+ In addition to the core models above, pvlib provides several other functions From 7023b6929e130bf8beb2d466f302837ea304eea9 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 20 Apr 2026 15:02:19 -0400 Subject: [PATCH 05/11] Apply suggestions from code review Co-authored-by: Echedey Luis <80125792+echedey-ls@users.noreply.github.com> --- docs/sphinx/source/whatsnew/v0.15.1.rst | 22 +++++++++++++--------- pvlib/tracking.py | 2 +- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/docs/sphinx/source/whatsnew/v0.15.1.rst b/docs/sphinx/source/whatsnew/v0.15.1.rst index 31c3db997d..7b24e0464f 100644 --- a/docs/sphinx/source/whatsnew/v0.15.1.rst +++ b/docs/sphinx/source/whatsnew/v0.15.1.rst @@ -17,27 +17,28 @@ Bug fixes nrel.gov. (:issue:`2701`, :pull:`2705`) * Fix a bug in :py:func:`pvlib.iotools.era5._m_to_cm` where meters were incorrectly divided by 100 instead of multiplied, causing precipitations to be - underestimated by a factor of 10,000 when ``map_variables=True``. +* Fix a bug in :py:func:`pvlib.iotools.get_era5` where conversion of + precipitation in meters to ``cm`` was underestimated by a factor of 10,000 when ``map_variables=True``. (:issue:`2724`, :pull:`2725`) Enhancements ~~~~~~~~~~~~ -* Use ``k`` and ``cap_adjustment`` from :py:func:`pvlib.pvsystem.Array.module_parameters` +* Use ``k`` and ``cap_adjustment`` from :py:attr:`pvlib.pvsystem.Array.module_parameters` in :py:func:`pvlib.pvsystem.PVSystem.pvwatts_dc` (:issue:`2714`, :pull:`2715`) -* Include `ross` and `faiman_rad` in the allowed models within +* Include ``ross`` and ``faiman_rad`` in the allowed models within :py:meth:`pvlib.pvsystem.PVSystem.get_cell_temperature` (:issue:`2625`, :pull:`2631`) * Accelerate the internals of :py:func:`~pvlib.solarposition.ephemeris`. (:pull:`2626`) * Accelerate the intervals of :py:func:`~pvlib.pvsystem.singlediode` when - `method='lambertw'`. (:pull:`2732`, :pull:`2723`) + ``method='lambertw'``. (:pull:`2732`, :pull:`2723`) * :py:func:`~pvlib.tracking.singleaxis` accepts negative values for - parameter `axis_tilt`. (:pull:`2702`, :issue:`1976`) + parameter ``axis_tilt``. (:pull:`2702`, :issue:`1976`) Documentation ~~~~~~~~~~~~~ -* Add examples for run_model_from_poa() and run_model_from_effective_irradiance() +* Add examples for :py:meth:`pvlib.modelchain.ModelChain.run_model_from_poa` and :py:meth:`~pvlib.modelchain.ModelChain.run_model_from_effective_irradiance` (:issue:`1043`, :pull:`2621`) * Add the following terms to the :ref:`nomenclature` page (:issue:`2564`, :pull:`2663`): @@ -45,14 +46,17 @@ Documentation - :term:`clearness_index` - :term:`clearsky_index` - :term:`aod` - - :term:`aod500` + - :term:`clearness_index` + - :term:`clearsky_index` + - :term:`aod` + - :term:`aod500` -* Provide an overview of IAM modeling functionality in :ref:`iam`. (:pull:`2683`) +* Add an overview of IAM modeling functionality in new documentation page :ref:`iam`. (:pull:`2683`) * Add AI checkbox to PR template, and auto-generate a comment on PRs from first-time contributors regarding AI and contributing guidelines. (:issue:`2617`, :pull:`2624`) * Update :py:class:`pvlib.pvsystem.PVSystem` docstring to state that - ``module_type`` is optional. +* Clarify :py:class:`pvlib.pvsystem.PVSystem` parameter ``module_type`` is optional. (:issue:`2634`, :pull:`2713`) * Fix a broken docstring reference to ``grounddiffuse`` in :py:func:`pvlib.irradiance.poa_components` diff --git a/pvlib/tracking.py b/pvlib/tracking.py index defa7c5223..de82f44ffa 100644 --- a/pvlib/tracking.py +++ b/pvlib/tracking.py @@ -45,7 +45,7 @@ def singleaxis(apparent_zenith, solar_azimuth, The tilt of the axis of rotation (i.e, the y-axis defined by ``axis_azimuth``) with respect to horizontal (degrees). Positive ``axis_tilt`` is *downward* in the direction of ``axis_azimuth``. For - example, for a tracker with ``axis_azimuth=180``and ``axis_tilt=10``, + example, for a tracker with ``axis_azimuth=180`` and ``axis_tilt=10``, the north end is higher than the south end of the axis. axis_azimuth : float, default 0 From 8da366c35534990ae0651748604149e4d2b9a253 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 20 Apr 2026 15:06:39 -0400 Subject: [PATCH 06/11] fixes and suggestions --- docs/sphinx/source/whatsnew/v0.15.1.rst | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/docs/sphinx/source/whatsnew/v0.15.1.rst b/docs/sphinx/source/whatsnew/v0.15.1.rst index 7b24e0464f..8655a31084 100644 --- a/docs/sphinx/source/whatsnew/v0.15.1.rst +++ b/docs/sphinx/source/whatsnew/v0.15.1.rst @@ -15,8 +15,6 @@ Bug fixes (:issue:`2645`, :pull:`2646`) * Update URLs in :py:mod:`pvlib.iotools.psm4` to use nlr.gov instead of nrel.gov. (:issue:`2701`, :pull:`2705`) -* Fix a bug in :py:func:`pvlib.iotools.era5._m_to_cm` where meters were - incorrectly divided by 100 instead of multiplied, causing precipitations to be * Fix a bug in :py:func:`pvlib.iotools.get_era5` where conversion of precipitation in meters to ``cm`` was underestimated by a factor of 10,000 when ``map_variables=True``. (:issue:`2724`, :pull:`2725`) @@ -32,8 +30,7 @@ Enhancements * Accelerate the internals of :py:func:`~pvlib.solarposition.ephemeris`. (:pull:`2626`) * Accelerate the intervals of :py:func:`~pvlib.pvsystem.singlediode` when ``method='lambertw'``. (:pull:`2732`, :pull:`2723`) -* :py:func:`~pvlib.tracking.singleaxis` accepts negative values for - parameter ``axis_tilt``. (:pull:`2702`, :issue:`1976`) +* Accept negative ``axis_tilt`` values in :py:func:`~pvlib.tracking.singleaxis`. (:pull:`2702`, :issue:`1976`) Documentation @@ -43,9 +40,6 @@ Documentation * Add the following terms to the :ref:`nomenclature` page (:issue:`2564`, :pull:`2663`): - - :term:`clearness_index` - - :term:`clearsky_index` - - :term:`aod` - :term:`clearness_index` - :term:`clearsky_index` - :term:`aod` From fd2a56c1a1c3cf81868722c134f4f0eb38bafb87 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 20 Apr 2026 15:06:58 -0400 Subject: [PATCH 07/11] fix typo --- docs/sphinx/source/whatsnew/v0.15.1.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/sphinx/source/whatsnew/v0.15.1.rst b/docs/sphinx/source/whatsnew/v0.15.1.rst index 8655a31084..baf3706c3e 100644 --- a/docs/sphinx/source/whatsnew/v0.15.1.rst +++ b/docs/sphinx/source/whatsnew/v0.15.1.rst @@ -28,7 +28,7 @@ Enhancements * Include ``ross`` and ``faiman_rad`` in the allowed models within :py:meth:`pvlib.pvsystem.PVSystem.get_cell_temperature` (:issue:`2625`, :pull:`2631`) * Accelerate the internals of :py:func:`~pvlib.solarposition.ephemeris`. (:pull:`2626`) -* Accelerate the intervals of :py:func:`~pvlib.pvsystem.singlediode` when +* Accelerate the internals of :py:func:`~pvlib.pvsystem.singlediode` when ``method='lambertw'``. (:pull:`2732`, :pull:`2723`) * Accept negative ``axis_tilt`` values in :py:func:`~pvlib.tracking.singleaxis`. (:pull:`2702`, :issue:`1976`) From 4b8f62c3f22d6b1729b26c4e8a81945d298f844c Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 20 Apr 2026 15:29:16 -0400 Subject: [PATCH 08/11] one more fix --- docs/sphinx/source/whatsnew/v0.15.1.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/sphinx/source/whatsnew/v0.15.1.rst b/docs/sphinx/source/whatsnew/v0.15.1.rst index baf3706c3e..6093ef0c16 100644 --- a/docs/sphinx/source/whatsnew/v0.15.1.rst +++ b/docs/sphinx/source/whatsnew/v0.15.1.rst @@ -49,7 +49,6 @@ Documentation * Add AI checkbox to PR template, and auto-generate a comment on PRs from first-time contributors regarding AI and contributing guidelines. (:issue:`2617`, :pull:`2624`) -* Update :py:class:`pvlib.pvsystem.PVSystem` docstring to state that * Clarify :py:class:`pvlib.pvsystem.PVSystem` parameter ``module_type`` is optional. (:issue:`2634`, :pull:`2713`) * Fix a broken docstring reference to ``grounddiffuse`` in From ff39de1719b252abf58116550550345d77e498b5 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Tue, 21 Apr 2026 09:54:34 -0400 Subject: [PATCH 09/11] fix spelling inconsistency in previous whatsnew file --- docs/sphinx/source/whatsnew/v0.15.0.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/sphinx/source/whatsnew/v0.15.0.rst b/docs/sphinx/source/whatsnew/v0.15.0.rst index 26da6bd210..856aa32bf1 100644 --- a/docs/sphinx/source/whatsnew/v0.15.0.rst +++ b/docs/sphinx/source/whatsnew/v0.15.0.rst @@ -1,8 +1,8 @@ .. _whatsnew_0_15_0: -v0.15.0 (Feb 3, 2026) ---------------------- +v0.15.0 (February 3, 2026) +-------------------------- Breaking Changes ~~~~~~~~~~~~~~~~ From 6f08d08d456f56eb9d296be6397b309dd0b2f0c2 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Tue, 21 Apr 2026 09:54:57 -0400 Subject: [PATCH 10/11] release date += 1 --- docs/sphinx/source/whatsnew/v0.15.1.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/sphinx/source/whatsnew/v0.15.1.rst b/docs/sphinx/source/whatsnew/v0.15.1.rst index 6093ef0c16..e8eb4fc748 100644 --- a/docs/sphinx/source/whatsnew/v0.15.1.rst +++ b/docs/sphinx/source/whatsnew/v0.15.1.rst @@ -1,7 +1,7 @@ .. _whatsnew_0_15_1: -v0.15.1 (April 20, 2026) +v0.15.1 (April 21, 2026) ------------------------ From 90924161a9b3558d0c502f5fe2251cbd78bfaf69 Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Tue, 21 Apr 2026 09:57:24 -0400 Subject: [PATCH 11/11] Update docs/sphinx/source/whatsnew/v0.15.1.rst --- docs/sphinx/source/whatsnew/v0.15.1.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/sphinx/source/whatsnew/v0.15.1.rst b/docs/sphinx/source/whatsnew/v0.15.1.rst index e8eb4fc748..c2f3a1de3c 100644 --- a/docs/sphinx/source/whatsnew/v0.15.1.rst +++ b/docs/sphinx/source/whatsnew/v0.15.1.rst @@ -43,6 +43,7 @@ Documentation - :term:`clearness_index` - :term:`clearsky_index` - :term:`aod` + - :term:`iam` - :term:`aod500` * Add an overview of IAM modeling functionality in new documentation page :ref:`iam`. (:pull:`2683`)