pvlib 0.9.4a1__tar.gz → 0.10.0__tar.gz

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 (349) hide show
  1. pvlib-0.10.0/AUTHORS.md +35 -0
  2. {pvlib-0.9.4a1 → pvlib-0.10.0}/LICENSE +5 -2
  3. {pvlib-0.9.4a1 → pvlib-0.10.0}/MANIFEST.in +0 -1
  4. {pvlib-0.9.4a1/pvlib.egg-info → pvlib-0.10.0}/PKG-INFO +2 -2
  5. {pvlib-0.9.4a1 → pvlib-0.10.0}/README.md +7 -18
  6. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/README.rst +2 -0
  7. pvlib-0.10.0/docs/examples/adr-pvarray/README.rst +3 -0
  8. pvlib-0.10.0/docs/examples/adr-pvarray/plot_fit_to_matrix.py +108 -0
  9. pvlib-0.10.0/docs/examples/adr-pvarray/plot_simulate_fast.py +176 -0
  10. pvlib-0.10.0/docs/examples/adr-pvarray/plot_simulate_system.py +158 -0
  11. pvlib-0.10.0/docs/examples/irradiance-decomposition/README.rst +3 -0
  12. pvlib-0.10.0/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +220 -0
  13. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +4 -3
  14. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_transposition_gain.py +6 -5
  15. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/iv-modeling/plot_singlediode.py +18 -15
  16. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +3 -2
  17. pvlib-0.10.0/docs/notes/Determining the average view factor from a module.pdf +0 -0
  18. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/conf.py +1 -1
  19. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/contributing.rst +10 -10
  20. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/index.rst +4 -4
  21. pvlib-0.10.0/docs/sphinx/source/reference/bifacial.rst +25 -0
  22. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/reference/classes.rst +0 -1
  23. pvlib-0.10.0/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +13 -0
  24. pvlib-0.10.0/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +10 -0
  25. pvlib-0.10.0/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +12 -0
  26. pvlib-0.10.0/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +12 -0
  27. pvlib-0.10.0/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +10 -0
  28. pvlib-0.10.0/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +15 -0
  29. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/reference/index.rst +3 -4
  30. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/reference/iotools.rst +7 -2
  31. pvlib-0.10.0/docs/sphinx/source/reference/irradiance/class-methods.rst +11 -0
  32. pvlib-0.10.0/docs/sphinx/source/reference/irradiance/clearness-index.rst +11 -0
  33. pvlib-0.10.0/docs/sphinx/source/reference/irradiance/components.rst +17 -0
  34. pvlib-0.10.0/docs/sphinx/source/reference/irradiance/decomposition.rst +20 -0
  35. pvlib-0.10.0/docs/sphinx/source/reference/irradiance/index.rst +13 -0
  36. pvlib-0.10.0/docs/sphinx/source/reference/irradiance/transposition.rst +16 -0
  37. pvlib-0.10.0/docs/sphinx/source/reference/pv_modeling/iam.rst +19 -0
  38. pvlib-0.10.0/docs/sphinx/source/reference/pv_modeling/index.rst +27 -0
  39. pvlib-0.10.0/docs/sphinx/source/reference/pv_modeling/inverter.rst +22 -0
  40. pvlib-0.10.0/docs/sphinx/source/reference/pv_modeling/other.rst +11 -0
  41. pvlib-0.10.0/docs/sphinx/source/reference/pv_modeling/parameters.rst +30 -0
  42. pvlib-0.10.0/docs/sphinx/source/reference/pv_modeling/sdm.rst +39 -0
  43. pvlib-0.10.0/docs/sphinx/source/reference/pv_modeling/system_models.rst +49 -0
  44. pvlib-0.10.0/docs/sphinx/source/reference/pv_modeling/temperature.rst +28 -0
  45. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/reference/scaling.rst +1 -0
  46. pvlib-0.10.0/docs/sphinx/source/reference/tracking.rst +15 -0
  47. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/bifacial.rst +9 -0
  48. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/clearsky.rst +8 -6
  49. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/comparison_pvlib_matlab.rst +2 -3
  50. pvlib-0.10.0/docs/sphinx/source/user_guide/faq.rst +174 -0
  51. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/index.rst +1 -1
  52. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/installation.rst +7 -12
  53. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/introtutorial.rst +1 -2
  54. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/pvsystem.rst +0 -13
  55. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/timetimezones.rst +2 -2
  56. pvlib-0.10.0/docs/sphinx/source/whatsnew/v0.10.0.rst +186 -0
  57. pvlib-0.10.0/docs/sphinx/source/whatsnew/v0.10.1.rst +34 -0
  58. pvlib-0.10.0/docs/sphinx/source/whatsnew/v0.9.4.rst +72 -0
  59. pvlib-0.10.0/docs/sphinx/source/whatsnew/v0.9.5.rst +94 -0
  60. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew.rst +3 -0
  61. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/__init__.py +3 -2
  62. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/atmosphere.py +23 -173
  63. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/bifacial/infinite_sheds.py +88 -277
  64. pvlib-0.10.0/pvlib/bifacial/utils.py +391 -0
  65. pvlib-0.10.0/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +5009 -0
  66. pvlib-0.10.0/pvlib/data/precise_iv_curves1.json +10251 -0
  67. pvlib-0.10.0/pvlib/data/precise_iv_curves2.json +10251 -0
  68. pvlib-0.10.0/pvlib/data/precise_iv_curves_parameter_sets1.csv +33 -0
  69. pvlib-0.10.0/pvlib/data/precise_iv_curves_parameter_sets2.csv +33 -0
  70. pvlib-0.10.0/pvlib/data/test_psm3_2017.csv +17521 -0
  71. pvlib-0.10.0/pvlib/data/test_psm3_2019_5min.csv +289 -0
  72. pvlib-0.10.0/pvlib/data/test_read_psm3.csv +17523 -0
  73. pvlib-0.10.0/pvlib/data/test_read_pvgis_horizon.csv +49 -0
  74. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/variables_style_rules.csv +3 -0
  75. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iam.py +207 -51
  76. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/inverter.py +6 -1
  77. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/__init__.py +7 -2
  78. pvlib-0.10.0/pvlib/iotools/acis.py +516 -0
  79. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/midc.py +4 -4
  80. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/psm3.py +59 -42
  81. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/pvgis.py +84 -28
  82. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/sodapro.py +8 -6
  83. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/srml.py +121 -18
  84. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/surfrad.py +2 -2
  85. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/tmy.py +146 -102
  86. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/irradiance.py +270 -15
  87. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/ivtools/sde.py +14 -20
  88. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/ivtools/sdm.py +31 -20
  89. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/ivtools/utils.py +127 -6
  90. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/location.py +3 -2
  91. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/modelchain.py +67 -70
  92. pvlib-0.10.0/pvlib/pvarray.py +225 -0
  93. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/pvsystem.py +169 -539
  94. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/shading.py +43 -2
  95. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/singlediode.py +216 -66
  96. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/snow.py +36 -15
  97. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/soiling.py +3 -3
  98. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/spa.py +327 -368
  99. pvlib-0.10.0/pvlib/spectrum/__init__.py +9 -0
  100. pvlib-0.10.0/pvlib/spectrum/mismatch.py +572 -0
  101. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/temperature.py +124 -13
  102. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/bifacial/test_infinite_sheds.py +44 -106
  103. pvlib-0.10.0/pvlib/tests/bifacial/test_utils.py +185 -0
  104. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/conftest.py +0 -31
  105. pvlib-0.10.0/pvlib/tests/iotools/test_acis.py +213 -0
  106. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_midc.py +6 -6
  107. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_psm3.py +7 -5
  108. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_pvgis.py +21 -14
  109. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_sodapro.py +1 -1
  110. pvlib-0.10.0/pvlib/tests/iotools/test_srml.py +164 -0
  111. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_tmy.py +43 -8
  112. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/ivtools/test_sde.py +19 -17
  113. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/ivtools/test_sdm.py +9 -4
  114. pvlib-0.10.0/pvlib/tests/ivtools/test_utils.py +173 -0
  115. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_atmosphere.py +8 -64
  116. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_clearsky.py +0 -1
  117. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_iam.py +74 -1
  118. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_irradiance.py +56 -2
  119. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_location.py +1 -1
  120. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_modelchain.py +33 -76
  121. pvlib-0.10.0/pvlib/tests/test_pvarray.py +46 -0
  122. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_pvsystem.py +366 -201
  123. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_shading.py +35 -0
  124. pvlib-0.10.0/pvlib/tests/test_singlediode.py +559 -0
  125. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_snow.py +84 -1
  126. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_soiling.py +8 -7
  127. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_solarposition.py +7 -7
  128. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_spa.py +6 -7
  129. pvlib-0.10.0/pvlib/tests/test_spectrum.py +317 -0
  130. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_temperature.py +29 -11
  131. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_tools.py +41 -0
  132. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_tracking.py +0 -149
  133. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tools.py +49 -25
  134. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tracking.py +1 -269
  135. {pvlib-0.9.4a1 → pvlib-0.10.0/pvlib.egg-info}/PKG-INFO +2 -2
  136. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib.egg-info/SOURCES.txt +41 -12
  137. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib.egg-info/requires.txt +1 -11
  138. {pvlib-0.9.4a1 → pvlib-0.10.0}/pyproject.toml +0 -3
  139. {pvlib-0.9.4a1 → pvlib-0.10.0}/setup.py +6 -7
  140. pvlib-0.9.4a1/AUTHORS.md +0 -32
  141. pvlib-0.9.4a1/docs/sphinx/source/reference/bifacial.rst +0 -13
  142. pvlib-0.9.4a1/docs/sphinx/source/reference/effects_on_pv_system_output.rst +0 -54
  143. pvlib-0.9.4a1/docs/sphinx/source/reference/forecasting.rst +0 -63
  144. pvlib-0.9.4a1/docs/sphinx/source/reference/irradiance.rst +0 -71
  145. pvlib-0.9.4a1/docs/sphinx/source/reference/pv_modeling.rst +0 -189
  146. pvlib-0.9.4a1/docs/sphinx/source/reference/tracking.rst +0 -28
  147. pvlib-0.9.4a1/docs/sphinx/source/user_guide/forecasts.rst +0 -520
  148. pvlib-0.9.4a1/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -45
  149. pvlib-0.9.4a1/docs/tutorials/forecast.ipynb +0 -6804
  150. pvlib-0.9.4a1/docs/tutorials/forecast_to_power.ipynb +0 -964
  151. pvlib-0.9.4a1/pvlib/bifacial/utils.py +0 -149
  152. pvlib-0.9.4a1/pvlib/data/adr-library-2013-10-01.csv +0 -1762
  153. pvlib-0.9.4a1/pvlib/data/test_psm3_2017.csv +0 -17521
  154. pvlib-0.9.4a1/pvlib/data/test_psm3_2019_5min.csv +0 -289
  155. pvlib-0.9.4a1/pvlib/data/test_read_psm3.csv +0 -17523
  156. pvlib-0.9.4a1/pvlib/forecast.py +0 -1211
  157. pvlib-0.9.4a1/pvlib/iotools/ecmwf_macc.py +0 -312
  158. pvlib-0.9.4a1/pvlib/spectrum/__init__.py +0 -3
  159. pvlib-0.9.4a1/pvlib/spectrum/mismatch.py +0 -237
  160. pvlib-0.9.4a1/pvlib/tests/bifacial/test_utils.py +0 -88
  161. pvlib-0.9.4a1/pvlib/tests/iotools/test_ecmwf_macc.py +0 -162
  162. pvlib-0.9.4a1/pvlib/tests/iotools/test_srml.py +0 -99
  163. pvlib-0.9.4a1/pvlib/tests/ivtools/test_utils.py +0 -78
  164. pvlib-0.9.4a1/pvlib/tests/test_forecast.py +0 -228
  165. pvlib-0.9.4a1/pvlib/tests/test_singlediode.py +0 -282
  166. pvlib-0.9.4a1/pvlib/tests/test_spectrum.py +0 -173
  167. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/bifacial/README.rst +0 -0
  168. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/bifacial/plot_bifi_model_mc.py +0 -0
  169. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +0 -0
  170. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +0 -0
  171. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/irradiance-transposition/README.rst +0 -0
  172. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
  173. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
  174. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
  175. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/iv-modeling/README.rst +0 -0
  176. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/reflections/README.rst +0 -0
  177. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
  178. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/shading/README.rst +0 -0
  179. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/shading/plot_partial_module_shading_simple.py +0 -0
  180. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
  181. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/soiling/README.rst +0 -0
  182. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
  183. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/solar-position/README.rst +0 -0
  184. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/solar-position/plot_sunpath_diagrams.py +0 -0
  185. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/solar-tracking/README.rst +0 -0
  186. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
  187. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
  188. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
  189. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
  190. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/spectrum/README.rst +0 -0
  191. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/examples/spectrum/plot_spectrl2_fig51A.py +0 -0
  192. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/Makefile +0 -0
  193. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/make.bat +0 -0
  194. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
  195. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_images/clonebutton.png +0 -0
  196. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
  197. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
  198. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
  199. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
  200. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
  201. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
  202. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
  203. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
  204. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
  205. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
  206. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_static/reference_format.css +0 -0
  207. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_static/version-alert.js +0 -0
  208. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
  209. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
  210. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
  211. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/_templates/edit-this-page.html +0 -0
  212. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/reference/airmass_atmospheric.rst +0 -0
  213. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/reference/clearsky.rst +0 -0
  214. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/reference/location.rst +0 -0
  215. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/reference/modelchain.rst +0 -0
  216. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/reference/solarposition.rst +0 -0
  217. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/modelchain.rst +0 -0
  218. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/package_overview.rst +0 -0
  219. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/singlediode.rst +0 -0
  220. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/user_guide/variables_style_rules.rst +0 -0
  221. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
  222. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
  223. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
  224. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
  225. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.3.0.txt +0 -0
  226. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
  227. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
  228. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
  229. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
  230. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
  231. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
  232. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
  233. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
  234. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
  235. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
  236. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
  237. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
  238. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
  239. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.6.1.rst +0 -0
  240. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
  241. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
  242. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.7.0.rst +0 -0
  243. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.7.1.rst +0 -0
  244. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.7.2.rst +0 -0
  245. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.8.0.rst +0 -0
  246. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.8.1.rst +0 -0
  247. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.0.rst +0 -0
  248. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.1.rst +0 -0
  249. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.2.rst +0 -0
  250. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.3.rst +0 -0
  251. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/tutorials/atmosphere.ipynb +0 -0
  252. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/tutorials/irradiance.ipynb +0 -0
  253. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/tutorials/pvsystem.ipynb +0 -0
  254. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/tutorials/solarposition.ipynb +0 -0
  255. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/tutorials/tmy.ipynb +0 -0
  256. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
  257. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/tutorials/tmy_to_power.ipynb +0 -0
  258. {pvlib-0.9.4a1 → pvlib-0.10.0}/docs/tutorials/tracking.ipynb +0 -0
  259. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/_deprecation.py +0 -0
  260. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/bifacial/__init__.py +0 -0
  261. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/bifacial/pvfactors.py +0 -0
  262. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/clearsky.py +0 -0
  263. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/12839.tm2 +0 -0
  264. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/703165TY.csv +0 -0
  265. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/723170TYA.CSV +0 -0
  266. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/Altitude.h5 +0 -0
  267. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/BIRD_08_16_2012.csv +0 -0
  268. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/BIRD_08_16_2012_patm.csv +0 -0
  269. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
  270. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
  271. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/CRN_with_problems.txt +0 -0
  272. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/LinkeTurbidities.h5 +0 -0
  273. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/NLD_Amsterdam062400_IWEC.epw +0 -0
  274. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/PVsyst_demo.csv +0 -0
  275. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/PVsyst_demo_model.csv +0 -0
  276. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/SRML-day-EUPO1801.txt +0 -0
  277. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/abq19056.dat +0 -0
  278. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/aod550_tcwv_20121101_test.nc +0 -0
  279. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/astm_g173_am15g.csv +0 -0
  280. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/bishop88_numerical_precision.csv +0 -0
  281. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/bsrn-lr0100-pay0616.dat +0 -0
  282. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/bsrn-pay0616.dat.gz +0 -0
  283. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/cams_mcclear_1min_verbose.csv +0 -0
  284. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/cams_mcclear_monthly.csv +0 -0
  285. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/cams_radiation_1min_verbose.csv +0 -0
  286. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/cams_radiation_monthly.csv +0 -0
  287. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/detect_clearsky_data.csv +0 -0
  288. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/greensboro_kimber_soil_manwash.dat +0 -0
  289. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/greensboro_kimber_soil_nowash.dat +0 -0
  290. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/inverter_fit_snl_meas.csv +0 -0
  291. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/inverter_fit_snl_sim.csv +0 -0
  292. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/ivtools_numdiff.csv +0 -0
  293. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/midc_20181014.txt +0 -0
  294. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/midc_raw_20181018.txt +0 -0
  295. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/midc_raw_short_header_20191115.txt +0 -0
  296. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/msn19056.dat +0 -0
  297. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
  298. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
  299. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/pvgis_tmy_meta.json +0 -0
  300. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/pvgis_tmy_test.dat +0 -0
  301. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/pvwatts_8760_rackmount.csv +0 -0
  302. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/pvwatts_8760_roofmount.csv +0 -0
  303. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
  304. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
  305. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
  306. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/singleaxis_tracker_wslope.csv +0 -0
  307. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
  308. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/spectrl2_example_spectra.csv +0 -0
  309. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/surfrad-slv16001.dat +0 -0
  310. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/test_psm3_tmy-2017.csv +0 -0
  311. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_2005_2016.csv +0 -0
  312. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_2005_2016.epw +0 -0
  313. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_2005_2016.json +0 -0
  314. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_2005_2016.txt +0 -0
  315. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_userhorizon.json +0 -0
  316. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/bsrn.py +0 -0
  317. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/crn.py +0 -0
  318. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/epw.py +0 -0
  319. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/iotools/solrad.py +0 -0
  320. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/ivtools/__init__.py +0 -0
  321. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/scaling.py +0 -0
  322. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/solarposition.py +0 -0
  323. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/spa_c_files/README.md +0 -0
  324. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/spa_c_files/SPA_NOTICE.md +0 -0
  325. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/spa_c_files/__init__.py +0 -0
  326. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/spa_c_files/cspa_py.pxd +0 -0
  327. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/spa_c_files/setup.py +0 -0
  328. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/spa_c_files/spa_py.pyx +0 -0
  329. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/spa_c_files/spa_py_example.py +0 -0
  330. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/spectrum/spectrl2.py +0 -0
  331. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/__init__.py +0 -0
  332. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/bifacial/__init__.py +0 -0
  333. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/bifacial/test_pvfactors.py +0 -0
  334. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/__init__.py +0 -0
  335. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_bsrn.py +0 -0
  336. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_crn.py +0 -0
  337. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_epw.py +0 -0
  338. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_solrad.py +0 -0
  339. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/iotools/test_surfrad.py +0 -0
  340. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/ivtools/__init__.py +0 -0
  341. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_conftest.py +0 -0
  342. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_inverter.py +0 -0
  343. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_numerical_precision.py +0 -0
  344. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/tests/test_scaling.py +0 -0
  345. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib/version.py +0 -0
  346. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib.egg-info/dependency_links.txt +0 -0
  347. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib.egg-info/not-zip-safe +0 -0
  348. {pvlib-0.9.4a1 → pvlib-0.10.0}/pvlib.egg-info/top_level.txt +0 -0
  349. {pvlib-0.9.4a1 → pvlib-0.10.0}/setup.cfg +0 -0
