From 3538194007e5a897861932d83a619397edd6e834 Mon Sep 17 00:00:00 2001 From: ChenYi-Nnergy Date: Mon, 28 Sep 2026 15:55:25 +0800 Subject: [PATCH 1/5] Clarify AOI-minimizing principle in tracking.singleaxis docstring --- pvlib/tracking.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/pvlib/tracking.py b/pvlib/tracking.py index e234887cd0..1ac4255106 100644 --- a/pvlib/tracking.py +++ b/pvlib/tracking.py @@ -18,6 +18,11 @@ def singleaxis(apparent_zenith, solar_azimuth, Determine the rotation angle of a single-axis tracker when given particular solar zenith and azimuth angles. + The rotation angle is chosen to minimize the angle of incidence (AOI) of + the sun's beam onto the panel, thereby maximizing the use of direct + normal irradiance (DNI). When backtracking is enabled, the rotation is + adjusted away from this AOI-minimizing angle to avoid row-to-row shading. + See [1]_ and [2]_ for details about the equations. Backtracking may be specified, in which case a ground coverage ratio is required. From 69d5a2648aa885da0fc08fb86194fadc8b1d538c Mon Sep 17 00:00:00 2001 From: ChenYi-Nnergy Date: Mon, 28 Sep 2026 15:55:52 +0800 Subject: [PATCH 2/5] Add files via upload --- docs/sphinx/source/whatsnew/v0.16.2.rst | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/sphinx/source/whatsnew/v0.16.2.rst b/docs/sphinx/source/whatsnew/v0.16.2.rst index f704525a12..636ba7bca4 100644 --- a/docs/sphinx/source/whatsnew/v0.16.2.rst +++ b/docs/sphinx/source/whatsnew/v0.16.2.rst @@ -22,6 +22,9 @@ Enhancements Documentation ~~~~~~~~~~~~~ +* Clarified in :py:func:`pvlib.tracking.singleaxis` that the tracker + rotation minimizes the angle of incidence (AOI) to maximize the use of + direct normal irradiance (DNI). (:issue:`2314`) Testing From e58e1d520997f128398241e8bd751f165095eaea Mon Sep 17 00:00:00 2001 From: ChenYi-Nnergy Date: Mon, 28 Sep 2026 23:41:07 +0800 Subject: [PATCH 3/5] Apply reviewer suggestions and add contributor tag --- docs/sphinx/source/whatsnew/v0.16.2.rst | 3 ++- pvlib/tracking.py | 8 ++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/docs/sphinx/source/whatsnew/v0.16.2.rst b/docs/sphinx/source/whatsnew/v0.16.2.rst index 636ba7bca4..4bd18c4507 100644 --- a/docs/sphinx/source/whatsnew/v0.16.2.rst +++ b/docs/sphinx/source/whatsnew/v0.16.2.rst @@ -24,7 +24,7 @@ Documentation ~~~~~~~~~~~~~ * Clarified in :py:func:`pvlib.tracking.singleaxis` that the tracker rotation minimizes the angle of incidence (AOI) to maximize the use of - direct normal irradiance (DNI). (:issue:`2314`) + direct normal irradiance (DNI). (:issue:`2314`) (:pull:`2869`) Testing @@ -46,3 +46,4 @@ Maintenance Contributors ~~~~~~~~~~~~ +* Chen Yi (:ghuser:`chenyi6758-source`) diff --git a/pvlib/tracking.py b/pvlib/tracking.py index 1ac4255106..404fc80cb4 100644 --- a/pvlib/tracking.py +++ b/pvlib/tracking.py @@ -20,11 +20,11 @@ def singleaxis(apparent_zenith, solar_azimuth, The rotation angle is chosen to minimize the angle of incidence (AOI) of the sun's beam onto the panel, thereby maximizing the use of direct - normal irradiance (DNI). When backtracking is enabled, the rotation is - adjusted away from this AOI-minimizing angle to avoid row-to-row shading. + normal irradiance (DNI). Backtracking may be specified, in which case + a ground coverage ratio is required. When backtracking, the rotation is + adjusted away from the AOI-minimizing angle to avoid row-to-row shading. - See [1]_ and [2]_ for details about the equations. Backtracking may be - specified, in which case a ground coverage ratio is required. + See [1]_ and [2]_ for details about the equations. Rotation angle is determined in a right-handed coordinate system. The tracker ``axis_azimuth`` defines the positive y-axis, the positive x-axis From a8bfe66e1cc6b4224e8425d8e6c2fc120a9c08b4 Mon Sep 17 00:00:00 2001 From: ChenYi-Nnergy Date: Mon, 5 Oct 2026 09:57:04 +0800 Subject: [PATCH 4/5] Remove trailing whitespace (fix flake8 W291) --- pvlib/tracking.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pvlib/tracking.py b/pvlib/tracking.py index 404fc80cb4..5c8922144c 100644 --- a/pvlib/tracking.py +++ b/pvlib/tracking.py @@ -24,7 +24,7 @@ def singleaxis(apparent_zenith, solar_azimuth, a ground coverage ratio is required. When backtracking, the rotation is adjusted away from the AOI-minimizing angle to avoid row-to-row shading. - See [1]_ and [2]_ for details about the equations. + See [1]_ and [2]_ for details about the equations. Rotation angle is determined in a right-handed coordinate system. The tracker ``axis_azimuth`` defines the positive y-axis, the positive x-axis From e3911042241a37c356a3493d36f232626c1d30aa Mon Sep 17 00:00:00 2001 From: Kevin Anderson Date: Mon, 5 Oct 2026 10:13:06 +0200 Subject: [PATCH 5/5] Apply suggestion from @RDaxini Co-authored-by: Rajiv Daxini <143435106+RDaxini@users.noreply.github.com> --- docs/sphinx/source/whatsnew/v0.16.2.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/sphinx/source/whatsnew/v0.16.2.rst b/docs/sphinx/source/whatsnew/v0.16.2.rst index 4bd18c4507..b43e21ac47 100644 --- a/docs/sphinx/source/whatsnew/v0.16.2.rst +++ b/docs/sphinx/source/whatsnew/v0.16.2.rst @@ -24,7 +24,7 @@ Documentation ~~~~~~~~~~~~~ * Clarified in :py:func:`pvlib.tracking.singleaxis` that the tracker rotation minimizes the angle of incidence (AOI) to maximize the use of - direct normal irradiance (DNI). (:issue:`2314`) (:pull:`2869`) + direct normal irradiance (DNI). (:issue:`2314`, :pull:`2869`) Testing