pvlib 0.10.3__py3-none-any.whl → 0.10.5__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. pvlib/__init__.py +1 -0
  2. pvlib/bifacial/utils.py +2 -1
  3. pvlib/clearsky.py +7 -8
  4. pvlib/iam.py +3 -3
  5. pvlib/inverter.py +3 -3
  6. pvlib/iotools/__init__.py +2 -0
  7. pvlib/iotools/solargis.py +214 -0
  8. pvlib/iotools/solcast.py +2 -7
  9. pvlib/iotools/solrad.py +121 -23
  10. pvlib/iotools/srml.py +12 -12
  11. pvlib/iotools/surfrad.py +2 -2
  12. pvlib/irradiance.py +28 -22
  13. pvlib/location.py +3 -1
  14. pvlib/modelchain.py +10 -9
  15. pvlib/pvarray.py +127 -0
  16. pvlib/pvsystem.py +52 -43
  17. pvlib/scaling.py +4 -2
  18. pvlib/shading.py +110 -0
  19. pvlib/singlediode.py +37 -9
  20. pvlib/snow.py +3 -1
  21. pvlib/solarposition.py +38 -30
  22. pvlib/spa.py +3 -11
  23. pvlib/spectrum/mismatch.py +2 -1
  24. pvlib/temperature.py +3 -2
  25. pvlib/tests/bifacial/test_utils.py +6 -5
  26. pvlib/tests/conftest.py +13 -14
  27. pvlib/tests/iotools/test_sodapro.py +2 -1
  28. pvlib/tests/iotools/test_solargis.py +68 -0
  29. pvlib/tests/iotools/test_solcast.py +2 -2
  30. pvlib/tests/iotools/test_solrad.py +58 -7
  31. pvlib/tests/iotools/test_srml.py +7 -14
  32. pvlib/tests/test_clearsky.py +1 -1
  33. pvlib/tests/test_irradiance.py +24 -8
  34. pvlib/tests/test_location.py +1 -1
  35. pvlib/tests/test_modelchain.py +37 -26
  36. pvlib/tests/test_pvarray.py +25 -0
  37. pvlib/tests/test_pvsystem.py +76 -104
  38. pvlib/tests/test_shading.py +130 -11
  39. pvlib/tests/test_singlediode.py +68 -10
  40. pvlib/tests/test_snow.py +1 -1
  41. pvlib/tests/test_solarposition.py +121 -7
  42. pvlib/tests/test_spa.py +5 -15
  43. pvlib/tests/test_temperature.py +4 -4
  44. pvlib/tests/test_tracking.py +2 -2
  45. pvlib/tracking.py +8 -38
  46. pvlib/version.py +1 -5
  47. {pvlib-0.10.3.dist-info → pvlib-0.10.5.dist-info}/METADATA +9 -33
  48. {pvlib-0.10.3.dist-info → pvlib-0.10.5.dist-info}/RECORD +52 -51
  49. {pvlib-0.10.3.dist-info → pvlib-0.10.5.dist-info}/WHEEL +1 -1
  50. pvlib/spa_c_files/SPA_NOTICE.md +0 -39
  51. {pvlib-0.10.3.dist-info → pvlib-0.10.5.dist-info}/AUTHORS.md +0 -0
  52. {pvlib-0.10.3.dist-info → pvlib-0.10.5.dist-info}/LICENSE +0 -0
  53. {pvlib-0.10.3.dist-info → pvlib-0.10.5.dist-info}/top_level.txt +0 -0
@@ -12,12 +12,13 @@ import pytest
12
12
  from pvlib.location import Location
13
13
  from pvlib import solarposition, spa
14
14
 
15
- from .conftest import requires_ephem, requires_spa_c, requires_numba
16
-
15
+ from .conftest import (
16
+ requires_ephem, requires_spa_c, requires_numba, requires_pandas_2_0
17
+ )
17
18
 
18
19
  # setup times and locations to be tested.
19
20
  times = pd.date_range(start=datetime.datetime(2014, 6, 24),
20
- end=datetime.datetime(2014, 6, 26), freq='15Min')
21
+ end=datetime.datetime(2014, 6, 26), freq='15min')
21
22
 
22
23
  tus = Location(32.2, -111, 'US/Arizona', 700) # no DST issues possible
23
24
  times_localized = times.tz_localize(tus.tz)
@@ -546,7 +547,7 @@ def test_nrel_earthsun_distance():
546
547
 
547
548
  def test_equation_of_time():
548
549
  times = pd.date_range(start="1/1/2015 0:00", end="12/31/2015 23:00",
549
- freq="H")
550
+ freq="h")
550
551
  output = solarposition.spa_python(times, 37.8, -122.25, 100)
551
552
  eot = output['equation_of_time']
552
553
  eot_rng = eot.max() - eot.min() # range of values, around 30 minutes
@@ -558,7 +559,7 @@ def test_equation_of_time():
558
559
 
559
560
  def test_declination():
560
561
  times = pd.date_range(start="1/1/2015 0:00", end="12/31/2015 23:00",
561
- freq="H")
562
+ freq="h")
562
563
  atmos_refract = 0.5667
563
564
  delta_t = spa.calculate_deltat(times.year, times.month)
564
565
  unixtime = np.array([calendar.timegm(t.timetuple()) for t in times])
@@ -577,7 +578,7 @@ def test_declination():
577
578
 
578
579
  def test_analytical_zenith():
579
580
  times = pd.date_range(start="1/1/2015 0:00", end="12/31/2015 23:00",
580
- freq="H").tz_localize('Etc/GMT+8')
581
+ freq="h").tz_localize('Etc/GMT+8')
581
582
  lat, lon = 37.8, -122.25
582
583
  lat_rad = np.deg2rad(lat)
583
584
  output = solarposition.spa_python(times, lat, lon, 100)
@@ -598,7 +599,7 @@ def test_analytical_zenith():
598
599
 
599
600
  def test_analytical_azimuth():
600
601
  times = pd.date_range(start="1/1/2015 0:00", end="12/31/2015 23:00",
601
- freq="H").tz_localize('Etc/GMT+8')
602
+ freq="h").tz_localize('Etc/GMT+8')
602
603
  lat, lon = 37.8, -122.25
603
604
  lat_rad = np.deg2rad(lat)
604
605
  output = solarposition.spa_python(times, lat, lon, 100)
@@ -717,6 +718,119 @@ def test_sun_rise_set_transit_geometric(expected_rise_set_spa, golden_mst):
717
718
  atol=np.abs(expected_transit_error).max())
718
719
 
719
720
 
