Skip to content

Commit 80c4491

Browse files
committed
update whats new v0.8.0
* with new side_slope arg in SingleAxisTracker class * add fix for low sun angle tracker rotation calculations (issue 824) * add links to pr 823 * ignore invalid warnings for nan > x and nan % x in tracking.py
1 parent 6ed62ff commit 80c4491

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

docs/sphinx/source/whatsnew/v0.8.0.rst

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -95,17 +95,19 @@ Enhancements
9595
:py:func:`~pvlib.tracking.calc_system_tracker_side_slope` to calculate the
9696
tracker axes tilt and the side-slope angle, which is perpendicular to the
9797
tracker axes for trackers on sloped terrain that is not parallel to the axes,
98-
such as a north-south tracker on an south-east slope.
99-
* Added `side_slope` argument to :py:func:`~pvlib.tracking.singleaxis` which
100-
defaults to zero, for use with
101-
:py:func:`~pvlib.tracking.calc_system_tracker_side_slope`
98+
such as a north-south tracker on an south-east slope. (:pull:`823`)
99+
* Added ``side_slope`` argument to :py:func:`~pvlib.tracking.singleaxis` and
100+
:py:func:`~pvlib.tracking.SingleAxisTracker` which defaults to zero. Use
101+
:py:func:`~pvlib.tracking.calc_system_tracker_side_slope` to calculate the
102+
side-slope angle if necessary. (:pull:`823`)
102103
* Added ability for :py:func:`pvlib.soiling.hsu` to accept arbitrary time intervals. (:pull:`980`)
103104

104105
Bug fixes
105106
~~~~~~~~~
106107
* Fixed unit and default value errors in :py:func:`pvlib.soiling.hsu`. (:pull:`977`, :pull:`980`)
107108
* Handle NUL characters and fix version column dtype in
108109
:py:func:`~pvlib.iotools.crn.read_crn`. (:issue:`1025`)
110+
* Fix low sun angle tracker rotation calculation. (:issue:`824`)
109111

110112
Testing
111113
~~~~~~~

pvlib/tracking.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,8 @@ def singleaxis(apparent_zenith, apparent_azimuth,
489489
# NOTE: in the middle of the day, arccos(temp) is out of range because
490490
# there's no row-to-row shade to avoid, & backtracking is unnecessary
491491
# Equations 15-16, ref [2]
492-
tracker_theta = wid + np.where(temp < 1, wc, 0)
492+
with np.errstate(invalid='ignore'):
493+
tracker_theta = wid + np.where(temp < 1, wc, 0)
493494
else:
494495
tracker_theta = wid
495496

@@ -604,7 +605,8 @@ def singleaxis(apparent_zenith, apparent_azimuth,
604605
# 5. Map azimuth into [0,360) domain.
605606
# surface_azimuth[surface_azimuth < 0] += 360
606607
# surface_azimuth[surface_azimuth >= 360] -= 360
607-
surface_azimuth = surface_azimuth % 360
608+
with np.errstate(invalid='ignore'):
609+
surface_azimuth = surface_azimuth % 360
608610

609611
# Calculate surface_tilt
610612
dotproduct = (panel_norm_earth * projected_normal).sum(axis=1)

0 commit comments

Comments
 (0)