pvlib 0.11.2__py3-none-any.whl → 0.12.1a1__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 (147) hide show
  1. pvlib/__init__.py +1 -0
  2. pvlib/atmosphere.py +40 -40
  3. pvlib/bifacial/infinite_sheds.py +4 -3
  4. pvlib/bifacial/utils.py +2 -1
  5. pvlib/iotools/__init__.py +6 -0
  6. pvlib/iotools/psm3.py +1 -1
  7. pvlib/iotools/psm4.py +819 -0
  8. pvlib/iotools/pvgis.py +10 -2
  9. pvlib/iotools/tmy.py +3 -69
  10. pvlib/irradiance.py +38 -15
  11. pvlib/ivtools/sdm/__init__.py +20 -0
  12. pvlib/ivtools/sdm/_fit_desoto_pvsyst_sandia.py +585 -0
  13. pvlib/ivtools/sdm/cec.py +93 -0
  14. pvlib/ivtools/sdm/desoto.py +401 -0
  15. pvlib/ivtools/sdm/pvsyst.py +630 -0
  16. pvlib/location.py +73 -33
  17. pvlib/modelchain.py +19 -36
  18. pvlib/pvsystem.py +114 -65
  19. pvlib/snow.py +64 -28
  20. pvlib/spectrum/__init__.py +0 -1
  21. pvlib/spectrum/irradiance.py +2 -64
  22. pvlib/spectrum/mismatch.py +3 -3
  23. pvlib/tools.py +6 -5
  24. {pvlib-0.11.2.dist-info → pvlib-0.12.1a1.dist-info}/METADATA +6 -5
  25. pvlib-0.12.1a1.dist-info/RECORD +80 -0
  26. {pvlib-0.11.2.dist-info → pvlib-0.12.1a1.dist-info}/WHEEL +1 -1
  27. pvlib/data/BIRD_08_16_2012.csv +0 -8761
  28. pvlib/data/BIRD_08_16_2012_patm.csv +0 -8761
  29. pvlib/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -8762
  30. pvlib/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv +0 -578
  31. pvlib/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv +0 -74
  32. pvlib/data/CPS SCH275KTL-DO-US-800-250kW_275kVA_1.OND +0 -146
  33. pvlib/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -4
  34. pvlib/data/CRN_with_problems.txt +0 -3
  35. pvlib/data/ET-M772BH550GL.PAN +0 -75
  36. pvlib/data/NLD_Amsterdam062400_IWEC.epw +0 -8768
  37. pvlib/data/PVsyst_demo.csv +0 -10757
  38. pvlib/data/PVsyst_demo_model.csv +0 -3588
  39. pvlib/data/SRML-day-EUPO1801.txt +0 -1441
  40. pvlib/data/abq19056.dat +0 -6
  41. pvlib/data/bishop88_numerical_precision.csv +0 -101
  42. pvlib/data/bsrn-lr0100-pay0616.dat +0 -86901
  43. pvlib/data/bsrn-pay0616.dat.gz +0 -0
  44. pvlib/data/cams_mcclear_1min_verbose.csv +0 -60
  45. pvlib/data/cams_mcclear_monthly.csv +0 -42
  46. pvlib/data/cams_radiation_1min_verbose.csv +0 -72
  47. pvlib/data/cams_radiation_monthly.csv +0 -47
  48. pvlib/data/detect_clearsky_data.csv +0 -35
  49. pvlib/data/detect_clearsky_threshold_data.csv +0 -126
  50. pvlib/data/greensboro_kimber_soil_manwash.dat +0 -8761
  51. pvlib/data/greensboro_kimber_soil_nowash.dat +0 -8761
  52. pvlib/data/inverter_fit_snl_meas.csv +0 -127
  53. pvlib/data/inverter_fit_snl_sim.csv +0 -19
  54. pvlib/data/ivtools_numdiff.csv +0 -52
  55. pvlib/data/midc_20181014.txt +0 -1441
  56. pvlib/data/midc_raw_20181018.txt +0 -1441
  57. pvlib/data/midc_raw_short_header_20191115.txt +0 -1441
  58. pvlib/data/msn19056.dat +0 -6
  59. pvlib/data/precise_iv_curves1.json +0 -10251
  60. pvlib/data/precise_iv_curves2.json +0 -10251
  61. pvlib/data/precise_iv_curves_parameter_sets1.csv +0 -33
  62. pvlib/data/precise_iv_curves_parameter_sets2.csv +0 -33
  63. pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -1
  64. pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -35
  65. pvlib/data/pvgis_tmy_meta.json +0 -32
  66. pvlib/data/pvgis_tmy_test.csv +0 -8761
  67. pvlib/data/pvwatts_8760_rackmount.csv +0 -8779
  68. pvlib/data/pvwatts_8760_roofmount.csv +0 -8779
  69. pvlib/data/singleaxis_tracker_wslope.csv +0 -8761
  70. pvlib/data/spectrl2_example_spectra.csv +0 -123
  71. pvlib/data/surfrad-slv16001.dat +0 -1442
  72. pvlib/data/test_psm3_2017.csv +0 -17521
  73. pvlib/data/test_psm3_2019_5min.csv +0 -289
  74. pvlib/data/test_psm3_tmy-2017.csv +0 -8761
  75. pvlib/data/test_read_psm3.csv +0 -17523
  76. pvlib/data/test_read_pvgis_horizon.csv +0 -49
  77. pvlib/data/tmy_45.000_8.000_2005_2023.csv +0 -8789
  78. pvlib/data/tmy_45.000_8.000_2005_2023.epw +0 -8768
  79. pvlib/data/tmy_45.000_8.000_2005_2023.json +0 -1
  80. pvlib/data/tmy_45.000_8.000_2005_2023.txt +0 -8761
  81. pvlib/data/tmy_45.000_8.000_userhorizon.json +0 -1
  82. pvlib/ivtools/sdm.py +0 -1379
  83. pvlib/spa_c_files/README.md +0 -81
  84. pvlib/spa_c_files/cspa_py.pxd +0 -43
  85. pvlib/spa_c_files/spa_py.pyx +0 -30
  86. pvlib/tests/__init__.py +0 -0
  87. pvlib/tests/bifacial/__init__.py +0 -0
  88. pvlib/tests/bifacial/test_infinite_sheds.py +0 -317
  89. pvlib/tests/bifacial/test_losses_models.py +0 -54
  90. pvlib/tests/bifacial/test_pvfactors.py +0 -82
  91. pvlib/tests/bifacial/test_utils.py +0 -192
  92. pvlib/tests/conftest.py +0 -476
  93. pvlib/tests/iotools/__init__.py +0 -0
  94. pvlib/tests/iotools/test_acis.py +0 -213
  95. pvlib/tests/iotools/test_bsrn.py +0 -131
  96. pvlib/tests/iotools/test_crn.py +0 -95
  97. pvlib/tests/iotools/test_epw.py +0 -23
  98. pvlib/tests/iotools/test_midc.py +0 -89
  99. pvlib/tests/iotools/test_panond.py +0 -32
  100. pvlib/tests/iotools/test_psm3.py +0 -198
  101. pvlib/tests/iotools/test_pvgis.py +0 -644
  102. pvlib/tests/iotools/test_sodapro.py +0 -298
  103. pvlib/tests/iotools/test_solaranywhere.py +0 -287
  104. pvlib/tests/iotools/test_solargis.py +0 -68
  105. pvlib/tests/iotools/test_solcast.py +0 -324
  106. pvlib/tests/iotools/test_solrad.py +0 -152
  107. pvlib/tests/iotools/test_srml.py +0 -124
  108. pvlib/tests/iotools/test_surfrad.py +0 -75
  109. pvlib/tests/iotools/test_tmy.py +0 -133
  110. pvlib/tests/ivtools/__init__.py +0 -0
  111. pvlib/tests/ivtools/test_sde.py +0 -230
  112. pvlib/tests/ivtools/test_sdm.py +0 -429
  113. pvlib/tests/ivtools/test_utils.py +0 -173
  114. pvlib/tests/spectrum/__init__.py +0 -0
  115. pvlib/tests/spectrum/conftest.py +0 -40
  116. pvlib/tests/spectrum/test_irradiance.py +0 -138
  117. pvlib/tests/spectrum/test_mismatch.py +0 -304
  118. pvlib/tests/spectrum/test_response.py +0 -124
  119. pvlib/tests/spectrum/test_spectrl2.py +0 -72
  120. pvlib/tests/test__deprecation.py +0 -97
  121. pvlib/tests/test_albedo.py +0 -84
  122. pvlib/tests/test_atmosphere.py +0 -351
  123. pvlib/tests/test_clearsky.py +0 -884
  124. pvlib/tests/test_conftest.py +0 -37
  125. pvlib/tests/test_iam.py +0 -555
  126. pvlib/tests/test_inverter.py +0 -213
  127. pvlib/tests/test_irradiance.py +0 -1487
  128. pvlib/tests/test_location.py +0 -356
  129. pvlib/tests/test_modelchain.py +0 -2020
  130. pvlib/tests/test_numerical_precision.py +0 -124
  131. pvlib/tests/test_pvarray.py +0 -71
  132. pvlib/tests/test_pvsystem.py +0 -2511
  133. pvlib/tests/test_scaling.py +0 -207
  134. pvlib/tests/test_shading.py +0 -391
  135. pvlib/tests/test_singlediode.py +0 -608
  136. pvlib/tests/test_snow.py +0 -212
  137. pvlib/tests/test_soiling.py +0 -230
  138. pvlib/tests/test_solarposition.py +0 -966
  139. pvlib/tests/test_spa.py +0 -454
  140. pvlib/tests/test_temperature.py +0 -470
  141. pvlib/tests/test_tools.py +0 -146
  142. pvlib/tests/test_tracking.py +0 -474
  143. pvlib/tests/test_transformer.py +0 -60
  144. pvlib-0.11.2.dist-info/RECORD +0 -191
  145. {pvlib-0.11.2.dist-info → pvlib-0.12.1a1.dist-info/licenses}/AUTHORS.md +0 -0
  146. {pvlib-0.11.2.dist-info → pvlib-0.12.1a1.dist-info/licenses}/LICENSE +0 -0
  147. {pvlib-0.11.2.dist-info → pvlib-0.12.1a1.dist-info}/top_level.txt +0 -0