721
+ @pytest.mark.parametrize('tz', [None, 'utc', 'US/Eastern'])
722
+ def test__datetime_to_unixtime(tz):
723
+ # for pandas < 2.0 where "unit" doesn't exist in pd.date_range. note that
724
+ # unit of ns is the only option in pandas<2, and the default in pandas 2.x
725
+ times = pd.date_range(start='2019-01-01', freq='h', periods=3, tz=tz)
726
+ expected = times.view(np.int64)/10**9
727
+ actual = solarposition._datetime_to_unixtime(times)
728
+ np.testing.assert_equal(expected, actual)
729
+
730
+
731
+ @requires_pandas_2_0
732
+ @pytest.mark.parametrize('unit', ['ns', 'us', 's'])
733
+ @pytest.mark.parametrize('tz', [None, 'utc', 'US/Eastern'])
734
+ def test__datetime_to_unixtime_units(unit, tz):
735
+ kwargs = dict(start='2019-01-01', freq='h', periods=3)
736
+ times = pd.date_range(**kwargs, unit='ns', tz='UTC')
737
+ expected = times.view(np.int64)/10**9
738
+
739
+ times = pd.date_range(**kwargs, unit=unit, tz='UTC').tz_convert(tz)
740
+ actual = solarposition._datetime_to_unixtime(times)
741
+ np.testing.assert_equal(expected, actual)
742
+
743
+
744
+ @requires_pandas_2_0
745
+ @pytest.mark.parametrize('method', [
746
+ 'nrel_numpy',
747
+ 'ephemeris',
748
+ pytest.param('pyephem', marks=requires_ephem),
749
+ pytest.param('nrel_numba', marks=requires_numba),
750
+ pytest.param('nrel_c', marks=requires_spa_c),
751
+ ])
752
+ @pytest.mark.parametrize('tz', [None, 'utc', 'US/Eastern'])
753
+ def test_get_solarposition_microsecond_index(method, tz):
754
+ # https://github.com/pvlib/pvlib-python/issues/1932
755
+
756
+ kwargs = dict(start='2019-01-01', freq='h', periods=24, tz=tz)
757
+
758
+ index_ns = pd.date_range(unit='ns', **kwargs)
759
+ index_us = pd.date_range(unit='us', **kwargs)
760
+
761
+ sp_ns = solarposition.get_solarposition(index_ns, 40, -80, method=method)
762
+ sp_us = solarposition.get_solarposition(index_us, 40, -80, method=method)
763
+
764
+ assert_frame_equal(sp_ns, sp_us, check_index_type=False)
765
+
766
+
767
+ @requires_pandas_2_0
768
+ @pytest.mark.parametrize('tz', [None, 'utc', 'US/Eastern'])
769
+ def test_nrel_earthsun_distance_microsecond_index(tz):
770
+ # https://github.com/pvlib/pvlib-python/issues/1932
771
+
772
+ kwargs = dict(start='2019-01-01', freq='h', periods=24, tz=tz)
773
+
774
+ index_ns = pd.date_range(unit='ns', **kwargs)
775
+ index_us = pd.date_range(unit='us', **kwargs)
776
+
777
+ esd_ns = solarposition.nrel_earthsun_distance(index_ns)
778
+ esd_us = solarposition.nrel_earthsun_distance(index_us)
779
+
780
+ assert_series_equal(esd_ns, esd_us, check_index_type=False)
781
+
782
+
783
+ @requires_pandas_2_0
784
+ @pytest.mark.parametrize('tz', [None, 'utc', 'US/Eastern'])
785
+ def test_hour_angle_microsecond_index(tz):
786
+ # https://github.com/pvlib/pvlib-python/issues/1932
787
+
788
+ kwargs = dict(start='2019-01-01', freq='h', periods=24, tz=tz)
789
+
790
+ index_ns = pd.date_range(unit='ns', **kwargs)
791
+ index_us = pd.date_range(unit='us', **kwargs)
792
+
793
+ ha_ns = solarposition.hour_angle(index_ns, -80, 0)
794
+ ha_us = solarposition.hour_angle(index_us, -80, 0)
795
+
796
+ np.testing.assert_equal(ha_ns, ha_us)
797
+
798
+
799
+ @requires_pandas_2_0
800
+ @pytest.mark.parametrize('tz', ['utc', 'US/Eastern'])
801
+ def test_rise_set_transit_spa_microsecond_index(tz):
802
+ # https://github.com/pvlib/pvlib-python/issues/1932
803
+
804
+ kwargs = dict(start='2019-01-01', freq='h', periods=24, tz=tz)
805
+
806
+ index_ns = pd.date_range(unit='ns', **kwargs)
807
+ index_us = pd.date_range(unit='us', **kwargs)
808
+
809
+ rst_ns = solarposition.sun_rise_set_transit_spa(index_ns, 40, -80)
810
+ rst_us = solarposition.sun_rise_set_transit_spa(index_us, 40, -80)
811
+
812
+ assert_frame_equal(rst_ns, rst_us, check_index_type=False)
813
+
814
+
815
+ @requires_pandas_2_0
816
+ @pytest.mark.parametrize('tz', [None, 'utc', 'US/Eastern'])
817
+ def test_rise_set_transit_geometric_microsecond_index(tz):
818
+ # https://github.com/pvlib/pvlib-python/issues/1932
819
+
820
+ kwargs = dict(start='2019-01-01', freq='h', periods=24, tz=tz)
821
+
822
+ index_ns = pd.date_range(unit='ns', **kwargs)
823
+ index_us = pd.date_range(unit='us', **kwargs)
824
+
825
+ args = (40, -80, 0, 0)
826
+ rst_ns = solarposition.sun_rise_set_transit_geometric(index_ns, *args)
827
+ rst_us = solarposition.sun_rise_set_transit_geometric(index_us, *args)
828
+
829
+ for times_ns, times_us in zip(rst_ns, rst_us):
830
+ # can't use a fancy assert function here since the units are different
831
+ assert all(times_ns == times_us)
832
+
833
+
720
834
  # put numba tests at end of file to minimize reloading
721
835
 
722
836
  @requires_numba
pvlib/tests/test_spa.py CHANGED
@@ -15,15 +15,7 @@ from numpy.testing import assert_almost_equal
15
15
  import pandas as pd
16
16
 
17
17
  import unittest
18
- import pytest
19
-
20
-
21
- try:
22
- from numba import __version__ as numba_version
23
- numba_version_int = int(numba_version.split('.')[0] +
24
- numba_version.split('.')[1])
25
- except ImportError:
26
- numba_version_int = 0
18
+ from .conftest import requires_numba
27
19
 
28
20
 