@@ -0,0 +1,35 @@
1
+ About the Copyright Holders
2
+ ===========================
3
+
4
+ * Copyright (c) 2023 pvlib python Contributors
5
+ * Copyright (c) 2014 PVLIB python Development Team
6
+ * Copyright (c) 2013 Sandia National Laboratories
7
+
8
+ The pvlib python Contributors comprises all authors of content of the pvlib python project.
9
+ A complete list of contributors can be found in the documentation.
10
+
11
+ The PVLIB python Development Team is the collection of developers of the
12
+ pvlib python project. Members of this team are included in the pvlib python Contributors.
13
+
14
+ Sandia National Laboratories originally developed pvlib python based on code in
15
+ PVLib MATLAB.
16
+
17
+
18
+ Our Copyright Policy
19
+ ====================
20
+
21
+ pvlib python uses a shared copyright model. Each contributor maintains copyright
22
+ over their contributions to pvlib python. However, it is important to note that
23
+ these contributions are typically only changes to the repositories. Thus,
24
+ the pvlib python source code, in its entirety, is not the copyright of any single
25
+ person or institution. Instead, it is the collective copyright of the
26
+ Contributors. If individual contributors want to make explicit their copyright
27
+ of the contributions they have made,
28
+ they should indicate their copyright using in-line comments in the code submitted
29
+ to the pvlib python repository, with the understanding that by contributing, they
30
+ grant the pvlib-python license.
31
+
32
+ License
33
+ =======
34
+
35
+ pvlib python is distributed under a 3-clause BSD license.
@@ -1,6 +1,9 @@
1
1
  BSD 3-Clause License
