pvlib 0.10.3__tar.gz → 0.10.5__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 (358) hide show
  1. {pvlib-0.10.3/pvlib.egg-info → pvlib-0.10.5}/PKG-INFO +9 -33
  2. {pvlib-0.10.3 → pvlib-0.10.5}/README.md +30 -27
  3. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/shading/plot_partial_module_shading_simple.py +1 -1
  4. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/solar-position/plot_sunpath_diagrams.py +1 -2
  5. pvlib-0.10.5/docs/examples/system-models/README.rst +2 -0
  6. pvlib-0.10.5/docs/examples/system-models/plot_oedi_9068.py +283 -0
  7. pvlib-0.10.5/docs/sphinx/source/_images/Anderson_Mikofski_2020_Fig5.jpg +0 -0
  8. pvlib-0.10.5/docs/sphinx/source/_images/OEDI_9068_daily_timeseries.png +0 -0
  9. pvlib-0.10.5/docs/sphinx/source/_images/OEDI_9068_inverter1_comparison.png +0 -0
  10. pvlib-0.10.5/docs/sphinx/source/_images/OEDI_9068_inverter2_comparison.png +0 -0
  11. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/conf.py +6 -3
  12. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/contributing.rst +1 -5
  13. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/index.rst +57 -42
  14. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +2 -1
  15. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/iotools.rst +2 -0
  16. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/system_models.rst +10 -1
  17. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/clearsky.rst +1 -15
  18. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/index.rst +0 -1
  19. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/installation.rst +4 -13
  20. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/package_overview.rst +2 -2
  21. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/timetimezones.rst +3 -10
  22. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/variables_style_rules.rst +3 -7
  23. pvlib-0.10.5/docs/sphinx/source/whatsnew/v0.10.4.rst +70 -0
  24. pvlib-0.10.5/docs/sphinx/source/whatsnew/v0.10.5.rst +44 -0
  25. pvlib-0.10.3/docs/sphinx/source/whatsnew/v0.10.4.rst → pvlib-0.10.5/docs/sphinx/source/whatsnew/v0.11.0.rst +11 -4
  26. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.3.0.txt +1 -1
  27. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.1.rst +1 -1
  28. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew.rst +2 -0
  29. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/__init__.py +1 -0
  30. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/bifacial/utils.py +2 -1
  31. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/clearsky.py +7 -8
  32. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iam.py +3 -3
  33. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/inverter.py +3 -3
  34. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/__init__.py +2 -0
  35. pvlib-0.10.5/pvlib/iotools/solargis.py +214 -0
  36. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/solcast.py +2 -7
  37. pvlib-0.10.5/pvlib/iotools/solrad.py +221 -0
  38. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/srml.py +12 -12
  39. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/surfrad.py +2 -2
  40. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/irradiance.py +28 -22
  41. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/location.py +3 -1
  42. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/modelchain.py +10 -9
  43. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/pvarray.py +127 -0
  44. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/pvsystem.py +52 -43
  45. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/scaling.py +4 -2
  46. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/shading.py +110 -0
  47. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/singlediode.py +37 -9
  48. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/snow.py +3 -1
  49. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/solarposition.py +38 -30
  50. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spa.py +3 -11
  51. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spectrum/mismatch.py +2 -1
  52. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/temperature.py +3 -2
  53. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/bifacial/test_utils.py +6 -5
  54. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/conftest.py +13 -14
  55. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_sodapro.py +2 -1
  56. pvlib-0.10.5/pvlib/tests/iotools/test_solargis.py +68 -0
  57. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_solcast.py +2 -2
  58. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_solrad.py +58 -7
  59. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_srml.py +7 -14
  60. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_clearsky.py +1 -1
  61. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_irradiance.py +24 -8
  62. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_location.py +1 -1
  63. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_modelchain.py +37 -26
  64. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_pvarray.py +25 -0
  65. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_pvsystem.py +76 -104
  66. pvlib-0.10.5/pvlib/tests/test_shading.py +225 -0
  67. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_singlediode.py +68 -10
  68. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_snow.py +1 -1
  69. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_solarposition.py +121 -7
  70. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_spa.py +5 -15
  71. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_temperature.py +4 -4
  72. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_tracking.py +2 -2
  73. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tracking.py +8 -38
  74. pvlib-0.10.5/pvlib/version.py +6 -0
  75. {pvlib-0.10.3 → pvlib-0.10.5/pvlib.egg-info}/PKG-INFO +9 -33
  76. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib.egg-info/SOURCES.txt +10 -3
  77. pvlib-0.10.5/pvlib.egg-info/requires.txt +38 -0
  78. pvlib-0.10.5/pyproject.toml +105 -0
  79. pvlib-0.10.5/setup.py +36 -0
  80. pvlib-0.10.3/docs/sphinx/source/user_guide/comparison_pvlib_matlab.rst +0 -88
  81. pvlib-0.10.3/pvlib/iotools/solrad.py +0 -123
  82. pvlib-0.10.3/pvlib/spa_c_files/SPA_NOTICE.md +0 -39
  83. pvlib-0.10.3/pvlib/tests/test_shading.py +0 -106
  84. pvlib-0.10.3/pvlib/version.py +0 -10
  85. pvlib-0.10.3/pvlib.egg-info/not-zip-safe +0 -1
  86. pvlib-0.10.3/pvlib.egg-info/requires.txt +0 -62
  87. pvlib-0.10.3/pyproject.toml +0 -22
  88. pvlib-0.10.3/setup.py +0 -127
  89. {pvlib-0.10.3 → pvlib-0.10.5}/AUTHORS.md +0 -0
  90. {pvlib-0.10.3 → pvlib-0.10.5}/LICENSE +0 -0
  91. {pvlib-0.10.3 → pvlib-0.10.5}/MANIFEST.in +0 -0
  92. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/README.rst +0 -0
  93. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/adr-pvarray/README.rst +0 -0
  94. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/adr-pvarray/plot_fit_to_matrix.py +0 -0
  95. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/adr-pvarray/plot_simulate_fast.py +0 -0
  96. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/adr-pvarray/plot_simulate_system.py +0 -0
  97. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/bifacial/README.rst +0 -0
  98. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/bifacial/plot_bifi_model_mc.py +0 -0
  99. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +0 -0
  100. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +0 -0
  101. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-decomposition/README.rst +0 -0
  102. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +0 -0
  103. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-transposition/README.rst +0 -0
  104. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
  105. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
  106. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
  107. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_rtranpose_limitations.py +0 -0
  108. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_rtranpose_year.py +0 -0
  109. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +0 -0
  110. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_transposition_gain.py +0 -0
  111. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/iv-modeling/README.rst +0 -0
  112. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/iv-modeling/plot_singlediode.py +0 -0
  113. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/reflections/README.rst +0 -0
  114. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/reflections/plot_convert_iam_models.py +0 -0
  115. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
  116. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/reflections/plot_fit_iam_models.py +0 -0
  117. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/shading/README.rst +0 -0
  118. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
  119. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/shading/plot_simple_irradiance_adjustment_for_horizon_shading.py +0 -0
  120. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/soiling/README.rst +0 -0
  121. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
  122. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +0 -0
  123. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/solar-position/README.rst +0 -0
  124. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/solar-tracking/README.rst +0 -0
  125. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
  126. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
  127. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
  128. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
  129. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/spectrum/README.rst +0 -0
  130. {pvlib-0.10.3 → pvlib-0.10.5}/docs/examples/spectrum/plot_spectrl2_fig51A.py +0 -0
  131. {pvlib-0.10.3 → pvlib-0.10.5}/docs/notes/Determining the average view factor from a module.pdf +0 -0
  132. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/Makefile +0 -0
  133. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/make.bat +0 -0
  134. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
  135. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_images/clonebutton.png +0 -0
  136. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
  137. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
  138. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
  139. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
  140. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
  141. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
  142. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
  143. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
  144. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
  145. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
  146. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_static/reference_format.css +0 -0
  147. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_static/version-alert.js +0 -0
  148. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
  149. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
  150. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
  151. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/_templates/edit-this-page.html +0 -0
  152. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/airmass_atmospheric.rst +0 -0
  153. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/bifacial.rst +0 -0
  154. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/classes.rst +0 -0
  155. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/clearsky.rst +0 -0
  156. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +0 -0
  157. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +0 -0
  158. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +0 -0
  159. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +0 -0
  160. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +0 -0
  161. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/index.rst +0 -0
  162. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/class-methods.rst +0 -0
  163. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/clearness-index.rst +0 -0
  164. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/components.rst +0 -0
  165. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/decomposition.rst +0 -0
  166. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/index.rst +0 -0
  167. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/transposition.rst +0 -0
  168. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/location.rst +0 -0
  169. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/modelchain.rst +0 -0
  170. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/iam.rst +0 -0
  171. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/index.rst +0 -0
  172. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/inverter.rst +0 -0
  173. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/other.rst +0 -0
  174. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/parameters.rst +0 -0
  175. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/sdm.rst +0 -0
  176. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/temperature.rst +0 -0
  177. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/scaling.rst +0 -0
  178. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/solarposition.rst +0 -0
  179. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/reference/tracking.rst +0 -0
  180. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/bifacial.rst +0 -0
  181. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/faq.rst +0 -0
  182. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/introtutorial.rst +0 -0
  183. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/modelchain.rst +0 -0
  184. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/pvsystem.rst +0 -0
  185. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/singlediode.rst +0 -0
  186. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/user_guide/weather_data.rst +0 -0
  187. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
  188. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.10.0.rst +0 -0
  189. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.10.1.rst +0 -0
  190. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.10.2.rst +0 -0
  191. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.10.3.rst +0 -0
  192. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
  193. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
  194. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
  195. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
  196. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
  197. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
  198. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
  199. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
  200. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
  201. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
  202. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
  203. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
  204. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
  205. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
  206. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
  207. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
  208. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.6.1.rst +0 -0
  209. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
  210. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
  211. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.7.0.rst +0 -0
  212. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.7.1.rst +0 -0
  213. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.7.2.rst +0 -0
  214. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.8.0.rst +0 -0
  215. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.8.1.rst +0 -0
  216. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.0.rst +0 -0
  217. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.2.rst +0 -0
  218. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.3.rst +0 -0
  219. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -0
  220. {pvlib-0.10.3 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.5.rst +0 -0
  221. {pvlib-0.10.3 → pvlib-0.10.5}/docs/tutorials/atmosphere.ipynb +0 -0
  222. {pvlib-0.10.3 → pvlib-0.10.5}/docs/tutorials/irradiance.ipynb +0 -0
  223. {pvlib-0.10.3 → pvlib-0.10.5}/docs/tutorials/pvsystem.ipynb +0 -0
  224. {pvlib-0.10.3 → pvlib-0.10.5}/docs/tutorials/solarposition.ipynb +0 -0
  225. {pvlib-0.10.3 → pvlib-0.10.5}/docs/tutorials/tmy.ipynb +0 -0
  226. {pvlib-0.10.3 → pvlib-0.10.5}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
  227. {pvlib-0.10.3 → pvlib-0.10.5}/docs/tutorials/tmy_to_power.ipynb +0 -0
  228. {pvlib-0.10.3 → pvlib-0.10.5}/docs/tutorials/tracking.ipynb +0 -0
  229. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/_deprecation.py +0 -0
  230. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/atmosphere.py +0 -0
  231. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/bifacial/__init__.py +0 -0
  232. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/bifacial/infinite_sheds.py +0 -0
  233. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/bifacial/pvfactors.py +0 -0
  234. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/12839.tm2 +0 -0
  235. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/703165TY.csv +0 -0
  236. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/723170TYA.CSV +0 -0
  237. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/Altitude.h5 +0 -0
  238. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/BIRD_08_16_2012.csv +0 -0
  239. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/BIRD_08_16_2012_patm.csv +0 -0
  240. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
  241. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv +0 -0
  242. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv +0 -0
  243. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/CPS SCH275KTL-DO-US-800-250kW_275kVA_1.OND +0 -0
  244. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
  245. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/CRN_with_problems.txt +0 -0
  246. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/ET-M772BH550GL.PAN +0 -0
  247. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/LinkeTurbidities.h5 +0 -0
  248. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/NLD_Amsterdam062400_IWEC.epw +0 -0
  249. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/PVsyst_demo.csv +0 -0
  250. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/PVsyst_demo_model.csv +0 -0
  251. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/SRML-day-EUPO1801.txt +0 -0
  252. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/abq19056.dat +0 -0
  253. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +0 -0
  254. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/aod550_tcwv_20121101_test.nc +0 -0
  255. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/astm_g173_am15g.csv +0 -0
  256. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/bishop88_numerical_precision.csv +0 -0
  257. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/bsrn-lr0100-pay0616.dat +0 -0
  258. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/bsrn-pay0616.dat.gz +0 -0
  259. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/cams_mcclear_1min_verbose.csv +0 -0
  260. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/cams_mcclear_monthly.csv +0 -0
  261. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/cams_radiation_1min_verbose.csv +0 -0
  262. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/cams_radiation_monthly.csv +0 -0
  263. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/detect_clearsky_data.csv +0 -0
  264. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/detect_clearsky_threshold_data.csv +0 -0
  265. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/greensboro_kimber_soil_manwash.dat +0 -0
  266. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/greensboro_kimber_soil_nowash.dat +0 -0
  267. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/inverter_fit_snl_meas.csv +0 -0
  268. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/inverter_fit_snl_sim.csv +0 -0
  269. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/ivtools_numdiff.csv +0 -0
  270. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/midc_20181014.txt +0 -0
  271. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/midc_raw_20181018.txt +0 -0
  272. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/midc_raw_short_header_20191115.txt +0 -0
  273. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/msn19056.dat +0 -0
  274. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/precise_iv_curves1.json +0 -0
  275. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/precise_iv_curves2.json +0 -0
  276. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/precise_iv_curves_parameter_sets1.csv +0 -0
  277. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/precise_iv_curves_parameter_sets2.csv +0 -0
  278. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
  279. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
  280. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/pvgis_tmy_meta.json +0 -0
  281. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/pvgis_tmy_test.dat +0 -0
  282. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/pvwatts_8760_rackmount.csv +0 -0
  283. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/pvwatts_8760_roofmount.csv +0 -0
  284. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
  285. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
  286. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
  287. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/singleaxis_tracker_wslope.csv +0 -0
  288. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
  289. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/spectrl2_example_spectra.csv +0 -0
  290. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/surfrad-slv16001.dat +0 -0
  291. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/test_psm3_2017.csv +0 -0
  292. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/test_psm3_2019_5min.csv +0 -0
  293. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/test_psm3_tmy-2017.csv +0 -0
  294. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/test_read_psm3.csv +0 -0
  295. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/test_read_pvgis_horizon.csv +0 -0
  296. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_2005_2016.csv +0 -0
  297. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_2005_2016.epw +0 -0
  298. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_2005_2016.json +0 -0
  299. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_2005_2016.txt +0 -0
  300. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_userhorizon.json +0 -0
  301. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/data/variables_style_rules.csv +0 -0
  302. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/acis.py +0 -0
  303. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/bsrn.py +0 -0
  304. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/crn.py +0 -0
  305. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/epw.py +0 -0
  306. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/midc.py +0 -0
  307. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/panond.py +0 -0
  308. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/psm3.py +0 -0
  309. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/pvgis.py +0 -0
  310. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/sodapro.py +0 -0
  311. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/solaranywhere.py +0 -0
  312. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/iotools/tmy.py +0 -0
  313. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/ivtools/__init__.py +0 -0
  314. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/ivtools/sde.py +0 -0
  315. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/ivtools/sdm.py +0 -0
  316. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/ivtools/utils.py +0 -0
  317. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/soiling.py +0 -0
  318. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spa_c_files/README.md +0 -0
  319. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spa_c_files/__init__.py +0 -0
  320. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spa_c_files/cspa_py.pxd +0 -0
  321. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spa_c_files/setup.py +0 -0
  322. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spa_c_files/spa_py.pyx +0 -0
  323. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spa_c_files/spa_py_example.py +0 -0
  324. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spectrum/__init__.py +0 -0
  325. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/spectrum/spectrl2.py +0 -0
  326. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/__init__.py +0 -0
  327. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/bifacial/__init__.py +0 -0
  328. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/bifacial/test_infinite_sheds.py +0 -0
  329. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/bifacial/test_pvfactors.py +0 -0
  330. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/__init__.py +0 -0
  331. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_acis.py +0 -0
  332. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_bsrn.py +0 -0
  333. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_crn.py +0 -0
  334. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_epw.py +0 -0
  335. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_midc.py +0 -0
  336. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_panond.py +0 -0
  337. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_psm3.py +0 -0
  338. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_pvgis.py +0 -0
  339. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_solaranywhere.py +0 -0
  340. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_surfrad.py +0 -0
  341. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/iotools/test_tmy.py +0 -0
  342. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/ivtools/__init__.py +0 -0
  343. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/ivtools/test_sde.py +0 -0
  344. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/ivtools/test_sdm.py +0 -0
  345. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/ivtools/test_utils.py +0 -0
  346. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_atmosphere.py +0 -0
  347. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_conftest.py +0 -0
  348. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_iam.py +0 -0
  349. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_inverter.py +0 -0
  350. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_numerical_precision.py +0 -0
  351. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_scaling.py +0 -0
  352. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_soiling.py +0 -0
  353. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_spectrum.py +0 -0
  354. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tests/test_tools.py +0 -0
  355. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib/tools.py +0 -0
  356. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib.egg-info/dependency_links.txt +0 -0
  357. {pvlib-0.10.3 → pvlib-0.10.5}/pvlib.egg-info/top_level.txt +0 -0
  358. {pvlib-0.10.3 → pvlib-0.10.5}/setup.cfg +0 -0
@@ -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,22 +15,21 @@ 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: optional
31
29
  Requires-Dist: cython; extra == "optional"
32
30
  Requires-Dist: ephem; extra == "optional"
33
31
  Requires-Dist: nrel-pysam; extra == "optional"
34
- Requires-Dist: numba; extra == "optional"
32
+ Requires-Dist: numba>=0.17.0; extra == "optional"
35
33
  Requires-Dist: solarfactors; extra == "optional"
36
34
  Requires-Dist: statsmodels; extra == "optional"
37
35
  Provides-Extra: doc
@@ -54,29 +52,7 @@ Requires-Dist: pytest-rerunfailures; extra == "test"
54
52
  Requires-Dist: pytest-remotedata; extra == "test"
55
53
  Requires-Dist: packaging; extra == "test"
56
54
  Provides-Extra: all
57
- Requires-Dist: cython; extra == "all"
58
- Requires-Dist: docutils==0.15.2; extra == "all"
59
- Requires-Dist: ephem; extra == "all"
60
- Requires-Dist: ipython; extra == "all"
61
- Requires-Dist: matplotlib; extra == "all"
62
- Requires-Dist: nrel-pysam; extra == "all"
63
- Requires-Dist: numba; extra == "all"
64
- Requires-Dist: packaging; extra == "all"
65
- Requires-Dist: pillow; extra == "all"
66
- Requires-Dist: pydata-sphinx-theme==0.8.1; extra == "all"
67
- Requires-Dist: pytest; extra == "all"
68
- Requires-Dist: pytest-cov; extra == "all"
69
- Requires-Dist: pytest-mock; extra == "all"
70
- Requires-Dist: pytest-remotedata; extra == "all"
71
- Requires-Dist: pytest-rerunfailures; extra == "all"
72
- Requires-Dist: pytest-timeout; extra == "all"
73
- Requires-Dist: requests-mock; extra == "all"
74
- Requires-Dist: solarfactors; extra == "all"
75
- Requires-Dist: sphinx==4.5.0; extra == "all"
76
- Requires-Dist: sphinx-gallery; extra == "all"
77
- Requires-Dist: sphinx-toggleprompt>=0.0.5; extra == "all"
78
- Requires-Dist: statsmodels; extra == "all"
79
-
55
+ Requires-Dist: pvlib[doc,optional,test]; extra == "all"
80
56
 
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
@@ -7,11 +7,11 @@
7
7
  <a href="https://pypi.org/project/pvlib/">
8
8
  <img src="https://img.shields.io/pypi/v/pvlib.svg" alt="latest release" />
9
9
  </a>
10
- <a href="https://anaconda.org/conda-forge/pvlib-python">
11
- <img src="https://anaconda.org/conda-forge/pvlib-python/badges/version.svg" />
10
+ <a href="https://anaconda.org/conda-forge/pvlib">
11
+ <img src="https://anaconda.org/conda-forge/pvlib/badges/version.svg" />
12
12
  </a>
13
- <a href="https://anaconda.org/conda-forge/pvlib-python">
14
- <img src="https://anaconda.org/conda-forge/pvlib-python/badges/latest_release_date.svg" />
13
+ <a href="https://anaconda.org/conda-forge/pvlib">
14
+ <img src="https://anaconda.org/conda-forge/pvlib/badges/latest_release_date.svg" />
15
15
  </a>
16
16
  </tr>
17
17
  <tr>
@@ -50,19 +50,8 @@
50
50
  <a href="https://doi.org/10.5281/zenodo.593284">
51
51
  <img src="https://zenodo.org/badge/DOI/10.5281/zenodo.593284.svg" alt="zenodo reference">
52
52
  </a>
53
- <a href="http://joss.theoj.org/papers/41187535cad22dd4b076c89b72f874b1">
54
- <img src="http://joss.theoj.org/papers/41187535cad22dd4b076c89b72f874b1/status.svg" alt="JOSS reference" />
55
- </a>
56
- </td>
57
- </tr>
58
- <tr>
59
- <td>Downloads</td>
60
- <td>
61
- <a href="https://pypi.org/project/pvlib/">
62
- <img src="https://img.shields.io/pypi/dm/pvlib" alt="PyPI downloads" />
63
- </a>
64
- <a href="https://anaconda.org/conda-forge/pvlib-python">
65
- <img src="https://anaconda.org/conda-forge/pvlib-python/badges/downloads.svg" alt="conda-forge downloads" />
53
+ <a style="border-width:0" href="https://doi.org/10.21105/joss.05994">
54
+ <img src="https://joss.theoj.org/papers/10.21105/joss.05994/status.svg" alt="DOI badge" >
66
55
  </a>
67
56
  </td>
68
57
  </tr>
@@ -99,17 +88,32 @@ The long-term success of pvlib-python requires substantial community support.
99
88
  Citing
100
89
  ======
101
90
 
102
- If you use pvlib-python in a published work, please cite:
91
+ Many of the contributors to pvlib python work in institutions where
92
+ citation metrics are used in performance or career evaluations. If you
93
+ use pvlib python in a published work, please cite:
103
94
 
104
- William F. Holmgren, Clifford W. Hansen, and Mark A. Mikofski.
95
+ **Recommended citation for the pvlib python project**
96
+
97
+ Anderson, K., Hansen, C., Holmgren, W., Jensen, A., Mikofski, M., and Driesse, A.
98
+ "pvlib python: 2023 project update."
99
+ Journal of Open Source Software, 8(92), 5994, (2023).
100
+ https://doi.org/10.21105/joss.05994
101
+
102
+
103
+ **Recommended citation for pvlib iotools**
104
+
105
+ Jensen, A., Anderson, K., Holmgren, W., Mikofski, M., Hansen, C., Boeman, L., Loonen, R.
106
+ "pvlib iotools —- Open-source Python functions for seamless access to solar irradiance data."
107
+ Solar Energy, 266, 112092, (2023).
108
+ https://doi.org/10.1016/j.solener.2023.112092
109
+
110
+ **Historical citation for pvlib python**
111
+
112
+ Holmgren, W., Hansen, C., and Mikofski, M.
105
113
  "pvlib python: a python package for modeling solar energy systems."
106
114
  Journal of Open Source Software, 3(29), 884, (2018).
107
115
  https://doi.org/10.21105/joss.00884
108
116
 
109
- Please also cite the DOI corresponding to the specific version of
110
- pvlib-python that you used. pvlib-python DOIs are listed at
111
- [Zenodo.org](https://zenodo.org/search?page=1&size=20&q=conceptrecid:593284&all_versions&sort=-version)
112
-
113
117
  If you use pvlib-python in a commercial or publicly-available application, please
114
118
  consider displaying one of the "powered by pvlib" logos:
115
119
 
@@ -141,11 +145,10 @@ BSD 3-clause.
141
145
  History and acknowledgement
142
146
  ===========================
143
147
 
144
- pvlib python started out as a Python translation of the PVLIB MATLAB
145
- toolbox (developed by the `PVPMC <https://pvpmc.sandia.gov/>`_ at
146
- Sandia National Laboratories) in 2013 and has grown substantially since then.
148
+ pvlib python began in 2013 as a Python translation of the [PVLIB for Matlab](https://github.com/sandialabs/MATLAB_PV_LIB)
149
+ toolbox developed by Sandia National Laboratories. pvlib python has grown substantially since then.
147
150
  Today it contains code contributions from over a hundred individuals worldwide
148
- and is maintained by a core group of PV modelers from a variety institutions.
151
+ and is maintained by a core group of PV modelers from a variety of institutions.
149
152
 
150
153
  pvlib has been supported directly and indirectly by DOE, NumFOCUS, and
151
154
  Google Summer of Code funding, university research projects,
@@ -317,7 +317,7 @@ for diffuse_fraction in np.linspace(0, 1, 11):
317
317
 
318
318
  results = pd.DataFrame(data)
319
319
  results['pmp'] /= results['pmp'].max() # normalize power to 0-1
320
- results_pivot = results.pivot('fd', 'fs', 'pmp')
320
+ results_pivot = results.pivot(index='fd', columns='fs', values='pmp')
321
321
  plt.figure()
322
322
  plt.imshow(results_pivot, origin='lower', aspect='auto')
323
323
  plt.xlabel('shaded fraction')
@@ -103,8 +103,7 @@ import matplotlib.pyplot as plt
103
103
 
104
104
  tz = 'Asia/Calcutta'
105
105
  lat, lon = 28.6, 77.2
106
- times = pd.date_range('2019-01-01 00:00:00', '2020-01-01', closed='left',
107
- freq='H', tz=tz)
106
+ times = pd.date_range('2019-01-01 00:00:00', '2020-01-01', freq='H', tz=tz)
108
107
 
109
108
  solpos = solarposition.get_solarposition(times, lat, lon)
110
109
  # remove nighttime
@@ -0,0 +1,2 @@
1
+ System Models
2
+ -------------
@@ -0,0 +1,283 @@
1
+ """
2
+ 4.7 MW CdTe single-axis tracking (OEDI System 9068)
3
+ ===================================================
4
+
5
+ A basic model of a 4.7 MW single-axis tracking CdTe system located in
6
+ Colorado, United States.
7
+ """
8
+ # %%
9
+ # This example model uses satellite-based solar resource data from the
10
+ # NSRDB PSM3. This approach is useful for pre-construction energy modeling
11
+ # and in retrospective analyses where the system’s own irradiance
12
+ # measurements are not present or unreliable.
13
+ #
14
+ # The system has public monitoring data available at the Open Energy Data
15
+ # Initiative (OEDI) under `System ID
16
+ # 9068 <https://data.openei.org/s3_viewer?bucket=oedi-data-lake&prefix=pvdaq%2F2023-solar-data-prize%2F9068_OEDI%2F>`__.
17
+ # For more information about the system, see its `OEDI
18
+ # page <https://openei.org/wiki/PVDAQ/Sites/SR_CO>`__.
19
+
20
+ # sphinx_gallery_thumbnail_path = "_images/OEDI_9068_daily_timeseries.png"
21
+ import pvlib
22
+ import pandas as pd
23
+ import matplotlib.pyplot as plt
24
+
25
+ # %%
26
+ # System parameters
27
+ # -----------------
28
+ #
29
+ # The system description on the OEDI provides some high-level system
30
+ # information, but unfortunately we have to make some guesses about other
31
+ # aspects of the system’s configuration.
32
+ #
33
+ # The cells below define the system parameter values required in the
34
+ # simulation.
35
+
36
+ # information provided by system description on OEDI
37
+
38
+ latitude = 40.3864
39
+ longitude = -104.5512
40
+
41
+ # the inverters have identical PV array topologies:
42
+ modules_per_string = 15
43
+ strings_per_inverter = 1344
44
+
45
+ # %%
46
+
47
+ # "unofficial" information
48
+
49
+ # We know the system uses 117.5 W CdTe modules. Based on the system vintage
50
+ # (data begins in 2017), it seems likely that the array uses First Solar
51
+ # Series 4 modules (FS-4117).
52
+ cec_module_db = pvlib.pvsystem.retrieve_sam('cecmod')
53
+ module_parameters = cec_module_db['First_Solar__Inc__FS_4117_3']
54
+ # ensure that correct spectral correction is applied
55
+ module_parameters['Technology'] = 'CdTe'
56
+
57
+ # default Faiman model parameters:
58
+ temperature_model_parameters = dict(u0=25.0, u1=6.84)
59
+ module_unit_mass = 12 / 0.72 # kg/m^2, taken from datasheet values
60
+
61
+ # The OEDI metadata says the inverters have AC capacities of 1910 kW,
62
+ # but the clipping level in the measured inverter output is more like 1840 kW.
63
+ # It's not clear what specific model is installed, so let's just assume
64
+ # this inverter, which the CEC database lists as having a nominal AC
65
+ # capacity of 1833 kW:
66
+ cec_inverter_db = pvlib.pvsystem.retrieve_sam('cecinverter')
67
+ inverter_parameters = cec_inverter_db['TMEIC__PVL_L1833GRM']
68
+
69
+ # We'll use the PVWatts v5 losses model. Set shading to zero as it is
70
+ # accounted for elsewhere in the model, and disable availability loss since
71
+ # we want a "clean" simulation.
72
+ # Leaving the other pvwatts loss types (mismatch, wiring, etc) unspecified
73
+ # causes them to take their default values.
74
+ losses_parameters = dict(shading=0, availability=0)
75
+
76
+ # Google Street View images show that each row is four modules high, in
77
+ # landscape orientation. Assuming the modules are First Solar Series 4,
78
+ # each of them is 600 mm wide.
79
+ # Assume ~1 centimeter gap between modules (three gaps total).
80
+ # And from Google Earth, the array's pitch is estimated to be about 7.0 meters.
81
+ # From these we calculate the ground coverage ratio (GCR):
82
+ pitch = 7 # meters
83
+ gcr = (4 * 0.6 + 3 * 0.01) / pitch
84
+
85
+ # The tracker rotation measurements reveal that the tracker rotation limits
86
+ # are +/- 60 degrees, and backtracking is not enabled:
87
+ max_angle = 60 # degrees
88
+ backtrack = False
89
+
90
+ # Google Earth shows that the tracker axes are very close to north-south:
91
+ axis_azimuth = 180 # degrees
92
+
93
+ # Estimated from Google Street View images
94
+ axis_height = 1.5 # meters
95
+
96
+ # %%
97
+ # Create system objects
98
+ # ---------------------
99
+ #
100
+ # The system has two inverters which seem to have identical specifications
101
+ # and arrays. To save some code and computation repetition, we will just
102
+ # model one inverter.
103
+
104
+ location = pvlib.location.Location(latitude, longitude)
105
+ mount = pvlib.pvsystem.SingleAxisTrackerMount(
106
+ gcr=gcr,
107
+ backtrack=backtrack,
108
+ max_angle=max_angle,
109
+ axis_azimuth=axis_azimuth
110
+ )
111
+ array = pvlib.pvsystem.Array(
112
+ mount,
113
+ module_parameters=module_parameters,
114
+ modules_per_string=modules_per_string,
115
+ temperature_model_parameters=temperature_model_parameters,
116
+ strings=strings_per_inverter
117
+ )
118
+ system = pvlib.pvsystem.PVSystem(
119
+ array,
120
+ inverter_parameters=inverter_parameters,
121
+ losses_parameters=losses_parameters
122
+ )
123
+
124
+ model = pvlib.modelchain.ModelChain(
125
+ system,
126
+ location,
127
+ spectral_model='first_solar',
128
+ aoi_model='physical',
129
+ losses_model='pvwatts'
130
+ )
131
+
132
+ # %%
133
+ # Fetch weather data
134
+ # ------------------
135
+ #
136
+ # The system does have measured plane-of-array irradiance data, but the
137
+ # measurements suffer from row-to-row shading and tracker stalls. In this
138
+ # example, we will use weather data taken from the NSRDB PSM3 for the year
139
+ # 2019.
140
+
141
+ api_key = 'DEMO_KEY'
142
+ email = 'your_email@domain.com'
143
+
144
+ keys = ['ghi', 'dni', 'dhi', 'temp_air', 'wind_speed',
145
+ 'albedo', 'precipitable_water']
146
+ psm3, psm3_metadata = pvlib.iotools.get_psm3(latitude, longitude, api_key,
147
+ email, interval=5, names=2019,
148
+ map_variables=True, leap_day=True,
149
+ attributes=keys)
150
+
151
+ # %%
152
+ # Pre-generate some model inputs
153
+ # ------------------------------
154
+ #
155
+ # This system’s trackers are configured to not backtrack, meaning the
156
+ # array shades itself when the sun is low in the sky. pvlib’s
157
+ # ``ModelChain`` currently has no shade modeling ability, so we will model
158
+ # it separately.
159
+ #
160
+ # Since this system uses thin-film modules, oriented in such a way that
161
+ # row-to-row shadows affect each cell in the module equally, we can assume
162
+ # that the effect of shading is linear with the reduction in incident beam
163
+ # irradiance. That means we can use pvlib’s infinite sheds model, which
164
+ # penalizes incident beam irradiance according to the calculated shaded
165
+ # module fraction and returns the average irradiance over the total module
166
+ # surface.
167
+
168
+ solar_position = location.get_solarposition(psm3.index, latitude, longitude)
169
+ tracker_angles = mount.get_orientation(
170
+ solar_position['apparent_zenith'],
171
+ solar_position['azimuth']
172
+ )
173
+ dni_extra = pvlib.irradiance.get_extra_radiation(psm3.index)
174
+
175
+ # note: this system is monofacial, so only calculate irradiance for the
176
+ # front side:
177
+ averaged_irradiance = pvlib.bifacial.infinite_sheds.get_irradiance_poa(
178
+ tracker_angles['surface_tilt'], tracker_angles['surface_azimuth'],
179
+ solar_position['apparent_zenith'], solar_position['azimuth'],
180
+ gcr, axis_height, pitch,
181
+ psm3['ghi'], psm3['dhi'], psm3['dni'], psm3['albedo'],
182
+ model='haydavies', dni_extra=dni_extra,
183
+ )
184
+
185
+ # %%
186
+ # ``ModelChain`` does not consider thermal transience either, so since we
187
+ # are using 5-minute weather data, we will precalculate the cell
188
+ # temperature as well:
189
+
190
+ cell_temperature_steady_state = pvlib.temperature.faiman(
191
+ poa_global=averaged_irradiance['poa_global'],
192
+ temp_air=psm3['temp_air'],
193
+ wind_speed=psm3['wind_speed'],
194
+ **temperature_model_parameters,
195
+ )
196
+
197
+ cell_temperature = pvlib.temperature.prilliman(
198
+ cell_temperature_steady_state,
199
+ psm3['wind_speed'],
200
+ unit_mass=module_unit_mass
201
+ )
202
+
203
+ # %%
204
+ # Run the model
205
+ # -------------
206
+ #
207
+ # Finally, we are ready to run the rest of the system model. Since we want
208
+ # to use pre-calculated plane-of-array irradiance, we will use
209
+ # :py:meth:`~pvlib.modelchain.ModelChain.run_model_from_poa`:
210
+
211
+ weather_inputs = pd.DataFrame({
212
+ 'poa_global': averaged_irradiance['poa_global'],
213
+ 'poa_direct': averaged_irradiance['poa_direct'],
214
+ 'poa_diffuse': averaged_irradiance['poa_diffuse'],
215
+ 'cell_temperature': cell_temperature,
216
+ 'precipitable_water': psm3['precipitable_water'], # for the spectral model
217
+ })
218
+ model.run_model_from_poa(weather_inputs)
219
+
220
+
221
+ # %%
222
+ # Compare with measured production
223
+ # --------------------------------
224
+ #
225
+ # Now, let’s compare our modeled AC power with the system’s actual
226
+ # inverter-level AC power measurements:
227
+
228
+ fn = r"path/to/9068_ac_power_data.csv"
229
+ df_inverter_measured = pd.read_csv(fn, index_col=0, parse_dates=True)
230
+ df_inverter_measured = df_inverter_measured.tz_localize('US/Mountain',
231
+ ambiguous='NaT',
232
+ nonexistent='NaT')
233
+ # convert to standard time to match the NSRDB-based simulation
234
+ df_inverter_measured = df_inverter_measured.tz_convert('Etc/GMT+7')
235
+
236
+ # %%
237
+
238
+ inverter_ac_powers = [
239
+ 'inverter_1_ac_power_(kw)_inv_150143',
240
+ 'inverter_2_ac_power_(kw)_inv_150144'
241
+ ]
242
+ df = df_inverter_measured.loc['2019', inverter_ac_powers]
243
+ df['model'] = model.results.ac / 1000 # convert W to kW
244
+
245
+ # %%
246
+
247
+ for column_name in inverter_ac_powers:
248
+ fig, axes = plt.subplots(1, 3, figsize=(12, 4))
249
+ df.plot.scatter('model', column_name, ax=axes[0], s=1, alpha=0.1)
250
+ axes[0].axline((0, 0), slope=1, c='k')
251
+ axes[0].set_ylabel('Measured 5-min power [kW]')
252
+ axes[0].set_xlabel('Modeled 5-min power [kW]')
253
+
254
+ hourly_average = df.resample('h').mean()
255
+ hourly_average.plot.scatter('model', column_name, ax=axes[1], s=2)
256
+ axes[1].axline((0, 0), slope=1, c='k')
257
+ axes[1].set_ylabel('Measured hourly energy [kWh]')
258
+ axes[1].set_xlabel('Modeled hourly energy [kWh]')
259
+
260
+ daily_total = hourly_average.resample('d').sum()
261
+ daily_total.plot.scatter('model', column_name, ax=axes[2], s=5)
262
+ axes[2].axline((0, 0), slope=1, c='k')
263
+ axes[2].set_ylabel('Measured daily energy [kWh]')
264
+ axes[2].set_xlabel('Modeled daily energy [kWh]')
265
+
266
+ fig.suptitle(column_name)
267
+ fig.tight_layout()
268
+
269
+
270
+ # %%
271
+ # .. image:: ../../_images/OEDI_9068_inverter1_comparison.png
272
+ #
273
+ # .. image:: ../../_images/OEDI_9068_inverter2_comparison.png
274
+
275
+ fig, ax = plt.subplots(figsize=(12, 4))
276
+ daily_energy = df.clip(lower=0).resample('h').mean().resample('d').sum()
277
+ daily_energy.plot(ax=ax)
278
+ plt.ylim(bottom=0)
279
+ plt.ylabel('Daily Production [kWh]')
280
+ plt.tight_layout()
281
+
282
+ # %%
283
+ # .. image:: ../../_images/OEDI_9068_daily_timeseries.png
@@ -357,15 +357,18 @@ suppress_warnings = ['ref.footnote']
357
357
  sphinx_gallery_conf = {
358
358
  'examples_dirs': ['../../examples'], # location of gallery scripts
359
359
  'gallery_dirs': ['gallery'], # location of generated output
360
- # sphinx-gallery only shows plots from plot_*.py files by default:
361
- # 'filename_pattern': '*.py',
360
+ # execute all scripts except for ones in the "system-models" directory:
361
+ 'filename_pattern': '^((?!system-models).)*$',
362
362
 
363
363
  # directory where function/class granular galleries are stored
364
364
  'backreferences_dir': 'reference/generated/gallery_backreferences',
365
365
 
366
366
  # Modules for which function/class level galleries are created. In
367
- # this case only pvlib, could include others though. must be tuple of str
367
+ # this case only pvlib, could include others though. Must be tuple of str
368
368
  'doc_module': ('pvlib',),
369
+
370
+ # https://sphinx-gallery.github.io/dev/configuration.html#removing-config-comments # noqa: E501
371
+ 'remove_config_comments': True,
369
372
  }
370
373
  # supress warnings in gallery output
371
374
  # https://sphinx-gallery.github.io/stable/configuration.html
@@ -29,12 +29,8 @@ pvlib-python, git, or Python:
29
29
  `easy <https://github.com/pvlib/pvlib-python/labels/easy>`_,
30
30
  or `help wanted <https://github.com/pvlib/pvlib-python/labels/help%20wanted>`_.
31
31
  * Improve the documentation and the unit tests.
32
- * Improve the IPython/Jupyter Notebook tutorials or write new ones that
32
+ * Improve the Example Gallery or add new examples that
33
33
  demonstrate how to use pvlib-python in your area of expertise.
34
- * If you have MATLAB experience, you can help us keep pvlib-python
35
- up to date with PVLIB_MATLAB or help us develop common unit tests.
36
- For more, see `Issue #2 <https://github.com/pvlib/pvlib-python/issues/2>`_
37
- and `Issue #3 <https://github.com/pvlib/pvlib-python/issues/3>`_.
38
34
  * Tell your friends and colleagues about pvlib-python.
39
35
  * Add your project to our
40
36
  `Projects and publications that use pvlib-python wiki