29
21
  times = (pd.date_range('2003-10-17 12:30:30', periods=1, freq='D')
@@ -390,17 +382,15 @@ class NumpySpaTest(unittest.TestCase, SpaBase):
390
382
  assert_almost_equal(JD, self.spa.julian_day(unixtimes)[0], 6)
391
383
 
392
384
 
393
- @pytest.mark.skipif(numba_version_int < 17,
394
- reason='Numba not installed or version not >= 0.17.0')
385
+ @requires_numba
395
386
  class NumbaSpaTest(unittest.TestCase, SpaBase):
396
387
  """Import spa, compiling to numba, and run tests"""
397
388
  @classmethod
398
389
  def setUpClass(self):
399
390
  os.environ['PVLIB_USE_NUMBA'] = '1'
400
- if numba_version_int >= 17:
401
- import pvlib.spa as spa
402
- spa = reload(spa)
403
- self.spa = spa
391
+ import pvlib.spa as spa
392
+ spa = reload(spa)
393
+ self.spa = spa
404
394
 
405
395
  @classmethod
406
396
  def tearDownClass(self):
@@ -52,7 +52,7 @@ def test_sapm_ndarray(sapm_default):
52
52
 
53
53
 
54
54
  def test_sapm_series(sapm_default):
55
- times = pd.date_range(start='2015-01-01', end='2015-01-02', freq='12H')
55
+ times = pd.date_range(start='2015-01-01', end='2015-01-02', freq='12h')
56
56
  temps = pd.Series([0, 10, 5], index=times)
57
57
  irrads = pd.Series([0, 500, 0], index=times)
58
58
  winds = pd.Series([10, 5, 0], index=times)
@@ -89,7 +89,7 @@ def test_pvsyst_cell_ndarray():
89
89
 
90
90
 
91
91
  def test_pvsyst_cell_series():
92
- times = pd.date_range(start="2015-01-01", end="2015-01-02", freq="12H")
92
+ times = pd.date_range(start="2015-01-01", end="2015-01-02", freq="12h")
93
93
  temps = pd.Series([0, 10, 5], index=times)
94
94
  irrads = pd.Series([0, 500, 0], index=times)
95
95
  winds = pd.Series([10, 5, 0], index=times)
@@ -161,7 +161,7 @@ def test_ross():
161
161
 
162
162
 
163
163
  def test_faiman_series():
164
- times = pd.date_range(start="2015-01-01", end="2015-01-02", freq="12H")
164
+ times = pd.date_range(start="2015-01-01", end="2015-01-02", freq="12h")
165
165
  temps = pd.Series([0, 10, 5], index=times)
166
166
  irrads = pd.Series([0, 500, 0], index=times)
167
167
  winds = pd.Series([10, 5, 0], index=times)
@@ -255,7 +255,7 @@ def test_noct_sam():
255
255
  np.array(module_efficiency))
256
256
  assert_allclose(result, expected)
