pvlib 0.10.4__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 (351) hide show
  1. {pvlib-0.10.4/pvlib.egg-info → pvlib-0.10.5}/PKG-INFO +3 -4
  2. {pvlib-0.10.4 → pvlib-0.10.5}/README.md +2 -3
  3. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/shading/plot_partial_module_shading_simple.py +1 -1
  4. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/solar-position/plot_sunpath_diagrams.py +1 -2
  5. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/system-models/plot_oedi_9068.py +5 -5
  6. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/conf.py +4 -1
  7. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/contributing.rst +1 -5
  8. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/index.rst +22 -20
  9. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/system_models.rst +2 -1
  10. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/index.rst +0 -1
  11. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/installation.rst +3 -8
  12. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/package_overview.rst +2 -2
  13. pvlib-0.10.5/docs/sphinx/source/whatsnew/v0.10.5.rst +44 -0
  14. pvlib-0.10.4/docs/sphinx/source/whatsnew/v0.10.5.rst → pvlib-0.10.5/docs/sphinx/source/whatsnew/v0.11.0.rst +7 -3
  15. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.3.0.txt +1 -1
  16. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.1.rst +1 -1
  17. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew.rst +1 -0
  18. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/bifacial/utils.py +2 -1
  19. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/srml.py +3 -2
  20. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/surfrad.py +1 -1
  21. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/location.py +3 -1
  22. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/pvarray.py +7 -5
  23. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/pvsystem.py +52 -43
  24. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/scaling.py +4 -2
  25. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/singlediode.py +37 -9
  26. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/snow.py +3 -1
  27. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spectrum/mismatch.py +2 -1
  28. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/bifacial/test_utils.py +6 -5
  29. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_pvsystem.py +62 -89
  30. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_singlediode.py +68 -10
  31. pvlib-0.10.5/pvlib/version.py +6 -0
  32. {pvlib-0.10.4 → pvlib-0.10.5/pvlib.egg-info}/PKG-INFO +3 -4
  33. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib.egg-info/SOURCES.txt +1 -1
  34. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib.egg-info/requires.txt +1 -4
  35. {pvlib-0.10.4 → pvlib-0.10.5}/pyproject.toml +2 -3
  36. pvlib-0.10.4/docs/sphinx/source/user_guide/comparison_pvlib_matlab.rst +0 -88
  37. pvlib-0.10.4/pvlib/version.py +0 -10
  38. {pvlib-0.10.4 → pvlib-0.10.5}/AUTHORS.md +0 -0
  39. {pvlib-0.10.4 → pvlib-0.10.5}/LICENSE +0 -0
  40. {pvlib-0.10.4 → pvlib-0.10.5}/MANIFEST.in +0 -0
  41. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/README.rst +0 -0
  42. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/adr-pvarray/README.rst +0 -0
  43. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/adr-pvarray/plot_fit_to_matrix.py +0 -0
  44. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/adr-pvarray/plot_simulate_fast.py +0 -0
  45. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/adr-pvarray/plot_simulate_system.py +0 -0
  46. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/bifacial/README.rst +0 -0
  47. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/bifacial/plot_bifi_model_mc.py +0 -0
  48. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +0 -0
  49. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +0 -0
  50. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-decomposition/README.rst +0 -0
  51. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +0 -0
  52. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-transposition/README.rst +0 -0
  53. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
  54. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
  55. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
  56. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_rtranpose_limitations.py +0 -0
  57. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_rtranpose_year.py +0 -0
  58. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +0 -0
  59. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/irradiance-transposition/plot_transposition_gain.py +0 -0
  60. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/iv-modeling/README.rst +0 -0
  61. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/iv-modeling/plot_singlediode.py +0 -0
  62. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/reflections/README.rst +0 -0
  63. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/reflections/plot_convert_iam_models.py +0 -0
  64. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
  65. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/reflections/plot_fit_iam_models.py +0 -0
  66. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/shading/README.rst +0 -0
  67. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
  68. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/shading/plot_simple_irradiance_adjustment_for_horizon_shading.py +0 -0
  69. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/soiling/README.rst +0 -0
  70. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
  71. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +0 -0
  72. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/solar-position/README.rst +0 -0
  73. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/solar-tracking/README.rst +0 -0
  74. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
  75. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
  76. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
  77. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
  78. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/spectrum/README.rst +0 -0
  79. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/spectrum/plot_spectrl2_fig51A.py +0 -0
  80. {pvlib-0.10.4 → pvlib-0.10.5}/docs/examples/system-models/README.rst +0 -0
  81. {pvlib-0.10.4 → pvlib-0.10.5}/docs/notes/Determining the average view factor from a module.pdf +0 -0
  82. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/Makefile +0 -0
  83. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/make.bat +0 -0
  84. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/Anderson_Mikofski_2020_Fig5.jpg +0 -0
  85. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
  86. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/OEDI_9068_daily_timeseries.png +0 -0
  87. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/OEDI_9068_inverter1_comparison.png +0 -0
  88. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/OEDI_9068_inverter2_comparison.png +0 -0
  89. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/clonebutton.png +0 -0
  90. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
  91. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
  92. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
  93. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
  94. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
  95. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
  96. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
  97. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
  98. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
  99. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
  100. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_static/reference_format.css +0 -0
  101. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_static/version-alert.js +0 -0
  102. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
  103. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
  104. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
  105. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/_templates/edit-this-page.html +0 -0
  106. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/airmass_atmospheric.rst +0 -0
  107. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/bifacial.rst +0 -0
  108. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/classes.rst +0 -0
  109. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/clearsky.rst +0 -0
  110. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +0 -0
  111. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +0 -0
  112. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +0 -0
  113. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +0 -0
  114. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +0 -0
  115. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +0 -0
  116. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/index.rst +0 -0
  117. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/iotools.rst +0 -0
  118. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/class-methods.rst +0 -0
  119. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/clearness-index.rst +0 -0
  120. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/components.rst +0 -0
  121. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/decomposition.rst +0 -0
  122. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/index.rst +0 -0
  123. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/irradiance/transposition.rst +0 -0
  124. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/location.rst +0 -0
  125. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/modelchain.rst +0 -0
  126. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/iam.rst +0 -0
  127. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/index.rst +0 -0
  128. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/inverter.rst +0 -0
  129. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/other.rst +0 -0
  130. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/parameters.rst +0 -0
  131. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/sdm.rst +0 -0
  132. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/pv_modeling/temperature.rst +0 -0
  133. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/scaling.rst +0 -0
  134. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/solarposition.rst +0 -0
  135. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/reference/tracking.rst +0 -0
  136. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/bifacial.rst +0 -0
  137. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/clearsky.rst +0 -0
  138. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/faq.rst +0 -0
  139. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/introtutorial.rst +0 -0
  140. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/modelchain.rst +0 -0
  141. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/pvsystem.rst +0 -0
  142. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/singlediode.rst +0 -0
  143. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/timetimezones.rst +0 -0
  144. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/variables_style_rules.rst +0 -0
  145. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/user_guide/weather_data.rst +0 -0
  146. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
  147. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.10.0.rst +0 -0
  148. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.10.1.rst +0 -0
  149. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.10.2.rst +0 -0
  150. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.10.3.rst +0 -0
  151. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.10.4.rst +0 -0
  152. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
  153. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
  154. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
  155. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
  156. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
  157. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
  158. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
  159. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
  160. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
  161. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
  162. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
  163. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
  164. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
  165. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
  166. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
  167. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
  168. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.6.1.rst +0 -0
  169. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
  170. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
  171. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.7.0.rst +0 -0
  172. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.7.1.rst +0 -0
  173. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.7.2.rst +0 -0
  174. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.8.0.rst +0 -0
  175. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.8.1.rst +0 -0
  176. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.0.rst +0 -0
  177. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.2.rst +0 -0
  178. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.3.rst +0 -0
  179. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -0
  180. {pvlib-0.10.4 → pvlib-0.10.5}/docs/sphinx/source/whatsnew/v0.9.5.rst +0 -0
  181. {pvlib-0.10.4 → pvlib-0.10.5}/docs/tutorials/atmosphere.ipynb +0 -0
  182. {pvlib-0.10.4 → pvlib-0.10.5}/docs/tutorials/irradiance.ipynb +0 -0
  183. {pvlib-0.10.4 → pvlib-0.10.5}/docs/tutorials/pvsystem.ipynb +0 -0
  184. {pvlib-0.10.4 → pvlib-0.10.5}/docs/tutorials/solarposition.ipynb +0 -0
  185. {pvlib-0.10.4 → pvlib-0.10.5}/docs/tutorials/tmy.ipynb +0 -0
  186. {pvlib-0.10.4 → pvlib-0.10.5}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
  187. {pvlib-0.10.4 → pvlib-0.10.5}/docs/tutorials/tmy_to_power.ipynb +0 -0
  188. {pvlib-0.10.4 → pvlib-0.10.5}/docs/tutorials/tracking.ipynb +0 -0
  189. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/__init__.py +0 -0
  190. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/_deprecation.py +0 -0
  191. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/atmosphere.py +0 -0
  192. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/bifacial/__init__.py +0 -0
  193. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/bifacial/infinite_sheds.py +0 -0
  194. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/bifacial/pvfactors.py +0 -0
  195. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/clearsky.py +0 -0
  196. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/12839.tm2 +0 -0
  197. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/703165TY.csv +0 -0
  198. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/723170TYA.CSV +0 -0
  199. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/Altitude.h5 +0 -0
  200. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/BIRD_08_16_2012.csv +0 -0
  201. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/BIRD_08_16_2012_patm.csv +0 -0
  202. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
  203. {pvlib-0.10.4 → 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
  204. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv +0 -0
  205. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/CPS SCH275KTL-DO-US-800-250kW_275kVA_1.OND +0 -0
  206. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
  207. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/CRN_with_problems.txt +0 -0
  208. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/ET-M772BH550GL.PAN +0 -0
  209. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/LinkeTurbidities.h5 +0 -0
  210. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/NLD_Amsterdam062400_IWEC.epw +0 -0
  211. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/PVsyst_demo.csv +0 -0
  212. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/PVsyst_demo_model.csv +0 -0
  213. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/SRML-day-EUPO1801.txt +0 -0
  214. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/abq19056.dat +0 -0
  215. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +0 -0
  216. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/aod550_tcwv_20121101_test.nc +0 -0
  217. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/astm_g173_am15g.csv +0 -0
  218. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/bishop88_numerical_precision.csv +0 -0
  219. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/bsrn-lr0100-pay0616.dat +0 -0
  220. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/bsrn-pay0616.dat.gz +0 -0
  221. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/cams_mcclear_1min_verbose.csv +0 -0
  222. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/cams_mcclear_monthly.csv +0 -0
  223. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/cams_radiation_1min_verbose.csv +0 -0
  224. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/cams_radiation_monthly.csv +0 -0
  225. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/detect_clearsky_data.csv +0 -0
  226. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/detect_clearsky_threshold_data.csv +0 -0
  227. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/greensboro_kimber_soil_manwash.dat +0 -0
  228. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/greensboro_kimber_soil_nowash.dat +0 -0
  229. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/inverter_fit_snl_meas.csv +0 -0
  230. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/inverter_fit_snl_sim.csv +0 -0
  231. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/ivtools_numdiff.csv +0 -0
  232. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/midc_20181014.txt +0 -0
  233. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/midc_raw_20181018.txt +0 -0
  234. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/midc_raw_short_header_20191115.txt +0 -0
  235. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/msn19056.dat +0 -0
  236. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/precise_iv_curves1.json +0 -0
  237. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/precise_iv_curves2.json +0 -0
  238. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/precise_iv_curves_parameter_sets1.csv +0 -0
  239. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/precise_iv_curves_parameter_sets2.csv +0 -0
  240. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
  241. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
  242. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/pvgis_tmy_meta.json +0 -0
  243. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/pvgis_tmy_test.dat +0 -0
  244. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/pvwatts_8760_rackmount.csv +0 -0
  245. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/pvwatts_8760_roofmount.csv +0 -0
  246. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
  247. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
  248. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
  249. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/singleaxis_tracker_wslope.csv +0 -0
  250. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
  251. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/spectrl2_example_spectra.csv +0 -0
  252. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/surfrad-slv16001.dat +0 -0
  253. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/test_psm3_2017.csv +0 -0
  254. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/test_psm3_2019_5min.csv +0 -0
  255. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/test_psm3_tmy-2017.csv +0 -0
  256. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/test_read_psm3.csv +0 -0
  257. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/test_read_pvgis_horizon.csv +0 -0
  258. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_2005_2016.csv +0 -0
  259. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_2005_2016.epw +0 -0
  260. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_2005_2016.json +0 -0
  261. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_2005_2016.txt +0 -0
  262. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/tmy_45.000_8.000_userhorizon.json +0 -0
  263. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/data/variables_style_rules.csv +0 -0
  264. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iam.py +0 -0
  265. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/inverter.py +0 -0
  266. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/__init__.py +0 -0
  267. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/acis.py +0 -0
  268. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/bsrn.py +0 -0
  269. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/crn.py +0 -0
  270. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/epw.py +0 -0
  271. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/midc.py +0 -0
  272. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/panond.py +0 -0
  273. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/psm3.py +0 -0
  274. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/pvgis.py +0 -0
  275. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/sodapro.py +0 -0
  276. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/solaranywhere.py +0 -0
  277. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/solargis.py +0 -0
  278. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/solcast.py +0 -0
  279. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/solrad.py +0 -0
  280. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/iotools/tmy.py +0 -0
  281. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/irradiance.py +0 -0
  282. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/ivtools/__init__.py +0 -0
  283. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/ivtools/sde.py +0 -0
  284. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/ivtools/sdm.py +0 -0
  285. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/ivtools/utils.py +0 -0
  286. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/modelchain.py +0 -0
  287. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/shading.py +0 -0
  288. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/soiling.py +0 -0
  289. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/solarposition.py +0 -0
  290. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spa.py +0 -0
  291. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spa_c_files/README.md +0 -0
  292. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spa_c_files/__init__.py +0 -0
  293. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spa_c_files/cspa_py.pxd +0 -0
  294. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spa_c_files/setup.py +0 -0
  295. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spa_c_files/spa_py.pyx +0 -0
  296. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spa_c_files/spa_py_example.py +0 -0
  297. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spectrum/__init__.py +0 -0
  298. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/spectrum/spectrl2.py +0 -0
  299. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/temperature.py +0 -0
  300. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/__init__.py +0 -0
  301. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/bifacial/__init__.py +0 -0
  302. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/bifacial/test_infinite_sheds.py +0 -0
  303. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/bifacial/test_pvfactors.py +0 -0
  304. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/conftest.py +0 -0
  305. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/__init__.py +0 -0
  306. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_acis.py +0 -0
  307. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_bsrn.py +0 -0
  308. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_crn.py +0 -0
  309. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_epw.py +0 -0
  310. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_midc.py +0 -0
  311. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_panond.py +0 -0
  312. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_psm3.py +0 -0
  313. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_pvgis.py +0 -0
  314. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_sodapro.py +0 -0
  315. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_solaranywhere.py +0 -0
  316. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_solargis.py +0 -0
  317. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_solcast.py +0 -0
  318. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_solrad.py +0 -0
  319. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_srml.py +0 -0
  320. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_surfrad.py +0 -0
  321. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/iotools/test_tmy.py +0 -0
  322. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/ivtools/__init__.py +0 -0
  323. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/ivtools/test_sde.py +0 -0
  324. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/ivtools/test_sdm.py +0 -0
  325. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/ivtools/test_utils.py +0 -0
  326. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_atmosphere.py +0 -0
  327. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_clearsky.py +0 -0
  328. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_conftest.py +0 -0
  329. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_iam.py +0 -0
  330. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_inverter.py +0 -0
  331. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_irradiance.py +0 -0
  332. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_location.py +0 -0
  333. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_modelchain.py +0 -0
  334. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_numerical_precision.py +0 -0
  335. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_pvarray.py +0 -0
  336. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_scaling.py +0 -0
  337. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_shading.py +0 -0
  338. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_snow.py +0 -0
  339. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_soiling.py +0 -0
  340. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_solarposition.py +0 -0
  341. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_spa.py +0 -0
  342. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_spectrum.py +0 -0
  343. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_temperature.py +0 -0
  344. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_tools.py +0 -0
  345. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tests/test_tracking.py +0 -0
  346. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tools.py +0 -0
  347. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib/tracking.py +0 -0
  348. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib.egg-info/dependency_links.txt +0 -0
  349. {pvlib-0.10.4 → pvlib-0.10.5}/pvlib.egg-info/top_level.txt +0 -0
  350. {pvlib-0.10.4 → pvlib-0.10.5}/setup.cfg +0 -0
  351. {pvlib-0.10.4 → pvlib-0.10.5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pvlib
3
- Version: 0.10.4
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
6
  Author-email: pvlib python Developers <pvlib-admin@googlegroups.com>
@@ -15,7 +15,7 @@ Classifier: Intended Audience :: Science/Research
15
15
  Classifier: Programming Language :: Python
16
16
  Classifier: Programming Language :: Python :: 3
17
17
  Classifier: Topic :: Scientific/Engineering
18
- Requires-Python: >=3.7
18
+ Requires-Python: >=3.8
19
19
  Description-Content-Type: text/x-rst
20
20
  License-File: LICENSE
21
21
  License-File: AUTHORS.md
@@ -23,9 +23,8 @@ Requires-Dist: numpy>=1.17.3
23
23
  Requires-Dist: pandas>=1.3.0
24
24
  Requires-Dist: pytz
25
25
  Requires-Dist: requests
26
- Requires-Dist: scipy>=1.5.0
26
+ Requires-Dist: scipy>=1.6.0
27
27
  Requires-Dist: h5py
28
- Requires-Dist: importlib-metadata; python_version < "3.8"
29
28
  Provides-Extra: optional
30
29
  Requires-Dist: cython; extra == "optional"
31
30
  Requires-Dist: ephem; extra == "optional"
@@ -145,9 +145,8 @@ BSD 3-clause.
145
145
  History and acknowledgement
146
146
  ===========================
147
147
 
148
- pvlib python started out as a Python translation of the PVLIB MATLAB
149
- toolbox (developed by the [PVPMC](https://pvpmc.sandia.gov/) at
150
- 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.
151
150
  Today it contains code contributions from over a hundred individuals worldwide
152
151
  and is maintained by a core group of PV modelers from a variety of institutions.
153
152
 
@@ -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
@@ -5,7 +5,6 @@
5
5
  A basic model of a 4.7 MW single-axis tracking CdTe system located in
6
6
  Colorado, United States.
7
7
  """
8
-
9
8
  # %%
10
9
  # This example model uses satellite-based solar resource data from the
11
10
  # NSRDB PSM3. This approach is useful for pre-construction energy modeling
@@ -18,6 +17,7 @@ Colorado, United States.
18
17
  # For more information about the system, see its `OEDI
19
18
  # page <https://openei.org/wiki/PVDAQ/Sites/SR_CO>`__.
20
19
 
20
+ # sphinx_gallery_thumbnail_path = "_images/OEDI_9068_daily_timeseries.png"
21
21
  import pvlib
22
22
  import pandas as pd
23
23
  import matplotlib.pyplot as plt
@@ -46,7 +46,7 @@ strings_per_inverter = 1344
46
46
 
47
47
  # "unofficial" information
48
48
 
49
- # We know the system uses 117.5 W CdTe modules. Based on the system vintage
49
+ # We know the system uses 117.5 W CdTe modules. Based on the system vintage
50
50
  # (data begins in 2017), it seems likely that the array uses First Solar
51
51
  # Series 4 modules (FS-4117).
52
52
  cec_module_db = pvlib.pvsystem.retrieve_sam('cecmod')
@@ -66,7 +66,7 @@ module_unit_mass = 12 / 0.72 # kg/m^2, taken from datasheet values
66
66
  cec_inverter_db = pvlib.pvsystem.retrieve_sam('cecinverter')
67
67
  inverter_parameters = cec_inverter_db['TMEIC__PVL_L1833GRM']
68
68
 
69
- # We'll use the PVWatts v5 losses model. Set shading to zero as it is
69
+ # We'll use the PVWatts v5 losses model. Set shading to zero as it is
70
70
  # accounted for elsewhere in the model, and disable availability loss since
71
71
  # we want a "clean" simulation.
72
72
  # Leaving the other pvwatts loss types (mismatch, wiring, etc) unspecified
@@ -74,7 +74,7 @@ inverter_parameters = cec_inverter_db['TMEIC__PVL_L1833GRM']
74
74
  losses_parameters = dict(shading=0, availability=0)
75
75
 
76
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,
77
+ # landscape orientation. Assuming the modules are First Solar Series 4,
78
78
  # each of them is 600 mm wide.
79
79
  # Assume ~1 centimeter gap between modules (three gaps total).
80
80
  # And from Google Earth, the array's pitch is estimated to be about 7.0 meters.
@@ -231,7 +231,7 @@ df_inverter_measured = df_inverter_measured.tz_localize('US/Mountain',
231
231
  ambiguous='NaT',
232
232
  nonexistent='NaT')
233
233
  # convert to standard time to match the NSRDB-based simulation
234
- df_inverter_measred = df_inverter_measured.tz_convert('Etc/GMT+7')
234
+ df_inverter_measured = df_inverter_measured.tz_convert('Etc/GMT+7')
235
235
 
236
236
  # %%
237
237
 
@@ -364,8 +364,11 @@ sphinx_gallery_conf = {
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
@@ -10,14 +10,13 @@ energy systems and accomplishing related tasks.
10
10
  The core mission of pvlib python is to provide open,
11
11
  reliable, interoperable, and benchmark implementations of PV system models.
12
12
 
13
- The source code for pvlib python is hosted on `github
13
+ The source code for pvlib python is hosted on `GitHub
14
14
  <https://github.com/pvlib/pvlib-python>`_.
15
15
  Please see the :ref:`installation` page for installation help.
16
16
 
17
17
  For examples of how to use pvlib python, please see
18
- :ref:`package_overview` and our `Jupyter Notebook tutorials
19
- <http://nbviewer.org/github/pvlib/pvlib-python/tree/main/docs/
20
- tutorials/>`_. The documentation assumes general familiarity with
18
+ :ref:`package_overview` and the :ref:`example_gallery`.
19
+ The documentation assumes general familiarity with
21
20
  Python, NumPy, and Pandas. Google searches will yield many
22
21
  excellent tutorials for these packages.
23
22
 
@@ -34,11 +33,10 @@ ensure consistency throughout the library.
34
33
  History and acknowledgement
35
34
  ===========================
36
35
 
37
- pvlib python started out as a Python translation of the PVLIB MATLAB
38
- toolbox (developed by the `PVPMC <https://pvpmc.sandia.gov/>`_ at
39
- Sandia National Laboratories) in 2013 and has grown substantially since then.
36
+ pvlib python began in 2013 as a Python translation of the `PVLIB for Matlab <https://github.com/sandialabs/MATLAB_PV_LIB>`_
37
+ toolbox developed by Sandia National Laboratories. pvlib python has grown substantially since then.
40
38
  Today it contains code contributions from over a hundred individuals worldwide
41
- and is maintained by a core group of PV modelers from a variety institutions.
39
+ and is maintained by a core group of PV modelers from a variety of institutions.
42
40
 
43
41
  pvlib has been supported directly and indirectly by DOE, NumFOCUS, and
44
42
  Google Summer of Code funding, university research projects,
@@ -57,7 +55,7 @@ use pvlib python in a published work, please cite:
57
55
  Anderson, K., Hansen, C., Holmgren, W., Jensen, A., Mikofski, M., and Driesse, A.
58
56
  "pvlib python: 2023 project update."
59
57
  Journal of Open Source Software, 8(92), 5994, (2023).
60
- https://doi.org/10.21105/joss.05994
58
+ :doi:`10.21105/joss.05994`.
61
59
 
62
60
 
63
61
  **Recommended citation for pvlib iotools**
@@ -65,14 +63,14 @@ use pvlib python in a published work, please cite:
65
63
  Jensen, A., Anderson, K., Holmgren, W., Mikofski, M., Hansen, C., Boeman, L., Loonen, R.
66
64
  "pvlib iotools — Open-source Python functions for seamless access to solar irradiance data."
67
65
  Solar Energy, 266, 112092, (2023).
68
- https://doi.org/10.1016/j.solener.2023.112092
66
+ :doi:`10.1016/j.solener.2023.112092`.
69
67
 
70
68
  **Historical citation for pvlib python**
71
69
 
72
70
  Holmgren, W., Hansen, C., and Mikofski, M.
73
71
  "pvlib python: a python package for modeling solar energy systems."
74
72
  Journal of Open Source Software, 3(29), 884, (2018).
75
- https://doi.org/10.21105/joss.00884
73
+ :doi:`10.21105/joss.00884`.
76
74
 
77
75
  **Version specific citation**
78
76
  Please also cite the DOI corresponding to the specific version of
@@ -82,26 +80,30 @@ pvlib python that you used. pvlib python DOIs are listed at
82
80
 
83
81
  Additional pvlib python publications include:
84
82
 
85
- * J. S. Stein, The photovoltaic performance modeling
86
- collaborative (PVPMC),” in Photovoltaic Specialists Conference, 2012.
83
+ * J. S. Stein, "The Photovoltaic Performance Modeling Collaborative (PVPMC),"
84
+ 2012 38th IEEE Photovoltaic Specialists Conference (PVSC),
85
+ Austin, TX, USA, 2012, pp. 003048-003052, :doi:`10.1109/PVSC.2012.6318225`.
87
86
  * R. W. Andrews, J. S. Stein, C. Hansen and D. Riley, "Introduction to the open
88
87
  source PV LIB for python Photovoltaic system modelling package,"
89
- 2014 IEEE 40th Photovoltaic Specialist Conference (PVSC), Denver, CO, USA,
90
- 2014, pp. 0170-0174, https://doi.org/10.1109/PVSC.2014.6925501
88
+ 2014 IEEE 40th Photovoltaic Specialist Conference (PVSC),
89
+ Denver, CO, USA, 2014, pp. 0170-0174, :doi:`10.1109/PVSC.2014.6925501`.
91
90
  (`paper
92
91
  <https://www.osti.gov/servlets/purl/1241774>`__)
93
- * W.F. Holmgren, R.W. Andrews, A.T. Lorenzo, and J.S. Stein,
94
- “PVLIB Python 2015,” in 42nd Photovoltaic Specialists Conference, 2015.
92
+ * W.F. Holmgren, R.W. Andrews, A.T. Lorenzo, and J.S. Stein, "PVLIB Python 2015,"
93
+ 2015 IEEE 42nd Photovoltaic Specialist Conference (PVSC),
94
+ New Orleans, LA, USA, 2015, pp. 1-5, :doi:`10.1109/PVSC.2015.7356005`.
95
95
  (`paper
96
96
  <https://github.com/pvlib/pvsc2015/blob/main/pvlib_pvsc_42.pdf>`__ and
97
97
  the `notebook to reproduce the figures
98
98
  <http://nbviewer.org/github/pvlib/pvsc2015/blob/main/paper.ipynb>`_)
99
99
  * J.S. Stein, W.F. Holmgren, J. Forbess, and C.W. Hansen,
100
- "PVLIB: Open Source Photovoltaic Performance Modeling Functions
101
- for Matlab and Python," in 43rd Photovoltaic Specialists Conference, 2016.
100
+ "PVLIB: Open Source Photovoltaic Performance Modeling Functions for Matlab and Python,"
101
+ 2016 IEEE 43rd Photovoltaic Specialists Conference (PVSC),
102
+ Portland, OR, USA, 2016, pp. 3425-3430, :doi:`10.1109/PVSC.2016.7750303`.
102
103
  * W.F. Holmgren and D.G. Groenendyk,
103
104
  "An Open Source Solar Power Forecasting Tool Using PVLIB-Python,"
104
- in 43rd Photovoltaic Specialists Conference, 2016.
105
+ 2016 IEEE 43rd Photovoltaic Specialists Conference (PVSC),
106
+ Portland, OR, USA, 2016, pp. 0972-0975, :doi:`10.1109/PVSC.2016.7749755`.
105
107
 
106
108
 
107
109
  Logo
@@ -13,10 +13,11 @@ Sandia array performance model (SAPM)
13
13
  pvsystem.sapm
14
14
  pvsystem.sapm_effective_irradiance
15
15
  pvsystem.sapm_spectral_loss
16
+ spectrum.spectral_factor_sapm
16
17
  inverter.sandia
17
18
  temperature.sapm_cell
18
19
 
19
- Pvsyst model
20
+ PVsyst model
20
21
  ^^^^^^^^^^^^
21
22
 
22
23
  .. autosummary::
@@ -15,7 +15,6 @@ User Guide
15
15
  clearsky
16
16
  bifacial
17
17
  weather_data
18
- comparison_pvlib_matlab
19
18
  variables_style_rules
20
19
  singlediode
21
20
  faq
@@ -83,15 +83,10 @@ for a password then you're probably trying to install pvlib into your
83
83
  system's Python distribution. This is usually a bad idea and you should
84
84
  follow the :ref:`nopython` instructions before installing pvlib.
85
85
 
86
- You may still want to download the Python source code so that you can
87
- easily get all of the Jupyter Notebook tutorials. Either clone the `git
86
+ You may still want to download the Python source code. Either clone the `git
88
87
  repository <https://github.com/pvlib/pvlib-python>`_ or go to the
89
88
  `Releases page <https://github.com/pvlib/pvlib-python/releases>`_ to
90
- download the zip file of the most recent release. You can also use the
91
- nbviewer website to choose a tutorial to experiment with. Go to our
92
- `nbviewer tutorial page
93
- <http://nbviewer.jupyter.org/github/pvlib/pvlib-python/tree/main/docs/
94
- tutorials/>`_.
89
+ download the zip file of the most recent release.
95
90
 
96
91
 
97
92
  .. _editablelibrary:
@@ -220,7 +215,7 @@ pvlib-python is compatible with Python 3.
220
215
 
221
216
  pvlib-python requires Pandas, Numpy, and SciPy. The minimum version requirements
222
217
  are specified in
223
- `setup.py <https://github.com/pvlib/pvlib-python/blob/main/setup.py>`_.
218
+ `pyproject.toml <https://github.com/pvlib/pvlib-python/blob/main/pyproject.toml>`_.
224
219
  They are typically releases from several years ago.
225
220
 
226
221
  A handful of pvlib-python features require additional packages that must
@@ -47,8 +47,8 @@ instructions on how to contribute. We really appreciate it!
47
47
 
48
48
  Credits
49
49
  -------
50
- The pvlib-python community thanks Sandia National Lab
51
- for developing PVLIB Matlab and for supporting
50
+ The pvlib-python community thanks Sandia National Laboratories
51
+ for developing PVLIB for Matlab and for supporting
52
52
  Rob Andrews of Calama Consulting to port the library to Python.
53
53
  Will Holmgren thanks the Department of Energy's Energy
54
54
  Efficiency and Renewable Energy Postdoctoral Fellowship Program
@@ -0,0 +1,44 @@
1
+ .. _whatsnew_01050:
2
+
3
+
4
+ v0.10.5 (May 6, 2024)
5
+ ---------------------
6
+
7
+
8
+ Bug fixes
9
+ ~~~~~~~~~
10
+ * Compatibility with numpy 2.0. (:issue:`2026`, :pull:`2027`)
11
+ * Improved reliability of :py:func:`pvlib.singlediode.bishop88_mpp`,
12
+ :py:func:`pvlib.singlediode.bishop88_i_from_v` and
13
+ :py:func:`pvlib.singlediode.bishop88_v_from_i` by improving the initial
14
+ guess for the newton and brentq algorithms. (:issue:`2013`, :pull:`2032`)
15
+ * Corrected equation for Ixx0 in :py:func:`pvlib.pvsystem.sapm`. (:issue:`2016`, :pull:`2019`)
16
+ * Fixed :py:func:`pvlib.pvsystem.retrieve_sam` silently ignoring the ``path`` parameter
17
+ when ``name`` was provided. Now an exception is raised requesting to only provide one
18
+ of the two parameters. (:issue:`2018`, :pull:`2020`)
19
+
20
+
21
+ Documentation
22
+ ~~~~~~~~~~~~~
23
+ * Fix variable name typo at
24
+ ``docs\examples\system-models\plot_oedi_9068.py``. (:pull:`1996`)
25
+ * Remove "Comparison with PVLib for Matlab" page from the User Guide. (:issue:`2010`, :pull:`2012`)
26
+
27
+
28
+ Requirements
29
+ ~~~~~~~~~~~~
30
+ * Minimum version of Python increased from 3.7 to 3.8. (:issue:`1975`, :pull:`2029`)
31
+ * Minimum version of scipy advanced from 1.5.0 to 1.6.0. (:pull:`2027`)
32
+
33
+
34
+ Contributors
35
+ ~~~~~~~~~~~~
36
+ * Cliff Hansen (:ghuser:`cwhanse`)
37
+ * :ghuser:`apct69`
38
+ * Mark Mikofski (:ghuser:`mikofski`)
39
+ * Echedey Luis (:ghuser:`echedey-ls`)
40
+ * Adam R. Jensen (:ghuser:`adamrjensen`)
41
+ * Anton Driesse (:ghuser:`adriesse`)
42
+ * Scott Meredith (:ghuser:`smmeredith`)
43
+ * Alexander Morgan (:ghuser:`alexandermorgan`)
44
+ * Kevin Anderson (:ghuser:`kandersolar`)
@@ -1,8 +1,12 @@
1
- .. _whatsnew_01050:
1
+ .. _whatsnew_01100:
2
2
 
3
3
 
4
- v0.10.5 (Anticipated June 2024)
5
- -------------------------------
4
+ v0.11.0 (Anticipated June, 2024)
5
+ --------------------------------
6
+
7
+
8
+ Breaking changes
9
+ ~~~~~~~~~~~~~~~~
6
10
 
7
11
 
8
12
  Deprecations
@@ -69,7 +69,7 @@ Enhancements
69
69
  * Modify ``sapm`` documentation to clarify that it does
70
70
  not work with the CEC database. (:issue:`122`)
71
71
  * Adds citation information to the documentation. (:issue:`73`)
72
- * Updates the :ref:`comparison_pvlib_matlab` documentation. (:issue:`116`)
72
+ * Updates the ``comparison_pvlib_matlab`` documentation. (:issue:`116`)
73
73
 
74
74
 
75
75
  Bug fixes
@@ -14,7 +14,7 @@ Deprecations
14
14
  :py:class:`~pvlib.modelchain.ModelChain` interfaces, although note that the
15
15
  inputs do not directly translate. (:pull:`1401`)
16
16
  * All functionality in the ``pvlib.forecast`` module is deprecated.
17
- For details, see :ref:`forecasts`. (:issue:`1057`, :pull:`1426`)
17
+ For details, see ``forecasts``. (:issue:`1057`, :pull:`1426`)
18
18
 
19
19
  Enhancements
20
20
  ~~~~~~~~~~~~
@@ -6,6 +6,7 @@ What's New
6
6
 
7
7
  These are new features and improvements of note in each release.
8
8
 
9
+ .. include:: whatsnew/v0.10.5.rst
9
10
  .. include:: whatsnew/v0.10.4.rst
10
11
  .. include:: whatsnew/v0.10.3.rst
11
12
  .. include:: whatsnew/v0.10.2.rst
@@ -4,6 +4,7 @@ modeling.
4
4
  """
5
5
  import numpy as np
6
6
  from pvlib.tools import sind, cosd, tand
7
+ from scipy.integrate import trapezoid
7
8
 
8
9
 
9
10
  def _solar_projection_tangent(solar_zenith, solar_azimuth, surface_azimuth):
@@ -220,7 +221,7 @@ def vf_ground_sky_2d_integ(surface_tilt, gcr, height, pitch, max_rows=10,
220
221
  vf = vf_ground_sky_2d(r, gcr, z, pitch, height, max_rows)
221
222
  fz_sky[:, k] = vf[:, 0] # remove spurious rotation dimension
222
223
  # calculate the integrated view factor for all of the ground between rows
223
- return np.trapz(fz_sky, z, axis=0)
224
+ return trapezoid(fz_sky, z, axis=0)
224
225
 
225
226
 
226
227
  def _vf_poly(surface_tilt, gcr, x, delta):
@@ -92,7 +92,7 @@ def read_srml(filename, map_variables=True):
92
92
  # Mask data marked with quality flag 99 (bad or missing data)
93
93
  for col in columns[::2]:
94
94
  missing = data[col + '_flag'] == 99
95
- data[col] = data[col].where(~(missing), np.NaN)
95
+ data[col] = data[col].where(~(missing), np.nan)
96
96
  return data
97
97
 
98
98
 
@@ -175,7 +175,8 @@ def _format_index(df):
175
175
  @deprecated('0.10.0', alternative='pvlib.iotools.get_srml', removal='0.11.0')
176
176
  def read_srml_month_from_solardat(station, year, month, filetype='PO',
177
177
  map_variables=True):
178
- """Request a month of SRML data and read it into a Dataframe.
178
+ """
179
+ Request a month of SRML data and read it into a Dataframe.
179
180
 
180
181
  The SRML is described in [1]_.
181
182
 
@@ -152,7 +152,7 @@ def read_surfrad(filename, map_variables=True):
152
152
 
153
153
  data = _format_index(data)
154
154
  missing = data == -9999.9
155
- data = data.where(~missing, np.NaN)
155
+ data = data.where(~missing, np.nan)
156
156
 
157
157
  if map_variables:
158
158
  data.rename(columns=VARIABLE_MAP, inplace=True)
@@ -439,8 +439,10 @@ def lookup_altitude(latitude, longitude):
439
439
  # 255 is a special value that means nodata. Fallback to 0 if nodata.
440
440
  if alt == 255:
441
441
  return 0
442
+ # convert from np.uint8 to float so that the following operations succeed
443
+ alt = float(alt)
442
444
  # Altitude is encoded in 28 meter steps from -450 meters to 6561 meters
443
445
  # There are 0-254 possible altitudes, with 255 reserved for nodata.
444
446
  alt *= 28
445
447
  alt -= 450
446
- return float(alt)
448
+ return alt
@@ -311,11 +311,13 @@ def huld(effective_irradiance, temp_mod, pdc0, k=None, cell_type=None):
311
311
 
312
312
  :py:func:`huld` is a component of the PV performance model implemented in
313
313
  PVGIS. Among other components, the full PVGIS model includes:
314
- - the Faiman model for module temperature
315
- :py:func:`pvlib.temperature.faiman`
316
- - the Martin and Ruiz model for the incidence angle modifier (IAM)
317
- :py:func:`pvlib.iam.martin_ruiz`
318
- - a custom model for a spectral adjustment factor
314
+
315
+ - the Faiman model for module temperature
316
+ :py:func:`pvlib.temperature.faiman`
317
+ - the Martin and Ruiz model for the incidence angle modifier (IAM)
318
+ :py:func:`pvlib.iam.martin_ruiz`
319
+ - a custom model for a spectral adjustment factor
320
+
319
321
  The PVGIS API (see :py:func:`pvlib.iotools.get_pvgis_hourly`) returns
320
322
  broadband plane-of-array irradiance (``poa_global``) and DC power (``P``).
321
323
  ``poa_global`` is irradiance before applying the IAM and spectral
@@ -7,7 +7,7 @@ from collections import OrderedDict
7
7
  import functools
8
8
  import io
9
9
  import itertools
10
- import os
10
+ from pathlib import Path
11
11
  import inspect
12
12
  from urllib.request import urlopen
13
13
  import numpy as np
@@ -1487,8 +1487,10 @@ def calcparams_desoto(effective_irradiance, temp_cell,
1487
1487
  '''
1488
1488
  Calculates five parameter values for the single diode equation at
1489
1489
  effective irradiance and cell temperature using the De Soto et al.
1490
- model described in [1]_. The five values returned by calcparams_desoto
1491
- can be used by singlediode to calculate an IV curve.
1490
+ model. The five values returned by ``calcparams_desoto`` can be used by
1491
+ singlediode to calculate an IV curve.
1492
+
1493
+ The model is described in [1]_.
1492
1494
 
1493
1495
  Parameters
1494
1496
  ----------
@@ -1958,9 +1960,9 @@ def calcparams_pvsyst(effective_irradiance, temp_cell,
1958
1960
 
1959
1961
 
1960
1962
  def retrieve_sam(name=None, path=None):
1961
- '''
1962
- Retrieve latest module and inverter info from a local file or the
1963
- SAM website.
1963
+ """
1964
+ Retrieve latest module and inverter info from a file bundled with pvlib,
1965
+ a path or an URL (like SAM's website).
1964
1966
 
1965
1967
  This function will retrieve either:
1966
1968
 
@@ -1971,10 +1973,14 @@ def retrieve_sam(name=None, path=None):
1971
1973
 
1972
1974
  and return it as a pandas DataFrame.
1973
1975
 
1976
+ .. note::
1977
+ Only provide one of ``name`` or ``path``.
1978
+
1974
1979
  Parameters
1975
1980
  ----------
1976
1981
  name : string, optional
1977
- Name can be one of:
1982
+ Use one of the following strings to retrieve a database bundled with
1983
+ pvlib:
1978
1984
 
1979
1985
  * 'CECMod' - returns the CEC module database
1980
1986
  * 'CECInverter' - returns the CEC Inverter database
@@ -1985,7 +1991,7 @@ def retrieve_sam(name=None, path=None):
1985
1991
  * 'ADRInverter' - returns the ADR Inverter database
1986
1992
 
1987
1993
  path : string, optional
1988
- Path to the SAM file. May also be a URL.
1994
+ Path to a CSV file or a URL.
1989
1995
 
1990
1996
  Returns
1991
1997
  -------
@@ -1997,7 +2003,11 @@ def retrieve_sam(name=None, path=None):
1997
2003
  Raises
1998
2004
  ------
1999
2005
  ValueError
2000
- If no name or path is provided.
2006
+ If no ``name`` or ``path`` is provided.
2007
+ ValueError
2008
+ If both ``name`` and ``path`` are provided.
2009
+ KeyError
2010
+ If the provided ``name`` is not a valid database name.
2001
2011
 
2002
2012
  Notes
2003
2013
  -----
@@ -2030,38 +2040,38 @@ def retrieve_sam(name=None, path=None):
2030
2040
  CEC_Date NaN
2031
2041
  CEC_Type Utility Interactive
2032
2042
  Name: AE_Solar_Energy__AE6_0__277V_, dtype: object
2033
- '''
2034
-
2035
- if name is not None:
2036
- name = name.lower()
2037
- data_path = os.path.join(
2038
- os.path.dirname(os.path.abspath(__file__)), 'data')
2039
- if name == 'cecmod':
2040
- csvdata = os.path.join(
2041
- data_path, 'sam-library-cec-modules-2019-03-05.csv')
2042
- elif name == 'sandiamod':
2043
- csvdata = os.path.join(
2044
- data_path, 'sam-library-sandia-modules-2015-6-30.csv')
2045
- elif name == 'adrinverter':
2046
- csvdata = os.path.join(
2047
- data_path, 'adr-library-cec-inverters-2019-03-05.csv')
2048
- elif name in ['cecinverter', 'sandiainverter']:
2049
- # Allowing either, to provide for old code,
2050
- # while aligning with current expectations
2051
- csvdata = os.path.join(
2052
- data_path, 'sam-library-cec-inverters-2019-03-05.csv')
2053
- else:
2054
- raise ValueError(f'invalid name {name}')
2055
- elif path is not None:
2056
- if path.startswith('http'):
2057
- response = urlopen(path)
2058
- csvdata = io.StringIO(response.read().decode(errors='ignore'))
2059
- else:
2060
- csvdata = path
2043
+ """
2044
+ # error: path was previously silently ignored if name was given GH#2018
2045
+ if name is not None and path is not None:
2046
+ raise ValueError("Please provide either 'name' or 'path', not both.")
2061
2047
  elif name is None and path is None:
2062
- raise ValueError("A name or path must be provided!")
2063
-
2064
- return _parse_raw_sam_df(csvdata)
2048
+ raise ValueError("Please provide either 'name' or 'path'.")
2049
+ elif name is not None:
2050
+ internal_dbs = {
2051
+ "cecmod": "sam-library-cec-modules-2019-03-05.csv",
2052
+ "sandiamod": "sam-library-sandia-modules-2015-6-30.csv",
2053
+ "adrinverter": "adr-library-cec-inverters-2019-03-05.csv",
2054
+ # Both 'cecinverter' and 'sandiainverter', point to same database
2055
+ # to provide for old code, while aligning with current expectations
2056
+ "cecinverter": "sam-library-cec-inverters-2019-03-05.csv",
2057
+ "sandiainverter": "sam-library-cec-inverters-2019-03-05.csv",
2058
+ }
2059
+ try:
2060
+ csvdata_path = Path(__file__).parent.joinpath(
2061
+ "data", internal_dbs[name.lower()]
2062
+ )
2063
+ except KeyError:
2064
+ raise KeyError(
2065
+ f"Invalid name {name}. "
2066
+ + f"Provide one of {list(internal_dbs.keys())}."
2067
+ ) from None
2068
+ else: # path is not None
2069
+ if path.lower().startswith("http"): # URL check is not case-sensitive
2070
+ response = urlopen(path) # URL is case-sensitive
2071
+ csvdata_path = io.StringIO(response.read().decode(errors="ignore"))
2072
+ else:
2073
+ csvdata_path = path
2074
+ return _parse_raw_sam_df(csvdata_path)
2065
2075
 
2066
2076
 
2067
2077
  def _normalize_sam_product_names(names):
@@ -2254,10 +2264,9 @@ def sapm(effective_irradiance, temp_cell, module):
2254
2264
  module['IXO'] * (module['C4']*Ee + module['C5']*(Ee**2)) *
2255
2265
  (1 + module['Aisc']*(temp_cell - temp_ref)))
2256
2266
 
2257
- # the Ixx calculation in King 2004 has a typo (mixes up Aisc and Aimp)
2258
2267
  out['i_xx'] = (
2259
2268
  module['IXXO'] * (module['C6']*Ee + module['C7']*(Ee**2)) *
2260
- (1 + module['Aisc']*(temp_cell - temp_ref)))
2269
+ (1 + module['Aimp']*(temp_cell - temp_ref)))
2261
2270
 
2262
2271
  if isinstance(out['i_sc'], pd.Series):
2263
2272
  out = pd.DataFrame(out)
@@ -2536,7 +2545,7 @@ def singlediode(photocurrent, saturation_current, resistance_series,
2536
2545
 
2537
2546
 
2538
2547
  def max_power_point(photocurrent, saturation_current, resistance_series,
2539
- resistance_shunt, nNsVth, d2mutau=0, NsVbi=np.Inf,
2548
+ resistance_shunt, nNsVth, d2mutau=0, NsVbi=np.inf,
2540
2549
  method='brentq'):
2541
2550
  """
2542
2551
  Given the single diode equation coefficients, calculates the maximum power
@@ -13,8 +13,10 @@ from scipy.spatial.distance import pdist
13
13
  def wvm(clearsky_index, positions, cloud_speed, dt=None):
14
14
  """
15
15
  Compute spatial aggregation time series smoothing on clear sky index based
16
- on the Wavelet Variability model of Lave et al. [1]_, [2]_. Implementation
17
- is basically a port of the Matlab version of the code [3]_.
16
+ on the Wavelet Variability model.
17
+
18
+ This model is described in Lave et al. [1]_, [2]_.
19
+ Implementation is basically a port of the Matlab version of the code [3]_.
18
20
 
19
21
  Parameters
20
22
  ----------