2
2
 
3
- Copyright (c) 2013-2021, Sandia National Laboratories and pvlib python Development Team
3
+ Copyright (c) 2023 pvlib python Contributors
4
+ Copyright (c) 2014 PVLIB python Development Team
5
+ Copyright (c) 2013 Sandia National Laboratories
6
+
4
7
  All rights reserved.
5
8
 
6
9
  Redistribution and use in source and binary forms, with or without modification,
@@ -13,7 +16,7 @@ are permitted provided that the following conditions are met:
13
16
  list of conditions and the following disclaimer in the documentation and/or
14
17
  other materials provided with the distribution.
15
18
 
16
- Neither the name of the {organization} nor the names of its
19
+ Neither the name of the copyright holder nor the names of its
17
20
  contributors may be used to endorse or promote products derived from
18
21
  this software without specific prior written permission.
19
22
 
@@ -19,7 +19,6 @@ global-exclude \#*
19
19
  global-exclude .ipynb_checkpoints
20
20
 
21
21
  exclude .coveragerc
22
- exclude .lgtm.yml
23
22
  exclude .stickler.yml
24
23
  exclude codecov.yml
25
24
  exclude readthedocs.yml
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pvlib
3
- Version: 0.9.4a1
3
+ Version: 0.10.0
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
6
  Author: pvlib python Developers