@@ -1,133 +0,0 @@
1
- import numpy as np
2
- import pandas as pd
3
- from pvlib.iotools import tmy
4
- from pvlib._deprecation import pvlibDeprecationWarning
5
- from ..conftest import DATA_DIR
6
- import pytest
7
- import warnings
8
-
9
- # test the API works
10
- from pvlib.iotools import read_tmy3
11
-
12
- TMY2_TESTFILE = DATA_DIR / '12839.tm2'
13
- # TMY3 format (two files below) represents midnight as 24:00
14
- TMY3_TESTFILE = DATA_DIR / '703165TY.csv'
15
- TMY3_FEB_LEAPYEAR = DATA_DIR / '723170TYA.CSV'
16
- # The SolarAnywhere TMY3 format (file below) represents midnight as 00:00
17
- TMY3_SOLARANYWHERE = DATA_DIR / 'Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv' # noqa: E501
18
-
19
-
20
- def test_read_tmy3():
21
- tmy.read_tmy3(TMY3_TESTFILE, map_variables=False)
22
-
23
-
24
- def test_read_tmy3_recolumn():
25
- with warnings.catch_warnings():
26
- warnings.simplefilter("ignore")
27
- data, meta = tmy.read_tmy3(TMY3_TESTFILE, recolumn=True)
28
- assert 'GHISource' in data.columns
29
-
30
-
31
- def test_read_tmy3_norecolumn():
32
- data, _ = tmy.read_tmy3(TMY3_TESTFILE, map_variables=False)
33
- assert 'GHI source' in data.columns
34
-
35
-
36
- def test_read_tmy3_raise_valueerror():
37
- with pytest.raises(ValueError, match='`map_variables` and `recolumn`'):
38
- _ = tmy.read_tmy3(TMY3_TESTFILE, recolumn=True, map_variables=True)
39
-
40
-
41
- def test_read_tmy3_map_variables():
42
- data, meta = tmy.read_tmy3(TMY3_TESTFILE, map_variables=True)
43
- assert 'ghi' in data.columns
44
- assert 'dni' in data.columns
45
- assert 'dhi' in data.columns
46
- assert 'pressure' in data.columns
47
- assert 'wind_direction' in data.columns
48
- assert 'wind_speed' in data.columns
49
- assert 'temp_air' in data.columns
50
- assert 'temp_dew' in data.columns
51
- assert 'relative_humidity' in data.columns
52
- assert 'albedo' in data.columns
53
- assert 'ghi_extra' in data.columns
54
- assert 'dni_extra' in data.columns
55
- assert 'precipitable_water' in data.columns
56
-
57
-
58
- def test_read_tmy3_map_variables_deprecating_warning():
59
- with pytest.warns(pvlibDeprecationWarning, match='names will be renamed'):
60
- data, meta = tmy.read_tmy3(TMY3_TESTFILE)
61
-
62
-
63
- def test_read_tmy3_coerce_year():
64
- coerce_year = 1987
65
- data, _ = tmy.read_tmy3(TMY3_TESTFILE, coerce_year=coerce_year,
66
- map_variables=False)
67
- assert (data.index[:-1].year == 1987).all()
68
- assert data.index[-1].year == 1988
69
-
70
-
71
- def test_read_tmy3_no_coerce_year():
72
- coerce_year = None
73
- data, _ = tmy.read_tmy3(TMY3_TESTFILE, coerce_year=coerce_year,
74
- map_variables=False)
75
- assert 1997 and 1999 in data.index.year
76
- assert data.index[-2] == pd.Timestamp('1998-12-31 23:00:00-09:00')
77
- assert data.index[-1] == pd.Timestamp('1999-01-01 00:00:00-09:00')
78
-
79
-
80
- def test_read_tmy2():
81
- tmy.read_tmy2(TMY2_TESTFILE)
82
-
83
-
84
- def test_gh865_read_tmy3_feb_leapyear_hr24():
85
- """correctly parse the 24th hour if the tmy3 file has a leap year in feb"""
86
- data, meta = read_tmy3(TMY3_FEB_LEAPYEAR, map_variables=False)
87
- # just to be safe, make sure this _IS_ the Greensboro file
88
- greensboro = {
89
- 'USAF': 723170,
90
- 'Name': '"GREENSBORO PIEDMONT TRIAD INT"',
91
- 'State': 'NC',
92
- 'TZ': -5.0,
93
- 'latitude': 36.1,
94
- 'longitude': -79.95,
95
- 'altitude': 273.0}
96
- assert meta == greensboro
97
- # February for Greensboro is 1996, a leap year, so check to make sure there
98
- # aren't any rows in the output that contain Feb 29th
99
- assert data.index[1414] == pd.Timestamp('1996-02-28 23:00:00-0500')
100
- assert data.index[1415] == pd.Timestamp('1996-03-01 00:00:00-0500')
101
- # now check if it parses correctly when we try to coerce the year
102
- data, _ = read_tmy3(TMY3_FEB_LEAPYEAR, coerce_year=1990,
103
- map_variables=False)
104
- # if get's here w/o an error, then gh865 is fixed, but let's check anyway
105
- assert all(data.index[:-1].year == 1990)
106
- assert data.index[-1].year == 1991
107
- # let's do a quick sanity check, are the indices monotonically increasing?
108
- assert all(np.diff(data.index.view(np.int64)) == 3600000000000)
109
- # according to the TMY3 manual, each record corresponds to the previous
110
- # hour so check that the 1st hour is 1AM and the last hour is midnite
111
- assert data.index[0].hour == 1
112
- assert data.index[-1].hour == 0
113
-
114
-
115
- @pytest.fixture
116
- def solaranywhere_index():
117
- return pd.date_range('2021-01-01 01:00:00-05:00', periods=8760, freq='1h')
118
-
119
-
120
- def test_solaranywhere_tmy3(solaranywhere_index):
121
- # The SolarAnywhere TMY3 format specifies midnight as 00:00 whereas the
122
- # NREL TMY3 format utilizes 24:00. The SolarAnywhere file is therefore
123
- # included to test files with 00:00 timestamps are parsed correctly
124
- data, meta = tmy.read_tmy3(TMY3_SOLARANYWHERE, encoding='iso-8859-1',
125
- map_variables=False)
126
- pd.testing.assert_index_equal(data.index, solaranywhere_index)
127
- assert meta['USAF'] == 0
128
- assert meta['Name'] == 'Burlington United States'
129
- assert meta['State'] == 'NA'
130
- assert meta['TZ'] == -5.0
131
- assert meta['latitude'] == 44.465
132
- assert meta['longitude'] == -73.205
133
- assert meta['altitude'] == 41.0
File without changes
@@ -1,230 +0,0 @@
1
- import numpy as np
2
- import pytest
3
- from pvlib import pvsystem
4
- from pvlib.ivtools import sde
5
- from pvlib._deprecation import pvlibDeprecationWarning
6
-
7
-
8
- @pytest.fixture
9
- def get_test_iv_params():
10
- return {'IL': 8.0, 'I0': 5e-10, 'Rs': 0.2, 'Rsh': 1000, 'nNsVth': 1.61864}
11
-
12
-
13
- def test_fit_sandia_simple(get_test_iv_params, get_bad_iv_curves):
14
- test_params = get_test_iv_params
15
- test_params = dict(photocurrent=test_params['IL'],
16
- saturation_current=test_params['I0'],
17
- resistance_series=test_params['Rs'],
18
- resistance_shunt=test_params['Rsh'],
19
- nNsVth=test_params['nNsVth'])
20
- testcurve = pvsystem.singlediode(**test_params)
21
- v = np.linspace(0., testcurve['v_oc'], 300)
22
- i = pvsystem.i_from_v(voltage=v, **test_params)
23
- expected = tuple(test_params.values())
24
-
25
- result = sde.fit_sandia_simple(voltage=v, current=i)
26
- assert np.allclose(result, expected, rtol=5e-5)
27
-
28
- result = sde.fit_sandia_simple(voltage=v, current=i,
29
- v_oc=testcurve['v_oc'],
30
- i_sc=testcurve['i_sc'])
31
- assert np.allclose(result, expected, rtol=5e-5)
32
-
33
- result = sde.fit_sandia_simple(voltage=v, current=i,
34
- v_oc=testcurve['v_oc'],
35
- i_sc=testcurve['i_sc'],
36
- v_mp_i_mp=(testcurve['v_mp'],
37
- testcurve['i_mp']))
38
- assert np.allclose(result, expected, rtol=5e-5)
39
-
40
- result = sde.fit_sandia_simple(voltage=v, current=i, vlim=0.1)
41
- assert np.allclose(result, expected, rtol=5e-5)
42
-
43
-
44
- def test_fit_sandia_simple_bad_iv(get_bad_iv_curves):
45
- # bad IV curves for coverage of if/then in sde._sandia_simple_params
46
- v1, i1, v2, i2 = get_bad_iv_curves
47
- result = sde.fit_sandia_simple(voltage=v1, current=i1)
48
- assert np.allclose(result, (-2.4322856072799985, 8.826830831727355,
49
- 111.18558915546389, -63.56227601452038,
50
- -137.9965046659527))
51
- result = sde.fit_sandia_simple(voltage=v2, current=i2)
52
- assert np.allclose(result, (2.62405311949227, 5.075520636620032,
53
- -65.652554411442, 110.35202827739991,
54
- 174.49362093001415))
55
-
56
-
57
- @pytest.mark.parametrize('i,v,nsvth,expected', [
58
- (np.array([3., 2.9, 2.8, 2.7, 2.6, 2.5, 2.4, 1.7, 0.8, 0.]),
59
- np.array([0., 0.2, 0.4, 0.6, 0.8, 1., 1.2, 1.4, 1.45, 1.5]),
60
- 10.,
61
- (2.3392, 11.6865, -.232, -.2596, -.7119)),
62
- (np.array(
63
- [5., 4.9, 4.8, 4.7, 4.6, 4.5, 4.4, 4.3, 4.2, 4.1, 4., 3.8, 3.5, 1.7,
64
- 0.]),
65
- np.array(
66
- [0., .1, .2, .3, .4, .5, .6, .7, .8, .9, 1., 1.1, 1.18, 1.2, 1.22]),
67
- 15.,
68
- (-22.0795, 27.1196, -4.2076, -.0056, -.0498))])
69
- def test__fit_sandia_cocontent(i, v, nsvth, expected):
70
- # test confirms agreement with Matlab code. The returned parameters
71
- # are nonsense
72
- iph, io, rsh, rs, n = sde._fit_sandia_cocontent(v, i, nsvth)
73
- np.testing.assert_allclose(iph, np.array(expected[0]), atol=.0001)
74
- np.testing.assert_allclose(io, np.array([expected[1]]), atol=.0001)
75
- np.testing.assert_allclose(rs, np.array([expected[2]]), atol=.0001)
76
- np.testing.assert_allclose(rsh, np.array([expected[3]]), atol=.0001)
77
- np.testing.assert_allclose(n, np.array([expected[4]]), atol=.0001)
78
-
79
-
80
- def test__fit_sandia_cocontent_fail():
81
- # tests for ValueError
82
- exc_text = 'voltage and current should have the same length'
83
- with pytest.raises(ValueError, match=exc_text):
84
- sde._fit_sandia_cocontent(np.array([0., 1., 2.]), np.array([4., 3.]),
85
- 2.)
86
- exc_text = 'at least 6 voltage points are required; ~50 are recommended'
87
- with pytest.raises(ValueError, match=exc_text):
88
- sde._fit_sandia_cocontent(np.array([0., 1., 2., 3., 4.]),
89
- np.array([4., 3.9, 3.4, 2., 0.]),
90
- 2.)
91
-
92
-
93
- @pytest.fixture
94
- def get_bad_iv_curves():
95
- # v1, i1 produces a bad value for I0_voc
96
- v1 = np.array([0, 0.338798867469060, 0.677597734938121, 1.01639660240718,
97
- 1.35519546987624, 1.69399433734530, 2.03279320481436,
98
- 2.37159207228342, 2.71039093975248, 3.04918980722154,
99
- 3.38798867469060, 3.72678754215966, 4.06558640962873,
100
- 4.40438527709779, 4.74318414456685, 5.08198301203591,
101
- 5.42078187950497, 5.75958074697403, 6.09837961444309,
102
- 6.43717848191215, 6.77597734938121, 7.11477621685027,
103
- 7.45357508431933, 7.79237395178839, 8.13117281925745,
104
- 8.46997168672651, 8.80877055419557, 9.14756942166463,
105
- 9.48636828913369, 9.82516715660275, 10.1639660240718,
106
- 10.5027648915409, 10.8415637590099, 11.1803626264790,
107
- 11.5191614939481, 11.8579603614171, 12.1967592288862,
108
- 12.5355580963552, 12.8743569638243, 13.2131558312934,
109
- 13.5519546987624, 13.8907535662315, 14.2295524337005,
110
- 14.5683513011696, 14.9071501686387, 15.2459490361077,
111
- 15.5847479035768, 15.9235467710458, 16.2623456385149,
112
- 16.6011445059840, 16.9399433734530, 17.2787422409221,
113
- 17.6175411083911, 17.9563399758602, 18.2951388433293,
114
- 18.6339377107983, 18.9727365782674, 19.3115354457364,
115
- 19.6503343132055, 19.9891331806746, 20.3279320481436,
116
- 20.6667309156127, 21.0055297830817, 21.3443286505508,
117
- 21.6831275180199, 22.0219263854889, 22.3607252529580,
118
- 22.6995241204270, 23.0383229878961, 23.3771218553652,
119
- 23.7159207228342, 24.0547195903033, 24.3935184577724,
120
- 24.7323173252414, 25.0711161927105, 25.4099150601795,
121
- 25.7487139276486, 26.0875127951177, 26.4263116625867,
122
- 26.7651105300558, 27.1039093975248, 27.4427082649939,
123
- 27.7815071324630, 28.1203059999320, 28.4591048674011,
124
- 28.7979037348701, 29.1367026023392, 29.4755014698083,
125
- 29.8143003372773, 30.1530992047464, 30.4918980722154,
126
- 30.8306969396845, 31.1694958071536, 31.5082946746226,
127
- 31.8470935420917, 32.1858924095607, 32.5246912770298,
128
- 32.8634901444989, 33.2022890119679, 33.5410878794370])
129
- i1 = np.array([3.39430882774470, 2.80864492110761, 3.28358165429196,
130
- 3.41191190551673, 3.11975662808148, 3.35436585834612,
131
- 3.23953272899809, 3.60307083325333, 2.80478101508277,
132
- 2.80505102853845, 3.16918996870373, 3.21088388439857,
133
- 3.46332865310431, 3.09224155015883, 3.17541550741062,
134
- 3.32470179290389, 3.33224664316240, 3.07709000050741,
135
- 2.89141245343405, 3.01365768561537, 3.23265176770231,
136
- 3.32253647634228, 2.97900657569736, 3.31959549243966,
137
- 3.03375461550111, 2.97579298978937, 3.25432831375159,
138
- 2.89178382564454, 3.00341909207567, 3.72637492250097,
139
- 3.28379856976360, 2.96516169245835, 3.25658381110230,
140
- 3.41655911533139, 3.02718097944604, 3.11458376760376,
141
- 3.24617304369762, 3.45935502367636, 3.21557333256913,
142
- 3.27611176482650, 2.86954135732485, 3.32416319254657,
143
- 3.15277467598732, 3.08272557013770, 3.15602202666259,
144
- 3.49432799877150, 3.53863997177632, 3.10602611478455,
145
- 3.05373911151821, 3.09876772570781, 2.97417228624287,
146
- 2.84573593699237, 3.16288578405195, 3.06533173612783,
147
- 3.02118336639575, 3.34374977225502, 2.97255164138821,
148
- 3.19286135682863, 3.10999753817133, 3.26925354620079,
149
- 3.11957809501529, 3.20155017481720, 3.31724984405837,
150
- 3.42879043512927, 3.17933067619240, 3.47777362613969,
151
- 3.20708912539777, 3.48205761174907, 3.16804363684327,
152
- 3.14055472378230, 3.13445657434470, 2.91152696252998,
153
- 3.10984113847427, 2.80443349399489, 3.23146278164875,
154
- 2.94521083406108, 3.17388903141715, 3.05930294897030,
155
- 3.18985234673287, 3.27946609274898, 3.33717523113602,
156
- 2.76394303462702, 3.19375132937510, 2.82628616689450,
157
- 2.85238527394143, 2.82975892599489, 2.79196912313914,
158
- 2.72860792049395, 2.75585977414140, 2.44280222448805,
159
- 2.36052347370628, 2.26785071765738, 2.10868255743462,
160
- 2.06165739407987, 1.90047259509385, 1.39925575828709,
161
- 1.24749015957606, 0.867823806536762, 0.432752457749993, 0])
162
- # v2, i2 produces a bad value for I0_vmp
163
- v2 = np.array([0, 0.365686097622586, 0.731372195245173, 1.09705829286776,
164
- 1.46274439049035, 1.82843048811293, 2.19411658573552,
165
- 2.55980268335810, 2.92548878098069, 3.29117487860328,
166
- 3.65686097622586, 4.02254707384845, 4.38823317147104,
167
- 4.75391926909362, 5.11960536671621, 5.48529146433880,
168
- 5.85097756196138, 6.21666365958397, 6.58234975720655,
169
- 6.94803585482914, 7.31372195245173, 7.67940805007431,
170
- 8.04509414769690, 8.41078024531949, 8.77646634294207,
171
- 9.14215244056466, 9.50783853818725, 9.87352463580983,
172
- 10.2392107334324, 10.6048968310550, 10.9705829286776,
173
- 11.3362690263002, 11.7019551239228, 12.0676412215454,
174
- 12.4333273191679, 12.7990134167905, 13.1646995144131,
175
- 13.5303856120357, 13.8960717096583, 14.2617578072809,
176
- 14.6274439049035, 14.9931300025260, 15.3588161001486,
177
- 15.7245021977712, 16.0901882953938, 16.4558743930164,
178
- 16.8215604906390, 17.1872465882616, 17.5529326858841,
179
- 17.9186187835067, 18.2843048811293, 18.6499909787519,
180
- 19.0156770763745, 19.3813631739971, 19.7470492716197,
181
- 20.1127353692422, 20.4784214668648, 20.8441075644874,
182
- 21.2097936621100, 21.5754797597326, 21.9411658573552,
183
- 22.3068519549778, 22.6725380526004, 23.0382241502229,
184
- 23.4039102478455, 23.7695963454681, 24.1352824430907,
185
- 24.5009685407133, 24.8666546383359, 25.2323407359585,
186
- 25.5980268335810, 25.9637129312036, 26.3293990288262,
187
- 26.6950851264488, 27.0607712240714, 27.4264573216940,
188
- 27.7921434193166, 28.1578295169392, 28.5235156145617,
189
- 28.8892017121843, 29.2548878098069, 29.6205739074295,
190
- 29.9862600050521, 30.3519461026747, 30.7176322002973,
191
- 31.0833182979198, 31.4490043955424, 31.8146904931650,
192
- 32.1803765907876, 32.5460626884102, 32.9117487860328,
193
- 33.2774348836554, 33.6431209812779, 34.0088070789005,
194
- 34.3744931765231, 34.7401792741457, 35.1058653717683,
195
- 35.4715514693909, 35.8372375670135, 36.2029236646360])
196
- i2 = np.array([6.49218806928330, 6.49139336899548, 6.17810697175204,
197
- 6.75197816263663, 6.59529074137515, 6.18164578868300,
198
- 6.38709397931910, 6.30685422248427, 6.44640615548925,
199
- 6.88727230397772, 6.42074852785591, 6.46348580823746,
200
- 6.38642309763941, 5.66356277572311, 6.61010381702082,
201
- 6.33288284311125, 6.22475343933610, 6.30651399433833,
202
- 6.44435022944051, 6.43741711131908, 6.03536180208946,
203
- 6.23814639328170, 5.97229140403242, 6.20790000748341,
204
- 6.22933550182341, 6.22992127804882, 6.13400871899299,
205
- 6.83491312449950, 6.07952797245846, 6.35837746415450,
206
- 6.41972128662324, 6.85256717258275, 6.25807797296759,
207
- 6.25124948151766, 6.22229212812413, 6.72249444167406,
208
- 6.41085549981649, 6.75792874870056, 6.22096181559171,
209
- 6.47839564388996, 6.56010208597432, 6.63300966556949,
210
- 6.34617546039339, 6.79812221146153, 6.14486056194136,
211
- 6.14979256889311, 6.16883037644880, 6.57309183229605,
212
- 6.40064681038509, 6.18861448239873, 6.91340138179698,
213
- 5.94164388433788, 6.23638991745862, 6.31898940411710,
214
- 6.45247884556830, 6.58081455524297, 6.64915284801713,
215
- 6.07122119270245, 6.41398258148256, 6.62144271089614,
216
- 6.36377197712687, 6.51487678829345, 6.53418950147730,
217
- 6.18886469125371, 6.26341063475750, 6.83488211680259,
218
- 6.62699397226695, 6.41286837534735, 6.44060085001851,
219
- 6.48114130629288, 6.18607038456406, 6.16923370572396,
220
- 6.64223126283631, 6.07231852289266, 5.79043710204375,
221
- 6.48463886529882, 6.36263392044401, 6.11212476454494,
222
- 6.14573900812925, 6.12568047243240, 6.43836230231577,
223
- 6.02505694060219, 6.13819468942244, 6.22100593815064,
224
- 6.02394682666345, 5.89016573063789, 5.74448527739202,
225
- 5.50415294280017, 5.31883018164157, 4.87476769510305,
226
- 4.74386713755523, 4.60638346931628, 4.06177345572680,
227
- 3.73334482123538, 3.13848311672243, 2.71638862600768,
228
- 2.02963773590165, 1.49291145092070, 0.818343889647352, 0])
229
-
230
- return v1, i1, v2, i2