Skip to content

Commit 0a8a432

Browse files
authored
Merge branch 'main' into irradiance_updates
2 parents acbac36 + 62eed1f commit 0a8a432

13 files changed

Lines changed: 90 additions & 55 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ Installation
7474
============
7575

7676
pvlib-python releases may be installed using the ``pip`` and ``conda`` tools.
77-
Please see the [Installation page](https://pvlib-python.readthedocs.io/en/stable/user_guide/installation.html) of the documentation for complete instructions.
77+
Please see the [Installation page](https://pvlib-python.readthedocs.io/en/stable/user_guide/getting_started/installation.html) of the documentation for complete instructions.
7878

7979

8080
Contributing

docs/examples/agrivoltaics/plot_agrivoltaics_ground_irradiance.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959

6060
tracking_orientations = pvlib.tracking.singleaxis(
6161
apparent_zenith=solpos['apparent_zenith'],
62-
apparent_azimuth=solpos['azimuth'],
62+
solar_azimuth=solpos['azimuth'],
6363
axis_azimuth=axis_azimuth,
6464
max_angle=max_angle,
6565
backtrack=True,

docs/examples/shading/plot_martinez_shade_loss.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@
9090

9191
tracking_result = pvlib.tracking.singleaxis(
9292
apparent_zenith=solar_apparent_zenith,
93-
apparent_azimuth=solar_azimuth,
93+
solar_azimuth=solar_azimuth,
9494
axis_tilt=axis_tilt,
9595
axis_azimuth=axis_azimuth,
9696
max_angle=(-90 + cross_axis_tilt, 90 + cross_axis_tilt), # (min, max)

docs/examples/solar-tracking/plot_single_axis_tracking.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
truetracking_angles = tracking.singleaxis(
3535
apparent_zenith=solpos['apparent_zenith'],
36-
apparent_azimuth=solpos['azimuth'],
36+
solar_azimuth=solpos['azimuth'],
3737
axis_tilt=0,
3838
axis_azimuth=180,
3939
max_angle=90,
@@ -61,7 +61,7 @@
6161
for gcr in [0.2, 0.4, 0.6]:
6262
backtracking_angles = tracking.singleaxis(
6363
apparent_zenith=solpos['apparent_zenith'],
64-
apparent_azimuth=solpos['azimuth'],
64+
solar_azimuth=solpos['azimuth'],
6565
axis_tilt=0,
6666
axis_azimuth=180,
6767
max_angle=90,

docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@
100100
for cross_axis_tilt in [0, 5, 10]:
101101
tracker_data = tracking.singleaxis(
102102
apparent_zenith=solpos['apparent_zenith'],
103-
apparent_azimuth=solpos['azimuth'],
103+
solar_azimuth=solpos['azimuth'],
104104
axis_tilt=0, # flat because the axis is perpendicular to the slope
105105
axis_azimuth=180, # N-S axis, azimuth facing south
106106
max_angle=90,
@@ -156,7 +156,7 @@
156156

157157
tracker_data = tracking.singleaxis(
158158
apparent_zenith=solpos['apparent_zenith'],
159-
apparent_azimuth=solpos['azimuth'],
159+
solar_azimuth=solpos['azimuth'],
160160
axis_tilt=axis_tilt, # no longer flat because the terrain imparts a tilt
161161
axis_azimuth=axis_azimuth,
162162
max_angle=90,

docs/sphinx/source/user_guide/extras/nomenclature.rst

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,24 @@ There is a convention on consistent variable names throughout the library:
2222

2323
aoi
2424
Angle of incidence. Angle between the surface normal vector and the
25-
vector pointing towards the suns center
25+
vector pointing towards the sun's center. [°]
2626

2727
aoi_projection
28-
cos(aoi)
28+
cos(aoi). When the sun is behind the surface, the value is negative.
29+
For many uses, negative values must be set to zero.
2930

3031
ape
3132
Average photon energy
3233

3334
apparent_zenith
34-
Refraction-corrected solar zenith angle in degrees
35+
Refraction-corrected solar zenith angle. The solar
36+
zenith angle describes the position of the sun relative to the vertical and is
37+
defined as the angle between a vector pointed straight up and a vector pointed
38+
at the sun, from the observer. [°]
39+
40+
apparent_elevation
41+
Refraction-corrected solar elevation angle. This is the complement of
42+
:term:`apparent_zenith` (90 - apparent_zenith). [°]
3543

3644
bhi
3745
Beam/direct horizontal irradiance
@@ -87,10 +95,10 @@ There is a convention on consistent variable names throughout the library:
8795
Sandia Array Performance Model IV curve parameters
8896

8997
latitude
90-
Latitude
98+
Latitude in decimal degrees. Positive north of equator, negative to south.
9199

92100
longitude
93-
Longitude
101+
Longitude in decimal degrees. Positive east of prime meridian, negative to west.
94102

95103
pac, ac
96104
AC power
@@ -141,10 +149,15 @@ There is a convention on consistent variable names throughout the library:
141149
Diode saturation current
142150

143151
solar_azimuth
144-
Azimuth angle of the sun in degrees East of North
152+
Azimuth angle of the sun in degrees East of North. The solar azimuth angle
153+
describes the sun’s position along the horizon relative to the observer.
154+
The pvlib-python convention is defined as degrees East of North, so
155+
North = 0°, East = 90°, South = 180°, West = 270°.
145156

146157
solar_zenith
147-
Zenith angle of the sun in degrees
158+
Zenith angle of the sun in degrees. This is the angle between is between a
159+
vector pointed straight up and a vector pointed at the sun, from the observer.
160+
This is the complement of solar elevation (90 - elevation). [°]
148161

149162
spectra
150163
spectra_components
@@ -154,11 +167,16 @@ There is a convention on consistent variable names throughout the library:
154167
is composed of direct and diffuse components.
155168

156169
surface_azimuth
157-
Azimuth angle of the surface
170+
Azimuth angle of the surface in degrees East of North. This angle describes the
171+
horizontal projection of the normal vector from the surface. The pvlib-python
172+
convention is defined as degrees East (clockwise) of North, so North = 0°,
173+
East = 90°, South = 180°, West = 270°.
158174

159175
surface_tilt
160-
Panel tilt from horizontal [°]. For example, a surface facing up = 0°,
161-
surface facing horizon = 90°.
176+
Tilt from horizontal [°]. The surface tilt angle
177+
is defined as degrees from the horizontal
178+
such that a surface facing up would have a surface tilt of 0°, and one facing
179+
the horizon would be 90°. [°]
162180

163181
temp_air
164182
Temperature of the air

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ Breaking Changes
1010

1111
Deprecations
1212
~~~~~~~~~~~~
13-
13+
* Rename parameter name ``aparent_azimuth`` to ``solar_azimuth`` in :py:func:`~pvlib.tracking.singleaxis`.
14+
(:issue:`2479`, :pull:`2480`)
1415

1516
Bug fixes
1617
~~~~~~~~~
@@ -26,6 +27,8 @@ Documentation
2627
parameter definitions from the nomenclature page, ensure consistent
2728
parameter description structure, add units to all parameters where required,
2829
and other miscellaneous edits. (:issue:`2205`, :issue:`2248`, :pull:`2311`)
30+
* Substantiate definitions of solar/surface azimuth/zenith and aoi on the
31+
:ref:`nomenclature` page. (:issue:`2448`, :pull:`2503`)
2932

3033

3134
Testing
@@ -48,4 +51,5 @@ Maintenance
4851
Contributors
4952
~~~~~~~~~~~~
5053
* Elijah Passmore (:ghuser:`eljpsm`)
51-
* Rajiv Daxini (:ghuser:`rdaxini`)
54+
* Rajiv Daxini (:ghuser:`RDaxini`)
55+
* Omar Bahamida (:ghuser:`OmarBahamida`)

pvlib/bifacial/pvfactors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""
22
The ``bifacial.pvfactors`` module contains functions for modeling back surface
3-
plane-of-array irradiance using an external implementaton of the pvfactors
3+
plane-of-array irradiance using an external implementation of the pvfactors
44
model (either ``solarfactors`` or the original ``pvfactors``).
55
"""
66

pvlib/ivtools/sdm/_fit_desoto_pvsyst_sandia.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ def _update_io(voc, iph, io, rs, rsh, nnsvth):
267267
.. [1] PVLib MATLAB https://github.com/sandialabs/MATLAB_PV_LIB
268268
.. [2] C. Hansen, Parameter Estimation for Single Diode Models of
269269
Photovoltaic Modules, Sandia National Laboratories Report SAND2015-2065
270-
.. [3] C. Hansen, Estimation of Parameteres for Single Diode Models using
270+
.. [3] C. Hansen, Estimation of Parameters for Single Diode Models using
271271
Measured IV Curves, Proc. of the 39th IEEE PVSC, June 2013.
272272
"""
273273

pvlib/modelchain.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
# 'cell_temperature' overrides ModelChain.temperature_model and sets
3232
# ModelChain.cell_temperature to the data. If 'module_temperature' is provided,
3333
# overrides ModelChain.temperature_model with
34-
# pvlib.temperature.sapm_celL_from_module
34+
# pvlib.temperature.sapm_cell_from_module
3535
TEMPERATURE_KEYS = ('module_temperature', 'cell_temperature')
3636

3737
DATA_KEYS = WEATHER_KEYS + POA_KEYS + TEMPERATURE_KEYS
@@ -46,7 +46,7 @@
4646
# for Flat-Plate Photovoltaic Arrays. SAND85-0330. Albuquerque, NM:
4747
# Sandia National Laboratories. Accessed September 3, 2013:
4848
# http://prod.sandia.gov/techlib/access-control.cgi/1985/850330.pdf
49-
# pvlib python does not implement that model, so use the SAPM instead.
49+
# pvlib-python does not implement that model, so it uses the SAPM instead.
5050
PVWATTS_CONFIG = dict(
5151
dc_model='pvwatts', ac_model='pvwatts', losses_model='pvwatts',
5252
transposition_model='perez', aoi_model='physical',
@@ -84,7 +84,7 @@ def get_orientation(strategy, **kwargs):
8484
surface_tilt = 0
8585
else:
8686
raise ValueError('invalid orientation strategy. strategy must '
87-
'be one of south_at_latitude, flat,')
87+
'be one of south_at_latitude_tilt, flat,')
8888

8989
return surface_tilt, surface_azimuth
9090

@@ -162,8 +162,8 @@ class ModelChainResult:
162162
# per DC array information
163163
total_irrad: Optional[PerArray[pd.DataFrame]] = field(default=None)
164164
""" DataFrame (or tuple of DataFrame, one for each array) containing
165-
columns ``'poa_global'``, ``'poa_direct'`` ``'poa_diffuse'``,
166-
``poa_sky_diffuse'``, ``'poa_ground_diffuse'`` (W/m2); see
165+
columns ``'poa_global'``, ``'poa_direct'``, ``'poa_diffuse'``,
166+
``poa_sky_diffuse'``, and ``'poa_ground_diffuse'`` (Wm⁻²); see
167167
:py:func:`~pvlib.irradiance.get_total_irradiance` for details.
168168
"""
169169

@@ -190,12 +190,12 @@ class ModelChainResult:
190190

191191
cell_temperature: Optional[PerArray[pd.Series]] = field(default=None)
192192
"""Series (or tuple of Series, one for each array) containing cell
193-
temperature (C).
193+
temperature (°C).
194194
"""
195195

196196
effective_irradiance: Optional[PerArray[pd.Series]] = field(default=None)
197197
"""Series (or tuple of Series, one for each array) containing effective
198-
irradiance (W/m2) which is total plane-of-array irradiance adjusted for
198+
irradiance (Wm⁻²) which is total plane-of-array irradiance adjusted for
199199
reflections and spectral content.
200200
"""
201201

@@ -215,12 +215,12 @@ class ModelChainResult:
215215

216216
dc_ohmic_losses: Optional[PerArray[pd.Series]] = field(default=None)
217217
"""Series (or tuple of Series, one for each array) containing DC ohmic
218-
loss (W) calculated by ``ModelChain.dc_ohmic_model``.
218+
losses (W) calculated by ``ModelChain.dc_ohmic_model``.
219219
"""
220220

221221
# copies of input data, for user convenience
222222
weather: Optional[PerArray[pd.DataFrame]] = None
223-
"""DataFrame (or tuple of DataFrame, one for each array) contains a
223+
"""DataFrame (or tuple of DataFrame, one for each array) containing a
224224
copy of the input weather data.
225225
"""
226226

@@ -806,7 +806,7 @@ def infer_aoi_model(self):
806806
'system.arrays[i].module_parameters. Check that '
807807
'the module_parameters for all Arrays in '
808808
'system.arrays contain parameters for the '
809-
'physical, aoi, ashrae, martin_ruiz or interp '
809+
'physical, sapm, ashrae, martin_ruiz or interp '
810810
'model; explicitly set the model with the '
811811
'aoi_model kwarg; or set aoi_model="no_loss".')
812812

0 commit comments

Comments
 (0)