7
- Maintainer-email: holmgren@email.arizona.edu
7
+ Maintainer-email: pvlib-admin@googlegroups.com
8
8
  License: BSD 3-Clause
9
9
  Project-URL: Bug Tracker, https://github.com/pvlib/pvlib-python/issues
10
10
  Project-URL: Documentation, https://pvlib-python.readthedocs.io/
@@ -17,7 +17,7 @@
17
17
  <tr>
18
18
  <td>License</td>
19
19
  <td>
20
- <a href="https://github.com/pvlib/pvlib-python/blob/master/LICENSE">
20
+ <a href="https://github.com/pvlib/pvlib-python/blob/main/LICENSE">
21
21
  <img src="https://img.shields.io/pypi/l/pvlib.svg" alt="license" />
22
22
  </a>
23
23
  </td>
@@ -28,29 +28,18 @@
28
28
  <a href="http://pvlib-python.readthedocs.org/en/stable/">
29
29
  <img src="https://readthedocs.org/projects/pvlib-python/badge/?version=stable" alt="documentation build status" />
30
30
  </a>
31
- <a href="https://github.com/pvlib/pvlib-python/actions/workflows/pytest.yml?query=branch%3Amaster">
32
- <img src="https://github.com/pvlib/pvlib-python/actions/workflows/pytest.yml/badge.svg?branch=master" alt="GitHub Actions Testing Status" />
31
+ <a href="https://github.com/pvlib/pvlib-python/actions/workflows/pytest.yml?query=branch%3Amain">
32
+ <img src="https://github.com/pvlib/pvlib-python/actions/workflows/pytest.yml/badge.svg?branch=main" alt="GitHub Actions Testing Status" />
33
33
  </a>