257
257
  dr = pd.date_range(start='2020-01-01 12:00:00', end='2020-01-01 13:00:00',
258
- freq='1H')
258
+ freq='1h')
259
259
  result = temperature.noct_sam(pd.Series(index=dr, data=poa_global),
260
260
  pd.Series(index=dr, data=temp_air),
261
261
  pd.Series(index=dr, data=wind_speed),
@@ -316,7 +316,7 @@ def test_calc_axis_tilt():
316
316
  starttime = '2017-01-01T00:30:00-0300'
317
317
  stoptime = '2017-12-31T23:59:59-0300'
318
318
  lat, lon = -27.597300, -48.549610
319
- times = pd.DatetimeIndex(pd.date_range(starttime, stoptime, freq='H'))
319
+ times = pd.DatetimeIndex(pd.date_range(starttime, stoptime, freq='h'))
320
320
  solpos = pvlib.solarposition.get_solarposition(times, lat, lon)
321
321
  # singleaxis tracker w/slope data
322
322
  slope_azimuth, slope_tilt = 77.34, 10.1149
@@ -394,7 +394,7 @@ def test_singleaxis_aoi_gh1221():
394
394
  # vertical tracker
395
395
  loc = pvlib.location.Location(40.1134, -88.3695)
396
396
  dr = pd.date_range(
397
- start='02-Jun-1998 00:00:00', end='02-Jun-1998 23:55:00', freq='5T',
397
+ start='02-Jun-1998 00:00:00', end='02-Jun-1998 23:55:00', freq='5min',
398
398
  tz='Etc/GMT+6')
399
399
  sp = loc.get_solarposition(dr)
400
400
  tr = pvlib.tracking.singleaxis(
pvlib/tracking.py CHANGED
@@ -3,6 +3,7 @@ import pandas as pd
3
3
 
4
4
  from pvlib.tools import cosd, sind, tand, acosd, asind
5
5
  from pvlib import irradiance
6
+ from pvlib import shading
6
7
 
7
8
 
8
9
  def singleaxis(apparent_zenith, apparent_azimuth,
@@ -126,51 +127,20 @@ def singleaxis(apparent_zenith, apparent_azimuth,
126
127
  if apparent_azimuth.ndim > 1 or apparent_zenith.ndim > 1:
127
128
  raise ValueError('Input dimensions must not exceed 1')
128
129
 
129
- # Calculate sun position x, y, z using coordinate system as in [1], Eq 1.
130
-
131
- # NOTE: solar elevation = 90 - solar zenith, then use trig identities:
132
- # sin(90-x) = cos(x) & cos(90-x) = sin(x)
133
- sin_zenith = sind(apparent_zenith)
134
- x = sin_zenith * sind(apparent_azimuth)
135
- y = sin_zenith * cosd(apparent_azimuth)
136
- z = cosd(apparent_zenith)
137
-
138
- # Assume the tracker reference frame is right-handed. Positive y-axis is
139
- # oriented along tracking axis; from north, the y-axis is rotated clockwise
140
- # by the axis azimuth and tilted from horizontal by the axis tilt. The
141
- # positive x-axis is 90 deg clockwise from the y-axis and parallel to
142
- # horizontal (e.g., if the y-axis is south, the x-axis is west); the
143
- # positive z-axis is normal to the x and y axes, pointed upward.
144
-
145
- # Calculate sun position (xp, yp, zp) in tracker coordinate system using
146
- # [1] Eq 4.
147
-
148
- cos_axis_azimuth = cosd(axis_azimuth)
149
- sin_axis_azimuth = sind(axis_azimuth)
150
- cos_axis_tilt = cosd(axis_tilt)
151
- sin_axis_tilt = sind(axis_tilt)
152
- xp = x*cos_axis_azimuth - y*sin_axis_azimuth
153
- # not necessary to calculate y'
154
- # yp = (x*cos_axis_tilt*sin_axis_azimuth
155
- # + y*cos_axis_tilt*cos_axis_azimuth
156
- # - z*sin_axis_tilt)
157
- zp = (x*sin_axis_tilt*sin_axis_azimuth
158
- + y*sin_axis_tilt*cos_axis_azimuth
159
- + z*cos_axis_tilt)
160
-
161
130
  # The ideal tracking angle wid is the rotation to place the sun position
162
- # vector (xp, yp, zp) in the (y, z) plane, which is normal to the panel and
131
+ # vector (xp, yp, zp) in the (x, z) plane, which is normal to the panel and
163
132
  # contains the axis of rotation. wid = 0 indicates that the panel is
164
133
  # horizontal. Here, our convention is that a clockwise rotation is
165
134
  # positive, to view rotation angles in the same frame of reference as
166
135
  # azimuth. For example, for a system with tracking axis oriented south, a
167
136
  # rotation toward the east is negative, and a rotation to the west is
168
137
  # positive. This is a right-handed rotation around the tracker y-axis.
169
-
170
- # Calculate angle from x-y plane to projection of sun vector onto x-z plane
171
- # using [1] Eq. 5.
172
-
173
- wid = np.degrees(np.arctan2(xp, zp))
138
+ wid = shading.projected_solar_zenith_angle(
139
+ axis_tilt=axis_tilt,
140
+ axis_azimuth=axis_azimuth,
141
+ solar_zenith=apparent_zenith,
142
+ solar_azimuth=apparent_azimuth,
143
+ )
174
144
 
175
145
  # filter for sun above panel horizon
176
146
  zen_gt_90 = apparent_zenith > 90
pvlib/version.py CHANGED
@@ -1,8 +1,4 @@
1
- try:
2
- from importlib.metadata import PackageNotFoundError, version
3
- except ImportError:
4
- # for python < 3.8
5
- from importlib_metadata import PackageNotFoundError, version
1
+ from importlib.metadata import PackageNotFoundError, version
6
2
 
7
3
  try:
8
4
  __version__ = version(__package__)
@@ -1,11 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pvlib
3
- Version: 0.10.3
3
+ Version: 0.10.5
4
4
  Summary: A set of functions and classes for simulating the performance of photovoltaic energy systems.
5
5
  Home-page: https://github.com/pvlib/pvlib-python
6
- Author: pvlib python Developers
7
- Maintainer-email: pvlib-admin@googlegroups.com
8
- License: BSD 3-Clause
6
+ Author-email: pvlib python Developers <pvlib-admin@googlegroups.com>
7
+ License: BSD-3-Clause
9
8
  Project-URL: Bug Tracker, https://github.com/pvlib/pvlib-python/issues
10
9
  Project-URL: Documentation, https://pvlib-python.readthedocs.io/
11
10
  Project-URL: Source Code, https://github.com/pvlib/pvlib-python
@@ -16,40 +15,18 @@ Classifier: Intended Audience :: Science/Research
16
15
  Classifier: Programming Language :: Python
17
16
  Classifier: Programming Language :: Python :: 3
18
17
  Classifier: Topic :: Scientific/Engineering
19
- Requires-Python: >=3.7
18
+ Requires-Python: >=3.8
20
19
  Description-Content-Type: text/x-rst
21
20
  License-File: LICENSE
22
21
  License-File: AUTHORS.md
23
- Requires-Dist: numpy >=1.16.0
24
- Requires-Dist: pandas >=0.25.0
22
+ Requires-Dist: numpy >=1.17.3
23
+ Requires-Dist: pandas >=1.3.0
25
24
  Requires-Dist: pytz
26
25
  Requires-Dist: requests
27
- Requires-Dist: scipy >=1.5.0
26
+ Requires-Dist: scipy >=1.6.0
28
27
  Requires-Dist: h5py
29
- Requires-Dist: importlib-metadata ; python_version < "3.8"
30
28
  Provides-Extra: all
31
- Requires-Dist: cython ; extra == 'all'
32
- Requires-Dist: docutils ==0.15.2 ; extra == 'all'
33
- Requires-Dist: ephem ; extra == 'all'
34
- Requires-Dist: ipython ; extra == 'all'
35
- Requires-Dist: matplotlib ; extra == 'all'
36
- Requires-Dist: nrel-pysam ; extra == 'all'
37
- Requires-Dist: numba ; extra == 'all'
38
- Requires-Dist: packaging ; extra == 'all'
39
- Requires-Dist: pillow ; extra == 'all'
40
- Requires-Dist: pydata-sphinx-theme ==0.8.1 ; extra == 'all'
41
- Requires-Dist: pytest ; extra == 'all'
42
- Requires-Dist: pytest-cov ; extra == 'all'
43
- Requires-Dist: pytest-mock ; extra == 'all'
44
- Requires-Dist: pytest-remotedata ; extra == 'all'
45
- Requires-Dist: pytest-rerunfailures ; extra == 'all'
46
- Requires-Dist: pytest-timeout ; extra == 'all'
47
- Requires-Dist: requests-mock ; extra == 'all'
48
- Requires-Dist: solarfactors ; extra == 'all'
49
- Requires-Dist: sphinx ==4.5.0 ; extra == 'all'
50
- Requires-Dist: sphinx-gallery ; extra == 'all'
51
- Requires-Dist: sphinx-toggleprompt >=0.0.5 ; extra == 'all'
52
- Requires-Dist: statsmodels ; extra == 'all'
29
+ Requires-Dist: pvlib[doc,optional,test] ; extra == 'all'
53
30
  Provides-Extra: doc
54
31
  Requires-Dist: ipython ; extra == 'doc'
55
32
  Requires-Dist: matplotlib ; extra == 'doc'
@@ -64,7 +41,7 @@ Provides-Extra: optional
64
41
  Requires-Dist: cython ; extra == 'optional'
65
42
  Requires-Dist: ephem ; extra == 'optional'
66
43
  Requires-Dist: nrel-pysam ; extra == 'optional'
67
- Requires-Dist: numba ; extra == 'optional'
44
+ Requires-Dist: numba >=0.17.0 ; extra == 'optional'
68
45
  Requires-Dist: solarfactors ; extra == 'optional'
69
46
  Requires-Dist: statsmodels ; extra == 'optional'
70
47
  Provides-Extra: test
@@ -77,7 +54,6 @@ Requires-Dist: pytest-rerunfailures ; extra == 'test'
77
54
  Requires-Dist: pytest-remotedata ; extra == 'test'
78
55
  Requires-Dist: packaging ; extra == 'test'
79
56
 
80
-
81
57
  pvlib python is a community developed toolbox that provides a set of
82
58
  functions and classes for simulating the performance of photovoltaic
83
59
  energy systems and accomplishing related tasks. The core mission of pvlib
@@ -1,29 +1,29 @@
1
- pvlib/__init__.py,sha256=qwhsPejThIvdjXjmvMilAJ09x1mPQEvViMmVfsnvRac,473
1
+ pvlib/__init__.py,sha256=G-yTfvN7mLuZzqVPgy7Co271QV48NNMxiX9ykUoFtdQ,486
2
2
  pvlib/_deprecation.py,sha256=f1SulhOD36F3Cd92ZS3-NAgkDjvaBUpYKvav7vDREno,13140
3
3
  pvlib/atmosphere.py,sha256=FX66fGf9WebMfcTLguw2AOx-kgojT9JkqRkSnB4wLi0,17738
4
- pvlib/clearsky.py,sha256=Bnc8SNv_r5yHWc-0eW7rfV-NjliTVQLPdnk7MVWWGSA,38267
5
- pvlib/iam.py,sha256=vq70UwYwSQDaXuPvKBJJ0zd53tidBZA_vR5QLXcrALE,44341
6
- pvlib/inverter.py,sha256=JAg2wOYWFYA0xOehOlPzYJqnzioIeuPexoDX27sG5IY,19115
7
- pvlib/irradiance.py,sha256=ZDj6saeKQLLjqhl2OsZS71u537jVUALmipHo2QVIolo,141680
8
- pvlib/location.py,sha256=tw81lPq50XNtKgmEN27BeHQT2K4ObyRkh4RfgZSf0Tg,15363
9
- pvlib/modelchain.py,sha256=lVWu1DSDr3bZwE2aBlm4RWH43g2EgVVkQiV8INELAz8,79394
10
- pvlib/pvarray.py,sha256=IlqhaYqd0LPIriKRwnmzdXBdC8IpHS4hSYLqpczGlaA,7906
11
- pvlib/pvsystem.py,sha256=4oBnRY50cZfegjLQMBMKu7tAAgjIXYQEv36jGN0RmsA,109241
12
- pvlib/scaling.py,sha256=oCAY7pfoeUWBd7oUuI8x146YecXDREsCmqrkGQ2yzFc,10953
13
- pvlib/shading.py,sha256=eStgn4gZBMxMgMJg45rhM-D5If6-u03luoc23ukBRHg,8077
14
- pvlib/singlediode.py,sha256=PPvTODA8Q92u--rlQDNKBGeKVHmxqZVCkvw5xEfiYWA,34229
15
- pvlib/snow.py,sha256=it95wI8pbyBy9xSdpuPTylzE1OXQwf73FtFbbSrHt5g,12731
4
+ pvlib/clearsky.py,sha256=uB26zFv914f2BAWvo33sUESbNaWydaU28CfvyCyd0FY,38289
5
+ pvlib/iam.py,sha256=uYwdOaw5Brkl0d1WmueQG9XqL2eMJP_TZ2x7dQ5UxZo,44330
6
+ pvlib/inverter.py,sha256=ZpSv3cjt-Qm_JundL_jkvhCUd3iGjmlKcnNJeJqA2Qw,19127
7
+ pvlib/irradiance.py,sha256=HNZ5N71FGcz7-Y4bqZDt8SB-CGKy5E7uVs6vOlPMyew,141985
8
+ pvlib/location.py,sha256=cHdX6m3aAZAY96DXCC7W-W6ExisB2sidY4tEqBMELJk,15455
9
+ pvlib/modelchain.py,sha256=f-6mSWVqyjLNX6SW0fMx4zWwI4BMSwKXmxs1MAX0e04,79453
10
+ pvlib/pvarray.py,sha256=r60sGTxFNlPiFQndusCJmlEIPX0dv9_7ozKw8zxh7IM,12677
11
+ pvlib/pvsystem.py,sha256=6jF0iXatWhVU_vVgcWhIFgKwqJ7sksCCx42spG2yXv8,109775
12
+ pvlib/scaling.py,sha256=SsQEmM4f4O1wC7e0amEV4SgaRTBX8nG5IiSV9Xs0i5o,10983
13
+ pvlib/shading.py,sha256=P6GmKxHXQGF0oCqDNN-2NjsvYHqpGG5GzRpepOAXhTk,12495
14
+ pvlib/singlediode.py,sha256=Bsr4YlTFBcR1kIIgMbL-QelO5YF-20c2kJjSyql2FYs,35399
15
+ pvlib/snow.py,sha256=LYFEpU5AnP82o6q5v6kQfgopkYtHO-aEyYFV9knpNvM,12764
16
16
  pvlib/soiling.py,sha256=zDJ3N0uyeS1CoO0mxSdG16q2FCBLZSHbujJHgish54U,8799
17
- pvlib/solarposition.py,sha256=IuQgInEjVHTVza2Rbj-hod7iAhIyukTU-a_oXdw7X5I,50225
18
- pvlib/spa.py,sha256=YxBbhYsgZu7RDP9YHNC4i11BB9oaHKJOMCDN8Zw_MJ4,45146
19
- pvlib/temperature.py,sha256=LnWuwsPUReNRj65faYCa5wjEbMnkZ-VMA71QBHZDZwY,55427
17
+ pvlib/solarposition.py,sha256=FFafBzWYdLgNOsJiQY4l1LuqTn1-TYMvgoaLW2bQstI,50502
18
+ pvlib/spa.py,sha256=fTHdkU44M2d8hG9_i2MuBdDsqlgERBwVnsEMMPYLCuo,44802
19
+ pvlib/temperature.py,sha256=cNdbMx_x38XK5YwyxdWVBlnKkfXDBSjb9X_KTHY2hV8,55424
20
20
  pvlib/tools.py,sha256=S3TswC_biexLSL8BlNdcLlWNVYSs7nG3EJhUEbHh59E,12650
21
- pvlib/tracking.py,sha256=_O9nk6JTZVy0nMxIRna75iEOeKTXNWWLDvUtiYB3OLw,17109
22
- pvlib/version.py,sha256=9b2gyX4rmKu60DCgjOhhiEQSF9sD5utxNUJ3NSftRWs,282
21
+ pvlib/tracking.py,sha256=fwssoO_9vi5_aLBl59G0KE_EmsB3Jt0yIJlllFcpb5s,15802
22
+ pvlib/version.py,sha256=0CONzyOSN34Jgbaj9JzemFuaEnbRON_yxp-ah6_KxxQ,165
23
23
  pvlib/bifacial/__init__.py,sha256=8uOiQ8cR0Wp62F-dLW25b1_xI3AxhwWlNagXqMyZUqA,412
24
24
  pvlib/bifacial/infinite_sheds.py,sha256=rbiluCon6Tqpa_FizUfk5zBc6tH3ubk7xRqRAXp2Xq0,23051
25
25
  pvlib/bifacial/pvfactors.py,sha256=QJXqjok4UcaUToNs6eR5ZDMsVf3HHT2AqW2u36hOOSI,5437
26
- pvlib/bifacial/utils.py,sha256=SHdisvAisrrZvy7yI9phszHFWJxqby9pOEwE2lpsaTI,14503
26
+ pvlib/bifacial/utils.py,sha256=Q2KSzn-vltO13QHYEfLVEWkTqed8Q8f_Eu4tlyrK2Ts,14542
27
27
  pvlib/data/12839.tm2,sha256=6v86FhwMJeUJIEx8Mj9Rqp_OqmeaQ3rpObunQVaM6ss,1261501
28
28
  pvlib/data/703165TY.csv,sha256=8DM6aKEW9a6S8ShaKrh4TY4A5So2dEVlisiNctk9jKQ,1760582
29
29
  pvlib/data/723170TYA.CSV,sha256=Hpb4RjjOmOaykAK8RaJ6ppuymw7QNo07Urex-BYQxsk,1716576
@@ -92,7 +92,7 @@ pvlib/data/tmy_45.000_8.000_2005_2016.json,sha256=dZmqXOE6-0AcBxAll97yYTWnB7fUwf
92
92
  pvlib/data/tmy_45.000_8.000_2005_2016.txt,sha256=1oWbUx3hwZ7VTBed2rpXg0tvJFNEDGaXwEnOzt_Ytc0,586345
93
93
  pvlib/data/tmy_45.000_8.000_userhorizon.json,sha256=UnwM9O_cGX-B6-ntglr4EIiLWv0CDi3dQxE6YeBNVRk,1435855
94
94
  pvlib/data/variables_style_rules.csv,sha256=_BD0EDdYu4ZhJd-D9Ya7Z8ZJdB3ruM5ggoKOA394LlY,2532
95
- pvlib/iotools/__init__.py,sha256=Ub60XbTvljJC9oMIyR3jVPel46ih0LSiaUUxAsog-Sc,2174
95
+ pvlib/iotools/__init__.py,sha256=qwecDYqaxTmghLgqzMmKAoKgUvhohNcRTw3-rOvxk6g,2294
96
96
  pvlib/iotools/acis.py,sha256=nzuH3SZBhMNoSk0fBr35O4YADDah6D02Acyj5RNUYeI,18449
97
97
  pvlib/iotools/bsrn.py,sha256=Y_-_7qdxu047oiCQLO6idu42MMCvh3Im5uBPxCa-YwU,21837
98
98
  pvlib/iotools/crn.py,sha256=PLugc4RF_0LzesWHnyCOtx9KmqeECZH9kxcXgzgjGrQ,5336
@@ -103,53 +103,53 @@ pvlib/iotools/psm3.py,sha256=0D4_Em7cyIiu5uUSh_IfRSNixfrZz3Q6Bq7dr6WX-50,15465
103
103
  pvlib/iotools/pvgis.py,sha256=_A3clvwLt63RTMxHdff19rpJrgJRFIDU2dX3t7yOomo,30169
104
104
  pvlib/iotools/sodapro.py,sha256=Hw4kOUorJ3olSjB5FBlZjdNxIrkjWtDIHZd1IugVsBs,15629
105
105
  pvlib/iotools/solaranywhere.py,sha256=_kDetQ0R8rQgcfTZjeQArq9nmCtVa4upF_KGrcipovQ,12535
106
- pvlib/iotools/solcast.py,sha256=0Q7Xijd0F19Jt3PfVP4B6J9-ghNEeiFfJupLnrjjGL4,15621
107
- pvlib/iotools/solrad.py,sha256=AzVRw2wYIe2L6Bkn0jtogNvsyImGZ0oHr-7flm5FvH4,4256
108
- pvlib/iotools/srml.py,sha256=4_XIz6w5_FU0gF2aps_MRPgPD4BISIeZ4NI0gPW_4eY,10986
109
- pvlib/iotools/surfrad.py,sha256=fhC-WbHt6RMoM3z68hiYGe8dlZ9yZOF--_M8akon2hw,7360
106
+ pvlib/iotools/solargis.py,sha256=6FeIsqs_bs2oNrUGvkv7Dc4AlIsDiwpCs5oFVcBheO8,8274
107
+ pvlib/iotools/solcast.py,sha256=d-2LAC-Tlazmih_QZKYbOKCyZaP7U08pIwoKTfciTCk,15332
108
+ pvlib/iotools/solrad.py,sha256=M8Xwasro6_hFiZP7hcsYSeEze3q5kNmnV0kAdNHqgBI,7177
109
+ pvlib/iotools/srml.py,sha256=XRbq1vf1D3XCl2vMC9YHeuYdoFsjYqcu-r4voIvsMiA,10838
110
+ pvlib/iotools/surfrad.py,sha256=WFh2__FGlOwHg6RTxIkcMmdMucX0vbQfHEz9q_HLGjY,7349
110
111
  pvlib/iotools/tmy.py,sha256=-lxHnehZ2FnblM_28KYPG4FWd_rnDXIHv_dHJz092K0,30719
111
112
  pvlib/ivtools/__init__.py,sha256=bnUDPqkzCP96CaFFK3Gw4HNczJoHtO-cI9GBGAtZVGI,159
112
113
  pvlib/ivtools/sde.py,sha256=HL2oE70Ls7xccikyaUSi6SQKx3cWES5XoaMAGuMjPIw,17008
113
114
  pvlib/ivtools/sdm.py,sha256=XAwy4B3-iJJCP8SQOuBr3DfMfvzZzKMYc9jsG_96q_U,50867
114
115
  pvlib/ivtools/utils.py,sha256=xL88J-RuYLXFZyy1za8tvoWei0hcwWb_2ktXara2m_M,19423
115
116
  pvlib/spa_c_files/README.md,sha256=6a1vHAYR0goT6OcH3T9STEkDbMLmnOIBnx64u-jHwFI,3196
116
- pvlib/spa_c_files/SPA_NOTICE.md,sha256=VrLtjEk8LusDkc4OsXl5-TtHhXZGkByAR5YwrDzRbNU,2467
117
117
  pvlib/spa_c_files/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
118
  pvlib/spa_c_files/cspa_py.pxd,sha256=iJSd5KPC_pMSEGCMbYeTQjCE3I7Uv89oLpqli0H03H4,782
119
119
  pvlib/spa_c_files/setup.py,sha256=RcMEf0R2wKHJjvpUH5y6h22m86y6UrdXwkPkHKNme48,1102
120
120
  pvlib/spa_c_files/spa_py.pyx,sha256=XMjlxfcSPM2nXTWVbyGme0HFBvPhOxRFuQEnbhQfT3Q,809
121
121
  pvlib/spa_c_files/spa_py_example.py,sha256=p3ms0mhLycAuZJyaE3Wageqnd_56zh2EKxXK-jlTJfg,1179
122
122
  pvlib/spectrum/__init__.py,sha256=Xtu6PejkWxUuJSkmXjdsAQJn1GUj4HmRGlOmGZbqUL8,286
123
- pvlib/spectrum/mismatch.py,sha256=wzy6WULWmjcu2Y5LVPw-db4EmKjxhhFbrAeItiPV_Ng,22608
123
+ pvlib/spectrum/mismatch.py,sha256=VvTv6iklE8eKTaZ3SMrrh8_JE7s8eBjFhPNy-uC40sM,22647
124
124
  pvlib/spectrum/spectrl2.py,sha256=gJiHlJrmxHQkqWDVY2htU3hihFvt9JDvY3QZeL0FkyQ,18964
125
125
  pvlib/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
- pvlib/tests/conftest.py,sha256=XERbtxG49soCaYcKSjHUFhTOyjl4nqMN1Bta4_Xtf14,13142
126
+ pvlib/tests/conftest.py,sha256=gqTLfGacGrfSYhhRCRkfjXQgdr50KfuwliZWQvPQfNc,13217
127
127
  pvlib/tests/test_atmosphere.py,sha256=v36-rFPPCB0v5qWo-Bi2pzx0sYiUo0W2BXS4cLgOTik,4878
128
- pvlib/tests/test_clearsky.py,sha256=QxMPLsfLra0PJbU9U61yjAl8GVtkFjmOSrTn04FFlDs,33293
128
+ pvlib/tests/test_clearsky.py,sha256=dYxSpFcxXv6XTTZ1R47nBtd4sMQL32TYlrHVf9VTza4,33293
129
129
  pvlib/tests/test_conftest.py,sha256=jgSIL34Rp3fY2JoLVaVOupIew0Yclf5K9kgLGg1e3LU,2834
130
130
  pvlib/tests/test_iam.py,sha256=jdnEYrUEdN-4GqISGZfaeL0xct2MSnCNNweRzlIixyo,18815
131
131
  pvlib/tests/test_inverter.py,sha256=Xv_GLXkJfbS4HTOMzvKs_FQs6FFTCy7FaLFryGXkWMg,7434
132
- pvlib/tests/test_irradiance.py,sha256=eCEOg4sT44fdzZ2r4rW3CKDwJD5aeNZl-3vqURMdxiQ,54498
133
- pvlib/tests/test_location.py,sha256=jZZdWysFtC_dPt4jzdqJgfF7FxA2lwCAmlpmWzAq17M,13283
134
- pvlib/tests/test_modelchain.py,sha256=aiNaIXQhVKA8JJLkS5cp9OtehvohNOHMgWxQOrzn-Kw,88975
132
+ pvlib/tests/test_irradiance.py,sha256=4ApWazs8LU2908OIjo0lKiYjWjkwtFeD3_48DeybAw0,55236
133
+ pvlib/tests/test_location.py,sha256=UhGawiOEdXIcym_kVC8wbxZULuqU3MzZ3k_3Zgzkl9Y,13283
134
+ pvlib/tests/test_modelchain.py,sha256=vaCCtALPaB1FWtC9Iw3ty3vctqyAVvdxSkvIt6OFsH8,89421
135
135
  pvlib/tests/test_numerical_precision.py,sha256=hu9ebaykI3WxZhE1SOzbw0zjjcYjg79-T5oGQlBNzXo,4331
136
- pvlib/tests/test_pvarray.py,sha256=LfEaCJl3jBVSGEjld0mWkIqkWfWFUmXkQiQDzXrhwcE,1686
137
- pvlib/tests/test_pvsystem.py,sha256=JqFgotAP2ox6Idfyke4u5iMv-IgqpANzDUQJRA33ce0,98702
136
+ pvlib/tests/test_pvarray.py,sha256=zAxaK-2jUPLRwgOlnPdpvgLeSHL7op_63XxSDzKup8s,2694
137
+ pvlib/tests/test_pvsystem.py,sha256=eFlc0UeqwFu-Etf81kiohAUW5ZohKgyvgfenqCMb45o,99567
138
138
  pvlib/tests/test_scaling.py,sha256=KlzMAiZcpWHLega4JJIBUy5PbzworWm9tqjLFaqoFcg,6832
139
- pvlib/tests/test_shading.py,sha256=mXODa-4WgT40RDHQfBS8nDA3Ubeo1uyup9pLN3JotjA,3585
140
- pvlib/tests/test_singlediode.py,sha256=Jezj89iOJZUGlBRJG1WOoG09q99mdoboibXu3hgqAcw,22505
141
- pvlib/tests/test_snow.py,sha256=Xrpb5XI99mJxvreqH_7AjXQ3q66Wk89iJ4YM44G0tsI,8588
139
+ pvlib/tests/test_shading.py,sha256=QH6wb0wAE3DGhaNUnhQLlknEmz_EL_tRTUe25yyPZ1Y,7846
140
+ pvlib/tests/test_singlediode.py,sha256=qnSRMO_iD6qz2mKQxX0hkqOKQSGrNo0hWdlWj9M58zo,25191
141
+ pvlib/tests/test_snow.py,sha256=YyPpF-_VwNadrsuUzv32UgRlzZHEDxSYpciLNga16P0,8590
142
142
  pvlib/tests/test_soiling.py,sha256=QepAr_jVS24l07EUx8rrTjG67t7_vltJ1si_MlOXAGE,8183
143
- pvlib/tests/test_solarposition.py,sha256=derVKioLo8dzb6Vf03NAMKa4ulsY4hHj0higBLIJB9M,37487
144
- pvlib/tests/test_spa.py,sha256=quMU4OwNUOPj9ItMDuOluCfYQMCYmV2Wy6PZ_-Oc4qs,17341
143
+ pvlib/tests/test_solarposition.py,sha256=K4_EOZ4arSHRxbdiytjalANLQadASE4zFSpmTAr4QOg,41652
144
+ pvlib/tests/test_spa.py,sha256=2qN69mz3lQwNOj4prfAEL-Y4SryO0wSL2E1FIeGoD0Q,16994
145
145
  pvlib/tests/test_spectrum.py,sha256=mkT1b1NWTAnRnrT8IBDgikjwjN_SyHWS5eToxV2hMls,12261
146
- pvlib/tests/test_temperature.py,sha256=g9wIOlGD_IAayZDFV4rg0jWvz_KrTmr1AWunrkTXeeU,18437
146
+ pvlib/tests/test_temperature.py,sha256=oJ9Zt5-GvI2RB4JTZX0kNXhx-Na5wZV6qr_T7WBXWEU,18437
147
147
  pvlib/tests/test_tools.py,sha256=oK3uBRlQlkWcV4tWcyeceWhkZvGeBymsaxtbHX7KRXE,4879
148
- pvlib/tests/test_tracking.py,sha256=mkJmKq6ZY8Tx0OVMqIBGP66PirftCSWF6gazofuJ9cA,20541
148
+ pvlib/tests/test_tracking.py,sha256=tqnVv3wGagJetly9qwJFstuMHAiakweTi31sR0VZbSU,20543
149
149
  pvlib/tests/bifacial/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
150
150
  pvlib/tests/bifacial/test_infinite_sheds.py,sha256=wYuJ8U7gEiG-lg0L3j2NaGOG6NhQWB2ZAUnrffH-n0Y,13549
151
151
  pvlib/tests/bifacial/test_pvfactors.py,sha256=vocfxIsBAZwaEeRDfRAZmvemuYIRXI0UVbuKqUXRU6g,3144
152
- pvlib/tests/bifacial/test_utils.py,sha256=B-yl3RGIVCyjTjoB5pq88QUIUgUyVz6f_XikkevqbCY,8303
152
+ pvlib/tests/bifacial/test_utils.py,sha256=c6Q9H_3pocHDNokxq26HCPiyoNvZGS1h9FmSLrWPPh4,8346
153
153
  pvlib/tests/iotools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
154
154
  pvlib/tests/iotools/test_acis.py,sha256=Ya1CzAcQDzUWFaVZduiE_rGfx7RBbQtxajW4ekfWIWE,8440
155
155
  pvlib/tests/iotools/test_bsrn.py,sha256=7DHT6CcEGWZ_qNsLXDSSF_Rk6hpa1zqgNnvpnK_T8_k,4781
@@ -159,20 +159,21 @@ pvlib/tests/iotools/test_midc.py,sha256=D86u7UxhoYsIXcKoE4yJI46tiC75xnwArmwRCQJm
159
159
  pvlib/tests/iotools/test_panond.py,sha256=1yH_5DKW2JXdVLL7Y769jAY0S-8UtYzlO-Sp9SuPwCk,1149
160
160
  pvlib/tests/iotools/test_psm3.py,sha256=Ot6zxpaF-S8yBVo1ZioaUQ9KJD30hESKQRDX7Z_ti10,8924
161
161
  pvlib/tests/iotools/test_pvgis.py,sha256=Nsle7lPKAgeju8CT8HRXHvorRXPpbku5WorXHvGm_e4,27434
162
- pvlib/tests/iotools/test_sodapro.py,sha256=WWqwtY8i8V0vQ4eUzeIi-Tsat9RU28a5QJoIrBHXXUQ,14311
162
+ pvlib/tests/iotools/test_sodapro.py,sha256=QndGGTl-cj9YW-vM8qWoM6nswXqeqDf6P5_ML4kKlpA,14343
163
163
  pvlib/tests/iotools/test_solaranywhere.py,sha256=tQU2Rb8shSWOeRyGuUZr8XPUGiM3mB21IiIN7l91eqM,12404
164
- pvlib/tests/iotools/test_solcast.py,sha256=2SqzSrtsxEwJArvlQFUYrWmYzkQ4OKAE7IzghF0YNIY,11972
165
- pvlib/tests/iotools/test_solrad.py,sha256=yKT7t3w9ajaKXfDyvf4M7KXvzvGGrYNgElK7LSozBt0,5018
166
- pvlib/tests/iotools/test_srml.py,sha256=CB_4DhCb1lFxmcK1CoEls9MPiAdV3aNobsd2mHrTmAk,6796
164
+ pvlib/tests/iotools/test_solargis.py,sha256=nQsRFB1yfWKFFs9ASm3b1dnNSbP0vSyZB6KsUn9nqUw,2575
165
+ pvlib/tests/iotools/test_solcast.py,sha256=s25GRL997KQv5zZeHM804ceaAk2C4zZoxKbX2Mn2Mpw,11972
166
+ pvlib/tests/iotools/test_solrad.py,sha256=HvssYWFDQYKRfyWHCp-Y89XAhsQLg78PEoDRtT4G-Cc,7088
167
+ pvlib/tests/iotools/test_srml.py,sha256=EgeICaJrp_vIOr2yGl4KtZqevk6-1pNYKIMqKfngAJs,6095
167
168
  pvlib/tests/iotools/test_surfrad.py,sha256=fQ8iFFqdvwXO2B0bdAphJIaP9_n94EhV_gNthzz-NQE,2602
168
169
  pvlib/tests/iotools/test_tmy.py,sha256=LW6CgSkfO8I5W3iAJezST3M2RRGJLfoJ5bMwUyhFbWU,5106
169
170
  pvlib/tests/ivtools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
171
  pvlib/tests/ivtools/test_sde.py,sha256=dBJkk9tWskwc6Iyoziar9MoZESrOSkepOk51g5QOy1I,13844
171
172
  pvlib/tests/ivtools/test_sdm.py,sha256=5ioqsEJJE-JCSCGRLXj1zCuJzGIPNY622GyflJMU_MM,16406
172
173
  pvlib/tests/ivtools/test_utils.py,sha256=-BPEUgB5aCkJOv-apRkjeg0IraZ1Ebf5SmObk4Zusz4,6905
173
- pvlib-0.10.3.dist-info/AUTHORS.md,sha256=Fxk4p_lXlMeQ6g2A1-7oPrgpULDxuJuC9Ebc-3yyj_o,1474
174
- pvlib-0.10.3.dist-info/LICENSE,sha256=oC4S3araPPDV292K_91XfC7sZAdYqVhCowT3UTuMC-Q,1622
175
- pvlib-0.10.3.dist-info/METADATA,sha256=rxzyjxtJbfRPFJARnKThLvskp_NKOlgu5Nc7SSKU80w,3787
176
- pvlib-0.10.3.dist-info/WHEEL,sha256=oiQVh_5PnQM0E3gPdiz09WCNmwiHDMaGer_elqB3coM,92
177
- pvlib-0.10.3.dist-info/top_level.txt,sha256=eq9CH6YXUc3Fh3dyQ5hQXoGYfSm1SYEAlMygyR22MgE,6
178
- pvlib-0.10.3.dist-info/RECORD,,
174
+ pvlib-0.10.5.dist-info/AUTHORS.md,sha256=Fxk4p_lXlMeQ6g2A1-7oPrgpULDxuJuC9Ebc-3yyj_o,1474
175
+ pvlib-0.10.5.dist-info/LICENSE,sha256=oC4S3araPPDV292K_91XfC7sZAdYqVhCowT3UTuMC-Q,1622
176
+ pvlib-0.10.5.dist-info/METADATA,sha256=cimQNDgoZe_S2_jiDXi0v2UfEVboTEyLIFY-EVqzaQU,2785
177
+ pvlib-0.10.5.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
178
+ pvlib-0.10.5.dist-info/top_level.txt,sha256=eq9CH6YXUc3Fh3dyQ5hQXoGYfSm1SYEAlMygyR22MgE,6
179
+ pvlib-0.10.5.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.42.0)
2
+ Generator: bdist_wheel (0.43.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,39 +0,0 @@
1
- # NOTICE
2
-
3
- Copyright (c) 2008-2011 Alliance for Sustainable Energy, LLC, All Rights Reserved
4
-
5
- The Solar Position Algorithm ("Software") is code in development prepared by
6
- employees of the Alliance for Sustainable Energy, LLC, (hereinafter the
7
- "Contractor"), under Contract No. DE-AC36-08GO28308 ("Contract") with the
8
- U.S. Department of Energy (the "DOE"). The United States Government has been
9
- granted for itself and others acting on its behalf a paid-up, non-exclusive,
10
- irrevocable, worldwide license in the Software to reproduce, prepare
11
- derivative works, and perform publicly and display publicly. Beginning five
12
- (5) years after the date permission to assert copyright is obtained from the
13
- DOE, and subject to any subsequent five (5) year renewals, the United States
14
- Government is granted for itself and others acting on its behalf a paid-up,
15
- non-exclusive, irrevocable, worldwide license in the Software to reproduce,
16
- prepare derivative works, distribute copies to the public, perform publicly
17
- and display publicly, and to permit others to do so. If the Contractor ceases
18
- to make this computer software available, it may be obtained from DOE's
19
- Office of Scientific and Technical Information's Energy Science and
20
- Technology Software Center (ESTSC) at P.O. Box 1020, Oak Ridge, TN
21
- 37831-1020. THIS SOFTWARE IS PROVIDED BY THE CONTRACTOR "AS IS" AND ANY
22
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING BUT NOT LIMITED TO, THE IMPLIED
23
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24
- DISCLAIMED. IN NO EVENT SHALL THE CONTRACTOR OR THE U.S. GOVERNMENT BE LIABLE
25
- FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER,
26
- INCLUDING BUT NOT LIMITED TO CLAIMS ASSOCIATED WITH THE LOSS OF DATA OR
27
- PROFITS, WHICH MAY RESULT FROM AN ACTION IN CONTRACT, NEGLIGENCE OR OTHER
28
- TORTIOUS CLAIM THAT ARISES OUT OF OR IN CONNECTION WITH THE ACCESS, USE OR
29
- PERFORMANCE OF THIS SOFTWARE.
30
-
31
- The Software is being provided for internal, noncommercial purposes only and
32
- shall not be re-distributed. Please contact [Jean
33
- Schulte](mailto:Jean.Schulte@nrel.gov) in the NREL Commercialization and
34
- Technology Transfer Office for information concerning a commercial license to
35
- use the Software.
36
-
37
- As a condition of using the Software in an application, the developer of the
38
- application agrees to reference the use of the Software and make this Notice
39
- readily accessible to any end-user in a Help|About screen or equivalent manner.