34
34
  <a href="https://codecov.io/gh/pvlib/pvlib-python">
35
- <img src="https://codecov.io/gh/pvlib/pvlib-python/branch/master/graph/badge.svg" alt="codecov coverage" />
36
- </a>
37
- </td>
38
- </tr>
39
- <tr>
40
- <td>Code Quality</td>
41
- <td>
42
- <a href="https://lgtm.com/projects/g/pvlib/pvlib-python/context:python">
43
- <img src="https://img.shields.io/lgtm/grade/python/g/pvlib/pvlib-python.svg?logo=lgtm&logoWidth=18" alt="lgtm quality grade" />
44
- </a>
45
- <a href="https://lgtm.com/projects/g/pvlib/pvlib-python/alerts">
46
- <img src="https://img.shields.io/lgtm/alerts/g/pvlib/pvlib-python.svg?logo=lgtm&logoWidth=18" alt="lgtm alters" />
35
+ <img src="https://codecov.io/gh/pvlib/pvlib-python/branch/main/graph/badge.svg" alt="codecov coverage" />
47
36
  </a>
48
37
  </td>
49
38
  </tr>
50
39
  <tr>
51
40
  <td>Benchmarks</td>
52
41
  <td>
53
- <a href="https://pvlib-benchmarker.github.io/pvlib-benchmarks/">
42
+ <a href="https://pvlib.github.io/pvlib-benchmarks/">
54
43
  <img src="https://img.shields.io/badge/benchmarks-asv-lightgrey" />
55
44
  </a>
56
45
  </td>
@@ -93,8 +82,8 @@ but operate independently of it.
93
82
  Documentation
94
83
  =============
95
84
 
96
- Full documentation can be found at [readthedocs](http://pvlib-python.readthedocs.io/en/stable/).
97
-
85
+ Full documentation can be found at [readthedocs](http://pvlib-python.readthedocs.io/en/stable/),
86
+ including an [FAQ](http://pvlib-python.readthedocs.io/en/stable/user_guide/faq.html) page.
98
87
 
99
88
  Installation
100
89
  ============
@@ -1,3 +1,5 @@
1
+ .. _example_gallery:
2
+
1
3
  Example Gallery
2
4
  ===============
3
5
 
@@ -0,0 +1,3 @@
1
+ ADR Model for PV Module Efficiency
2
+ ----------------------------------
3
+
@@ -0,0 +1,108 @@
1
+ """
2
+ Obtaining ADR model parameters from IEC 61853 matrix measurements
3
+ =================================================================
4
+
5
+ There's a fitting function provided in pvlib to do exactly that.
6
+
7
+ Since PV module efficiency varies with irradiance and temperature
8
+ what better way to train a model than using efficiency measurement
9
+ over a broad range of temperature and irradiance levels?
10
+ The standard IEC 61853-1 defines a standard matrix of conditions
11
+ for such measurements and this example shows how the ADR model
12
+ parameters can be determined with just a few lines of code using
13
+ functions in pvlib-python.
14
+
15
+ Author: Anton Driesse
16
+ """
17
+
18
+ from io import StringIO
19
+ import pandas as pd
20
+ import matplotlib.pyplot as plt
21
+
22
+ from pvlib.pvarray import pvefficiency_adr, fit_pvefficiency_adr
23
+
24
+ # %% The text on this line is not displayed
25
+ #
26
+ # Here are some matrix measurements:
27
+ #
28
+
29
+ iec61853data = '''
30
+ irradiance temperature p_mp
31
+ 0 100 15.0 30.159
32
+ 1 200 15.0 63.057
33
+ 2 400 15.0 129.849
34
+ 3 600 15.0 197.744
35
+ 4 800 15.0 264.825
36
+ 5 1000 15.0 330.862
37
+ 6 100 25.0 29.250
38
+ 7 200 25.0 61.137
39
+ 8 400 25.0 126.445
40
+ 9 600 25.0 192.278
41
+ 10 800 25.0 257.561
42
+ 11 1000 25.0 322.305
43
+ 12 1100 25.0 354.174
44
+ 15 400 50.0 117.062
45
+ 16 600 50.0 177.959
46
+ 17 800 50.0 238.626
47
+ 18 1000 50.0 298.954
48
+ 19 1100 50.0 328.413
49
+ 23 600 75.0 162.966
50
+ 24 800 75.0 218.585
51
+ 25 1000 75.0 273.651
52
+ 26 1100 75.0 301.013
53
+ '''
54
+ df = pd.read_csv(StringIO(iec61853data), delim_whitespace=True)
55
+
56
+ # %%
57
+ #
58
+ # Now calculate the normalized or relative efficiency values
59
+ # and use the fitting function to determine the parameters.
60
+ # The parameters (shown below) can now be used to
61
+ # simulate the module operating in a PV system.
62
+ #
63
+
64
+ P_REF = 322.305 # (W) STC value from the table above
65
+ G_REF = 1000. # (W/m2)
66
+
67
+ df['eta_rel'] = (df['p_mp'] / P_REF) / (df['irradiance'] / G_REF)
68
+
69
+ adr_params = fit_pvefficiency_adr(df['irradiance'], df['temperature'],
70
+ df['eta_rel'])
71
+
72
+ for k, v in adr_params.items():
73
+ print('%-5s = %8.5f' % (k, v))
74
+
75
+ # %%
76
+ #
77
+ # Compare the model output to the original measurements.
78
+ # The chart below shows minor differences but due to their random nature
79
+ # they are most likely evidence of the limitations of measurement accuracy.
80
+ #
81
+
82
+ eta_rel_adr = pvefficiency_adr(df['irradiance'],
83
+ df['temperature'], **adr_params)
84
+
85
+ plt.figure()
86
+ plt.plot(df['irradiance'], df['eta_rel'], 'oc', ms=8)
87
+ plt.plot(df['irradiance'], eta_rel_adr, '.k')
88
+ plt.legend(['Lab measurements', 'ADR model fit'], loc='lower right')
89
+ plt.xlabel('Irradiance [W/m²]')
90
+ plt.ylabel('Relative efficiency [-]')
91
+ plt.grid(alpha=0.5)
92
+ plt.xlim(0, 1200)
93
+ plt.ylim(0.7, 1.1)
94
+ plt.show()
95
+
96
+ # %%
97
+ #
98
+ # References
99
+ # ----------
100
+ # .. [1] A. Driesse and J. S. Stein, "From IEC 61853 power measurements
101
+ # to PV system simulations", Sandia Report No. SAND2020-3877, 2020.
102
+ # :doi:`10.2172/1615179`
103
+ #
104
+ # .. [2] A. Driesse, M. Theristis and J. S. Stein, "A New Photovoltaic Module
105
+ # Efficiency Model for Energy Prediction and Rating," in IEEE Journal
106
+ # of Photovoltaics, vol. 11, no. 2, pp. 527-534, March 2021.
107
+ # :doi:`10.1109/JPHOTOV.2020.3045677`
108
+ #
@@ -0,0 +1,176 @@
1
+ """
2
+ Fast simulation using the ADR efficiency model starting from PVsyst parameters
3
+ ==============================================================================
4
+
5
+ Would you like to increase simulation speed by a factor of 4000+?
6
+
7
+ Simulation using single-diode models can be slow because the maximum
8
+ power point is usually found by an iterative search.
9
+ In this example we use the PVsyst single diode model to generate
10
+ a matrix of efficiency values, then determine the ADR model
11
+ parameters to approximate the behavior of the PVsyst model.
12
+ This way both PVsyst and ADR models can simulate the same PV module type.
13
+
14
+ To compare simulation speed, we run them using ``timeit``.
15
+
16
+ Author: Anton Driesse
17
+ """
18
+
19
+ import numpy as np
20
+ import matplotlib.pyplot as plt
21
+
22
+ from pvlib.pvsystem import calcparams_pvsyst, max_power_point
23
+ from pvlib.pvarray import fit_pvefficiency_adr, pvefficiency_adr
24
+
25
+ from timeit import timeit
26
+
27
+ # %% The text on this line is not displayed
28
+ #
29
+ # Generate a matrix of power values
30
+ #
31
+
32
+ pvsyst_params = {'alpha_sc': 0.0015,
33
+ 'gamma_ref': 1.20585,
34
+ 'mu_gamma': -9.41066e-05,
35
+ 'I_L_ref': 5.9301,
36
+ 'I_o_ref': 2.9691e-10,
37
+ 'R_sh_ref': 1144,
38
+ 'R_sh_0': 3850,
39
+ 'R_s': 0.6,
40
+ 'cells_in_series': 96,
41
+ 'R_sh_exp': 5.5,
42
+ 'EgRef': 1.12,
43
+ }
44
+
45
+ G_REF = 1000
46
+ T_REF = 25
47
+
48
+ params_stc = calcparams_pvsyst(G_REF, T_REF, **pvsyst_params)
49
+ mpp_stc = max_power_point(*params_stc)
50
+
51
+ P_REF = mpp_stc['p_mp']
52
+
53
+ g, t = np.meshgrid(np.linspace(100, 1100, 11),
54
+ np.linspace(0, 75, 4))
55
+
56
+ adjusted_params = calcparams_pvsyst(g, t, **pvsyst_params)
57
+ mpp = max_power_point(*adjusted_params)
58
+ p_mp = mpp['p_mp']
59
+
60
+ print('irradiance')
61
+ print(g[:1].round(0))
62
+
63
+ print('maximum power')
64
+ print(p_mp.round(1))
65
+
66
+ # %%
67
+ #
68
+ # Convert power matrix to efficiency and fit the ADR model to all the points
69
+ #
70
+
71
+ eta_rel_pvs = (p_mp / P_REF) / (g / G_REF)
72
+
73
+ adr_params = fit_pvefficiency_adr(g, t, eta_rel_pvs, dict_output=True)
74
+
75
+ for k, v in adr_params.items():
76
+ print('%-5s = %8.5f' % (k, v))
77
+
78
+ # %%
79
+ #
80
+ # Compare the ADR model output to the PVsyst model output
81
+ #
82
+
83
+ eta_rel_adr = pvefficiency_adr(g, t, **adr_params)
84
+ mbe = np.mean(eta_rel_adr - eta_rel_pvs)
85
+ rmse = np.sqrt(np.mean(np.square(eta_rel_adr - eta_rel_pvs)))
86
+
87
+ plt.figure()
88
+ plt.plot(g.flat, eta_rel_pvs.flat, 'oc', ms=8)
89
+ plt.plot(g.flat, eta_rel_adr.flat, '.k')
90
+ plt.grid(alpha=0.5)
91
+ plt.xlim(0, 1200)
92
+ plt.ylim(0.7, 1.1)
93
+
94
+ plt.xlabel('Irradiance [W/m²]')
95
+ plt.ylabel('Relative efficiency [-]')
96
+ plt.legend(['PVsyst model output', 'ADR model fit'], loc='lower right')
97
+ plt.title('Differences: mean %.5f, RMS %.5f' % (mbe, rmse))
98
+ plt.show()
99
+
100
+ # %%
101
+ #
102
+ # Generate some random irradiance and temperature data
103
+ #
104
+
105
+ g = np.random.uniform(0, 1200, 8760)
106
+ t = np.random.uniform(20, 80, 8760)
107
+
108
+
109
+ def run_adr():
110
+ eta_rel = pvefficiency_adr(g, t, **adr_params)
111
+ p_adr = P_REF * eta_rel * (g / G_REF)
112
+ return p_adr
113
+
114
+
115
+ def run_pvsyst():
116
+ adjusted_params = calcparams_pvsyst(g, t, **pvsyst_params)
117
+ mpp = max_power_point(*adjusted_params)
118
+ p_pvs = mpp['p_mp']
119
+ return p_pvs
120
+
121
+
122
+ elapsed_adr = timeit('run_adr()', number=1, globals=globals())
123
+ elapsed_pvs = timeit('run_pvsyst()', number=1, globals=globals())
124
+
125
+ print('Elapsed time for the PVsyst model: %9.6f s' % elapsed_pvs)
126
+ print('Elapsed time for the ADR model: %9.6f s' % elapsed_adr)
127
+ print('ADR acceleration ratio: %9.0f x' % (elapsed_pvs/elapsed_adr))
128
+
129
+ # %%
130
+ #
131
+ # That's fast, but is it accurate?
132
+ # Run them again to compare the simulated power values
133
+ #
134
+
135
+ p_pvs = run_pvsyst()
136
+ p_adr = run_adr()
137
+
138
+ mbe = np.mean(p_adr - p_pvs)
139
+ rmse = np.sqrt(np.mean(np.square(p_adr - p_pvs)))
140
+
141
+ # sphinx_gallery_thumbnail_number = 2
142
+ plt.figure()
143
+ pc = plt.scatter(p_pvs, p_adr-p_pvs, c=t, cmap='jet')
144
+ plt.colorbar()
145
+ pc.set_alpha(0.25)
146
+ plt.ylim(-1.4, 1.4)
147
+ plt.grid(alpha=0.5)
148
+
149
+ plt.xlabel('Power calculated using the PVsyst model [W]')
150
+ plt.ylabel('ADR model power - PVsyst model power [W]')
151
+ plt.title('Differences: mean %.2f W, RMS %.2f W' % (mbe, rmse))
152
+ plt.show()
153
+
154
+ # %%
155
+ #
156
+ # There are some small systematic differences between the original
157
+ # PVsyst model output and the ADR fit. But these differences are
158
+ # much smaller than the typical uncertainty in measured output
159
+ # of modules of this type. The PVsyst model and the parameters
160
+ # we started with are of course also only approximations of the
161
+ # true module behavior.
162
+ #
163
+
164
+ # %%
165
+ #
166
+ # References
167
+ # ----------
168
+ # .. [1] A. Driesse and J. S. Stein, "From IEC 61853 power measurements
169
+ # to PV system simulations", Sandia Report No. SAND2020-3877, 2020.
170
+ # :doi:`10.2172/1615179`
171
+ #
172
+ # .. [2] A. Driesse, M. Theristis and J. S. Stein, "A New Photovoltaic Module
173
+ # Efficiency Model for Energy Prediction and Rating," in IEEE Journal
174
+ # of Photovoltaics, vol. 11, no. 2, pp. 527-534, March 2021.
175
+ # :doi:`10.1109/JPHOTOV.2020.3045677`
176
+ #
@@ -0,0 +1,158 @@
1
+ """
2
+ Simulating PV system DC output using the ADR module efficiency model
3
+ ====================================================================
4
+
5
+ Time series processing with the ADR model is really easy.
6
+
7
+ This example reads a TMY3 weather file, and runs a basic simulation
8
+ on a fixed latitude-tilt system.
9
+ Efficiency is independent of system size, so adjusting the system
10
+ capacity is just a matter of setting the desired value, e.g. P_STC = 5000.
11
+
12
+ Author: Anton Driesse
13
+ """
14
+
15
+ import os
16
+ import pandas as pd
17
+ import matplotlib.pyplot as plt
18
+
19
+ import pvlib
20
+ from pvlib import iotools, location
21
+ from pvlib.irradiance import get_total_irradiance
22
+ from pvlib.pvarray import pvefficiency_adr
23
+
24
+ # %%
25
+ #
26
+ # Read a TMY3 file containing weather data and select needed columns
27
+ #
28
+
29
+ PVLIB_DIR = pvlib.__path__[0]
30
+ DATA_FILE = os.path.join(PVLIB_DIR, 'data', '723170TYA.CSV')
31
+
32
+ tmy, metadata = iotools.read_tmy3(DATA_FILE, coerce_year=1990,
33
+ map_variables=True)
34
+
35
+ df = pd.DataFrame({'ghi': tmy['ghi'], 'dhi': tmy['dhi'], 'dni': tmy['dni'],
36
+ 'temp_air': tmy['temp_air'],
37
+ 'wind_speed': tmy['wind_speed'],
38
+ })
39
+
40
+ # %%
41
+ #
42
+ # Shift timestamps to middle of hour and then calculate sun positions
43
+ #
44
+
45
+ df.index = df.index - pd.Timedelta(minutes=30)
46
+
47
+ loc = location.Location.from_tmy(metadata)
48
+ solpos = loc.get_solarposition(df.index)
49
+
50
+ # %%
51
+ #
52
+ # Determine total irradiance on a fixed-tilt array
53
+ #
54
+
55
+ TILT = metadata['latitude']
56
+ ORIENT = 180
57
+
58
+ total_irrad = get_total_irradiance(TILT, ORIENT,
59
+ solpos.apparent_zenith, solpos.azimuth,
60
+ df.dni, df.ghi, df.dhi)
61
+
62
+ df['poa_global'] = total_irrad.poa_global
63
+
64
+ # %%
65
+ #
66
+ # Estimate the expected operating temperature of the PV modules
67
+ #
68
+
69
+ df['temp_pv'] = pvlib.temperature.faiman(df.poa_global, df.temp_air,
70
+ df.wind_speed)
71
+
72
+ # %%
73
+ #
74
+ # Now we're ready to calculate PV array DC output power based
75
+ # on POA irradiance and PV module operating temperature.
76
+ # Among the models available in pvlib-python to do this are:
77
+ #
78
+ # - PVWatts
79
+ # - SAPM
80
+ # - single-diode model variations
81
+ #
82
+ # And now also the ADR PV efficiency model
83
+ #
84
+ # Simulation is done in two steps:
85
+ #
86
+ # - first calculate efficiency using the ADR model,
87
+ # - then convert (scale up) efficiency to power.
88
+ #
89
+
90
+ # Borrow the ADR model parameters from the other example:
91
+
92
+ adr_params = {'k_a': 0.99924,
93
+ 'k_d': -5.49097,
94
+ 'tc_d': 0.01918,
95
+ 'k_rs': 0.06999,
96
+ 'k_rsh': 0.26144
97
+ }
98
+
99
+ df['eta_rel'] = pvefficiency_adr(df['poa_global'], df['temp_pv'], **adr_params)
100
+
101
+ # Set the desired array size:
102
+ P_STC = 5000. # (W)
103
+
104
+ # and the irradiance level needed to achieve this output:
105
+ G_STC = 1000. # (W/m2)
106
+
107
+ df['p_mp'] = P_STC * df['eta_rel'] * (df['poa_global'] / G_STC)
108
+
109
+ # %%
110
+ #
111
+ # Show how power and efficiency vary with both irradiance and temperature
112
+ #
113
+
114
+ plt.figure()
115
+ pc = plt.scatter(df['poa_global'], df['eta_rel'], c=df['temp_pv'], cmap='jet')
116
+ plt.colorbar(label='Temperature [C]', ax=plt.gca())
117
+ pc.set_alpha(0.25)
118
+ plt.grid(alpha=0.5)
119
+ plt.ylim(0.48)
120
+ plt.xlabel('Irradiance [W/m²]')
121
+ plt.ylabel('Relative efficiency [-]')
122
+ plt.show()
123
+
124
+ plt.figure()
125
+ pc = plt.scatter(df['poa_global'], df['p_mp'], c=df['temp_pv'], cmap='jet')
126
+ plt.colorbar(label='Temperature [C]', ax=plt.gca())
127
+ pc.set_alpha(0.25)
128
+ plt.grid(alpha=0.5)
129
+ plt.xlabel('Irradiance [W/m²]')
130
+ plt.ylabel('Array power [W]')
131
+ plt.show()
132
+
133
+ # %%
134
+ #
135
+ # One day:
136
+ #
137
+
138
+ DEMO_DAY = '1990-08-05'
139
+
140
+ plt.figure()
141
+ plt.plot(df['p_mp'][DEMO_DAY])
142
+ plt.xticks(rotation=30)
143
+ plt.ylabel('Power [W]')
144
+ plt.show()
145
+
146
+ # %%
147
+ #
148
+ # References
149
+ # ----------
150
+ # .. [1] A. Driesse and J. S. Stein, "From IEC 61853 power measurements
151
+ # to PV system simulations", Sandia Report No. SAND2020-3877, 2020.
152
+ # :doi:`10.2172/1615179`
153
+ #
154
+ # .. [2] A. Driesse, M. Theristis and J. S. Stein, "A New Photovoltaic Module
155
+ # Efficiency Model for Energy Prediction and Rating," in IEEE Journal
156
+ # of Photovoltaics, vol. 11, no. 2, pp. 527-534, March 2021.
157
+ # :doi:`10.1109/JPHOTOV.2020.3045677`
158
+ #
@@ -0,0 +1,3 @@
1
+ Irradiance Decomposition
2
+ ------------------------
3
+