pvlib 0.12.0__tar.gz → 0.13.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. {pvlib-0.12.0/pvlib.egg-info → pvlib-0.13.0}/PKG-INFO +2 -3
  2. pvlib-0.13.0/docs/examples/agrivoltaics/plot_agrivoltaics_ground_irradiance.py +163 -0
  3. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/system-models/plot_oedi_9068.py +1 -1
  4. pvlib-0.13.0/docs/sphinx/source/_images/agrivoltaics_system.jpg +0 -0
  5. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/conf.py +40 -5
  6. pvlib-0.13.0/docs/sphinx/source/reference/iotools.rst +238 -0
  7. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/pv_modeling/parameters.rst +1 -0
  8. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/getting_started}/installation.rst +1 -1
  9. pvlib-0.13.0/docs/sphinx/source/user_guide/index.rst +34 -0
  10. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/modeling_topics}/bifacial.rst +1 -1
  11. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/modeling_topics}/modelchain.rst +2 -2
  12. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/modeling_topics}/pvsystem.rst +4 -4
  13. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/modeling_topics}/weather_data.rst +4 -5
  14. pvlib-0.13.0/docs/sphinx/source/whatsnew/v0.13.0.rst +112 -0
  15. pvlib-0.13.0/docs/sphinx/source/whatsnew/v0.X.Y-example.rst +45 -0
  16. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew.rst +1 -0
  17. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/atmosphere.py +40 -31
  18. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/bifacial/infinite_sheds.py +11 -16
  19. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/__init__.py +5 -0
  20. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/bsrn.py +16 -10
  21. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/epw.py +14 -11
  22. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/psm3.py +37 -71
  23. pvlib-0.13.0/pvlib/iotools/psm4.py +766 -0
  24. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/pvgis.py +116 -101
  25. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/sodapro.py +54 -69
  26. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/srml.py +1 -2
  27. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/irradiance.py +28 -19
  28. pvlib-0.13.0/pvlib/ivtools/sdm/__init__.py +20 -0
  29. pvlib-0.13.0/pvlib/ivtools/sdm/_fit_desoto_pvsyst_sandia.py +585 -0
  30. pvlib-0.13.0/pvlib/ivtools/sdm/cec.py +93 -0
  31. pvlib-0.13.0/pvlib/ivtools/sdm/desoto.py +401 -0
  32. pvlib-0.13.0/pvlib/ivtools/sdm/pvsyst.py +630 -0
  33. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/modelchain.py +1 -1
  34. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/pvsystem.py +130 -69
  35. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/solarposition.py +1 -1
  36. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spa_c_files/README.md +1 -1
  37. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spectrum/irradiance.py +2 -1
  38. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/temperature.py +13 -10
  39. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/tools.py +27 -0
  40. {pvlib-0.12.0 → pvlib-0.13.0/pvlib.egg-info}/PKG-INFO +2 -3
  41. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib.egg-info/SOURCES.txt +33 -15
  42. {pvlib-0.12.0 → pvlib-0.13.0}/pyproject.toml +2 -3
  43. {pvlib-0.12.0 → pvlib-0.13.0}/tests/bifacial/test_infinite_sheds.py +12 -11
  44. {pvlib-0.12.0 → pvlib-0.13.0}/tests/conftest.py +20 -0
  45. pvlib-0.13.0/tests/data/pvgis_tmy_test.csv +8761 -0
  46. pvlib-0.13.0/tests/data/test_psm4_2023.csv +17521 -0
  47. pvlib-0.13.0/tests/data/test_psm4_2023_5min.csv +289 -0
  48. pvlib-0.13.0/tests/data/test_psm4_full_disc_2023.csv +8761 -0
  49. pvlib-0.13.0/tests/data/test_psm4_tmy-2023.csv +8761 -0
  50. pvlib-0.13.0/tests/data/test_read_psm4.csv +17523 -0
  51. pvlib-0.13.0/tests/data/tmy_45.000_8.000_2005_2023.csv +8790 -0
  52. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/tmy_45.000_8.000_2005_2023.epw +8761 -8761
  53. pvlib-0.13.0/tests/data/tmy_45.000_8.000_2005_2023.json +1 -0
  54. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_bsrn.py +20 -1
  55. pvlib-0.13.0/tests/iotools/test_epw.py +45 -0
  56. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_psm3.py +13 -24
  57. pvlib-0.13.0/tests/iotools/test_psm4.py +203 -0
  58. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_pvgis.py +82 -73
  59. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_sodapro.py +13 -6
  60. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_solaranywhere.py +2 -1
  61. pvlib-0.13.0/tests/ivtools/sdm/conftest.py +12 -0
  62. pvlib-0.13.0/tests/ivtools/sdm/test__fit_desoto_pvsyst_sandia.py +102 -0
  63. pvlib-0.13.0/tests/ivtools/sdm/test_cec.py +41 -0
  64. pvlib-0.13.0/tests/ivtools/sdm/test_desoto.py +94 -0
  65. pvlib-0.13.0/tests/ivtools/sdm/test_pvsyst.py +337 -0
  66. {pvlib-0.12.0 → pvlib-0.13.0}/tests/spectrum/test_irradiance.py +21 -0
  67. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_clearsky.py +10 -6
  68. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_irradiance.py +4 -4
  69. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_modelchain.py +10 -0
  70. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_pvsystem.py +16 -1
  71. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_tools.py +30 -0
  72. pvlib-0.12.0/docs/sphinx/source/reference/iotools.rst +0 -65
  73. pvlib-0.12.0/docs/sphinx/source/user_guide/index.rst +0 -34
  74. pvlib-0.12.0/pvlib/ivtools/sdm.py +0 -1379
  75. pvlib-0.12.0/tests/data/pvgis_tmy_test.csv +0 -8761
  76. pvlib-0.12.0/tests/data/tmy_45.000_8.000_2005_2023.csv +0 -8790
  77. pvlib-0.12.0/tests/data/tmy_45.000_8.000_2005_2023.json +0 -1
  78. pvlib-0.12.0/tests/data/tmy_45.000_8.000_2005_2023.txt +0 -8761
  79. pvlib-0.12.0/tests/iotools/test_epw.py +0 -23
  80. pvlib-0.12.0/tests/ivtools/test_sdm.py +0 -427
  81. {pvlib-0.12.0 → pvlib-0.13.0}/AUTHORS.md +0 -0
  82. {pvlib-0.12.0 → pvlib-0.13.0}/LICENSE +0 -0
  83. {pvlib-0.12.0 → pvlib-0.13.0}/MANIFEST.in +0 -0
  84. {pvlib-0.12.0 → pvlib-0.13.0}/README.md +0 -0
  85. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/README.rst +0 -0
  86. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/adr-pvarray/README.rst +0 -0
  87. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/adr-pvarray/plot_fit_to_matrix.py +0 -0
  88. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/adr-pvarray/plot_simulate_fast.py +0 -0
  89. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/adr-pvarray/plot_simulate_system.py +0 -0
  90. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/agrivoltaics/README.rst +0 -0
  91. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/agrivoltaics/plot_diffuse_PAR_Spitters_relationship.py +0 -0
  92. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/bifacial/README.rst +0 -0
  93. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/bifacial/plot_bifi_model_mc.py +0 -0
  94. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +0 -0
  95. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/bifacial/plot_irradiance_nonuniformity_loss.py +0 -0
  96. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +0 -0
  97. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/floating-pv/README.rst +0 -0
  98. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/floating-pv/plot_floating_pv_cell_temperature.py +0 -0
  99. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-decomposition/README.rst +0 -0
  100. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +0 -0
  101. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-transposition/README.rst +0 -0
  102. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
  103. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
  104. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
  105. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-transposition/plot_rtranpose_limitations.py +0 -0
  106. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-transposition/plot_rtranpose_year.py +0 -0
  107. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +0 -0
  108. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-transposition/plot_transposition_gain.py +0 -0
  109. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/irradiance-transposition/use_perez_modelchain.py +0 -0
  110. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/iv-modeling/README.rst +0 -0
  111. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/iv-modeling/plot_singlediode.py +0 -0
  112. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/reflections/README.rst +0 -0
  113. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/reflections/plot_convert_iam_models.py +0 -0
  114. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
  115. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/reflections/plot_fit_iam_models.py +0 -0
  116. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/shading/README.rst +0 -0
  117. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/shading/plot_martinez_shade_loss.py +0 -0
  118. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/shading/plot_partial_module_shading_simple.py +0 -0
  119. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
  120. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/shading/plot_shaded_fraction1d_ns_hsat_example.py +0 -0
  121. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/shading/plot_simple_irradiance_adjustment_for_horizon_shading.py +0 -0
  122. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/soiling/README.rst +0 -0
  123. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
  124. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +0 -0
  125. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/solar-position/README.rst +0 -0
  126. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/solar-position/plot_sunpath_diagrams.py +0 -0
  127. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/solar-tracking/README.rst +0 -0
  128. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
  129. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
  130. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
  131. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
  132. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/spectrum/README.rst +0 -0
  133. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/spectrum/average_photon_energy.py +0 -0
  134. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/spectrum/plot_spectrl2_fig51A.py +0 -0
  135. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/spectrum/plot_standard_ASTM_G173-03.py +0 -0
  136. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/spectrum/spectral_factor.py +0 -0
  137. {pvlib-0.12.0 → pvlib-0.13.0}/docs/examples/system-models/README.rst +0 -0
  138. {pvlib-0.12.0 → pvlib-0.13.0}/docs/notes/Determining the average view factor from a module.pdf +0 -0
  139. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/Makefile +0 -0
  140. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/make.bat +0 -0
  141. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/Anderson_Jensen_2024_Fig3.png +0 -0
  142. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/Anderson_Mikofski_2020_Fig5.jpg +0 -0
  143. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
  144. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/OEDI_9068_daily_timeseries.png +0 -0
  145. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/OEDI_9068_inverter1_comparison.png +0 -0
  146. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/OEDI_9068_inverter2_comparison.png +0 -0
  147. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/PV_module_layout_cesardd.jpg +0 -0
  148. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/clonebutton.png +0 -0
  149. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/example_function_screenshot.png +0 -0
  150. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
  151. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
  152. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
  153. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
  154. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
  155. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
  156. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
  157. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
  158. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
  159. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
  160. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_static/reference_format.css +0 -0
  161. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_static/tooltipster_color_theming.css +0 -0
  162. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_static/version-alert.js +0 -0
  163. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
  164. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
  165. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
  166. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/_templates/edit-this-page.html +0 -0
  167. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/contributing/how_to_contribute_new_code.rst +0 -0
  168. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/contributing/index.rst +0 -0
  169. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/contributing/introduction_to_contributing.rst +0 -0
  170. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/contributing/style_guide.rst +0 -0
  171. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/contributing/testing.rst +0 -0
  172. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/index.rst +0 -0
  173. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/airmass_atmospheric.rst +0 -0
  174. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/bifacial.rst +0 -0
  175. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/classes.rst +0 -0
  176. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/clearsky.rst +0 -0
  177. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +0 -0
  178. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +0 -0
  179. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +0 -0
  180. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +0 -0
  181. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +0 -0
  182. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +0 -0
  183. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/index.rst +0 -0
  184. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/irradiance/albedo.rst +0 -0
  185. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/irradiance/class-methods.rst +0 -0
  186. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/irradiance/clearness-index.rst +0 -0
  187. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/irradiance/components.rst +0 -0
  188. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/irradiance/decomposition.rst +0 -0
  189. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/irradiance/index.rst +0 -0
  190. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/irradiance/transposition.rst +0 -0
  191. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/location.rst +0 -0
  192. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/modelchain.rst +0 -0
  193. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/pv_modeling/iam.rst +0 -0
  194. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/pv_modeling/index.rst +0 -0
  195. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/pv_modeling/inverter.rst +0 -0
  196. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/pv_modeling/other.rst +0 -0
  197. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/pv_modeling/sdm.rst +0 -0
  198. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/pv_modeling/system_models.rst +0 -0
  199. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/pv_modeling/temperature.rst +0 -0
  200. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/scaling.rst +0 -0
  201. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/solarposition.rst +0 -0
  202. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/tracking.rst +0 -0
  203. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/reference/transformer.rst +0 -0
  204. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/extras}/faq.rst +0 -0
  205. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/extras}/nomenclature.rst +0 -0
  206. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/getting_started}/introtutorial.rst +0 -0
  207. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/getting_started}/package_overview.rst +0 -0
  208. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/modeling_topics}/clearsky.rst +0 -0
  209. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/modeling_topics}/singlediode.rst +0 -0
  210. {pvlib-0.12.0/docs/sphinx/source/user_guide → pvlib-0.13.0/docs/sphinx/source/user_guide/modeling_topics}/timetimezones.rst +0 -0
  211. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
  212. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.10.0.rst +0 -0
  213. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.10.1.rst +0 -0
  214. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.10.2.rst +0 -0
  215. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.10.3.rst +0 -0
  216. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.10.4.rst +0 -0
  217. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.10.5.rst +0 -0
  218. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.11.0.rst +0 -0
  219. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.11.1.rst +0 -0
  220. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.11.2.rst +0 -0
  221. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.12.0.rst +0 -0
  222. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
  223. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
  224. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
  225. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.3.0.txt +0 -0
  226. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
  227. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
  228. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
  229. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
  230. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
  231. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
  232. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
  233. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
  234. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
  235. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
  236. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
  237. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
  238. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
  239. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.6.1.rst +0 -0
  240. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
  241. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
  242. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.7.0.rst +0 -0
  243. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.7.1.rst +0 -0
  244. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.7.2.rst +0 -0
  245. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.8.0.rst +0 -0
  246. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.8.1.rst +0 -0
  247. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.9.0.rst +0 -0
  248. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.9.1.rst +0 -0
  249. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.9.2.rst +0 -0
  250. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.9.3.rst +0 -0
  251. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -0
  252. {pvlib-0.12.0 → pvlib-0.13.0}/docs/sphinx/source/whatsnew/v0.9.5.rst +0 -0
  253. {pvlib-0.12.0 → pvlib-0.13.0}/docs/tutorials/atmosphere.ipynb +0 -0
  254. {pvlib-0.12.0 → pvlib-0.13.0}/docs/tutorials/irradiance.ipynb +0 -0
  255. {pvlib-0.12.0 → pvlib-0.13.0}/docs/tutorials/pvsystem.ipynb +0 -0
  256. {pvlib-0.12.0 → pvlib-0.13.0}/docs/tutorials/solarposition.ipynb +0 -0
  257. {pvlib-0.12.0 → pvlib-0.13.0}/docs/tutorials/tmy.ipynb +0 -0
  258. {pvlib-0.12.0 → pvlib-0.13.0}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
  259. {pvlib-0.12.0 → pvlib-0.13.0}/docs/tutorials/tmy_to_power.ipynb +0 -0
  260. {pvlib-0.12.0 → pvlib-0.13.0}/docs/tutorials/tracking.ipynb +0 -0
  261. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/__init__.py +0 -0
  262. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/_deprecation.py +0 -0
  263. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/albedo.py +0 -0
  264. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/bifacial/__init__.py +0 -0
  265. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/bifacial/loss_models.py +0 -0
  266. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/bifacial/pvfactors.py +0 -0
  267. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/bifacial/utils.py +0 -0
  268. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/clearsky.py +0 -0
  269. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/12839.tm2 +0 -0
  270. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/703165TY.csv +0 -0
  271. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/723170TYA.CSV +0 -0
  272. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/ASTMG173.csv +0 -0
  273. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/Altitude.h5 +0 -0
  274. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/LinkeTurbidities.h5 +0 -0
  275. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +0 -0
  276. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
  277. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
  278. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
  279. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
  280. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iam.py +0 -0
  281. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/inverter.py +0 -0
  282. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/acis.py +0 -0
  283. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/crn.py +0 -0
  284. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/midc.py +0 -0
  285. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/panond.py +0 -0
  286. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/solaranywhere.py +0 -0
  287. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/solargis.py +0 -0
  288. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/solcast.py +0 -0
  289. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/solrad.py +0 -0
  290. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/surfrad.py +0 -0
  291. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/iotools/tmy.py +0 -0
  292. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/ivtools/__init__.py +0 -0
  293. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/ivtools/sde.py +0 -0
  294. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/ivtools/utils.py +0 -0
  295. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/location.py +0 -0
  296. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/pvarray.py +0 -0
  297. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/scaling.py +0 -0
  298. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/shading.py +0 -0
  299. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/singlediode.py +0 -0
  300. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/snow.py +0 -0
  301. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/soiling.py +0 -0
  302. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spa.py +0 -0
  303. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spa_c_files/__init__.py +0 -0
  304. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spa_c_files/cspa_py.pxd +0 -0
  305. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spa_c_files/setup.py +0 -0
  306. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spa_c_files/spa_py.pyx +0 -0
  307. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spa_c_files/spa_py_example.py +0 -0
  308. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spectrum/__init__.py +0 -0
  309. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spectrum/mismatch.py +0 -0
  310. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spectrum/response.py +0 -0
  311. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/spectrum/spectrl2.py +0 -0
  312. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/tracking.py +0 -0
  313. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/transformer.py +0 -0
  314. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib/version.py +0 -0
  315. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib.egg-info/dependency_links.txt +0 -0
  316. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib.egg-info/requires.txt +0 -0
  317. {pvlib-0.12.0 → pvlib-0.13.0}/pvlib.egg-info/top_level.txt +0 -0
  318. {pvlib-0.12.0 → pvlib-0.13.0}/scripts/update_top_ranking_issues.py +0 -0
  319. {pvlib-0.12.0 → pvlib-0.13.0}/setup.cfg +0 -0
  320. {pvlib-0.12.0 → pvlib-0.13.0}/setup.py +0 -0
  321. {pvlib-0.12.0 → pvlib-0.13.0}/tests/__init__.py +0 -0
  322. {pvlib-0.12.0 → pvlib-0.13.0}/tests/bifacial/__init__.py +0 -0
  323. {pvlib-0.12.0 → pvlib-0.13.0}/tests/bifacial/test_losses_models.py +0 -0
  324. {pvlib-0.12.0 → pvlib-0.13.0}/tests/bifacial/test_pvfactors.py +0 -0
  325. {pvlib-0.12.0 → pvlib-0.13.0}/tests/bifacial/test_utils.py +0 -0
  326. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/BIRD_08_16_2012.csv +0 -0
  327. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/BIRD_08_16_2012_patm.csv +0 -0
  328. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
  329. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv +0 -0
  330. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv +0 -0
  331. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/CPS SCH275KTL-DO-US-800-250kW_275kVA_1.OND +0 -0
  332. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
  333. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/CRN_with_problems.txt +0 -0
  334. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/ET-M772BH550GL.PAN +0 -0
  335. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/NLD_Amsterdam062400_IWEC.epw +0 -0
  336. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/PVsyst_demo.csv +0 -0
  337. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/PVsyst_demo_model.csv +0 -0
  338. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/SRML-day-EUPO1801.txt +0 -0
  339. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/abq19056.dat +0 -0
  340. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/bishop88_numerical_precision.csv +0 -0
  341. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/bsrn-lr0100-pay0616.dat +0 -0
  342. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/bsrn-pay0616.dat.gz +0 -0
  343. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/cams_mcclear_1min_verbose.csv +0 -0
  344. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/cams_mcclear_monthly.csv +0 -0
  345. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/cams_radiation_1min_verbose.csv +0 -0
  346. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/cams_radiation_monthly.csv +0 -0
  347. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/detect_clearsky_data.csv +0 -0
  348. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/detect_clearsky_threshold_data.csv +0 -0
  349. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/greensboro_kimber_soil_manwash.dat +0 -0
  350. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/greensboro_kimber_soil_nowash.dat +0 -0
  351. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/inverter_fit_snl_meas.csv +0 -0
  352. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/inverter_fit_snl_sim.csv +0 -0
  353. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/ivtools_numdiff.csv +0 -0
  354. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/midc_20181014.txt +0 -0
  355. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/midc_raw_20181018.txt +0 -0
  356. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/midc_raw_short_header_20191115.txt +0 -0
  357. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/msn19056.dat +0 -0
  358. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/precise_iv_curves1.json +0 -0
  359. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/precise_iv_curves2.json +0 -0
  360. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/precise_iv_curves_parameter_sets1.csv +0 -0
  361. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/precise_iv_curves_parameter_sets2.csv +0 -0
  362. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
  363. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
  364. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/pvgis_tmy_meta.json +0 -0
  365. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/pvwatts_8760_rackmount.csv +0 -0
  366. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/pvwatts_8760_roofmount.csv +0 -0
  367. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/singleaxis_tracker_wslope.csv +0 -0
  368. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/spectrl2_example_spectra.csv +0 -0
  369. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/surfrad-slv16001.dat +0 -0
  370. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/test_psm3_2017.csv +0 -0
  371. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/test_psm3_2019_5min.csv +0 -0
  372. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/test_psm3_tmy-2017.csv +0 -0
  373. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/test_read_psm3.csv +0 -0
  374. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/test_read_pvgis_horizon.csv +0 -0
  375. {pvlib-0.12.0 → pvlib-0.13.0}/tests/data/tmy_45.000_8.000_userhorizon.json +0 -0
  376. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/__init__.py +0 -0
  377. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_acis.py +0 -0
  378. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_crn.py +0 -0
  379. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_midc.py +0 -0
  380. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_panond.py +0 -0
  381. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_solargis.py +0 -0
  382. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_solcast.py +0 -0
  383. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_solrad.py +0 -0
  384. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_srml.py +0 -0
  385. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_surfrad.py +0 -0
  386. {pvlib-0.12.0 → pvlib-0.13.0}/tests/iotools/test_tmy.py +0 -0
  387. {pvlib-0.12.0 → pvlib-0.13.0}/tests/ivtools/__init__.py +0 -0
  388. {pvlib-0.12.0 → pvlib-0.13.0}/tests/ivtools/test_sde.py +0 -0
  389. {pvlib-0.12.0 → pvlib-0.13.0}/tests/ivtools/test_utils.py +0 -0
  390. {pvlib-0.12.0 → pvlib-0.13.0}/tests/spectrum/__init__.py +0 -0
  391. {pvlib-0.12.0 → pvlib-0.13.0}/tests/spectrum/conftest.py +0 -0
  392. {pvlib-0.12.0 → pvlib-0.13.0}/tests/spectrum/test_mismatch.py +0 -0
  393. {pvlib-0.12.0 → pvlib-0.13.0}/tests/spectrum/test_response.py +0 -0
  394. {pvlib-0.12.0 → pvlib-0.13.0}/tests/spectrum/test_spectrl2.py +0 -0
  395. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test__deprecation.py +0 -0
  396. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_albedo.py +0 -0
  397. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_atmosphere.py +0 -0
  398. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_conftest.py +0 -0
  399. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_iam.py +0 -0
  400. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_inverter.py +0 -0
  401. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_location.py +0 -0
  402. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_numerical_precision.py +0 -0
  403. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_pvarray.py +0 -0
  404. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_scaling.py +0 -0
  405. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_shading.py +0 -0
  406. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_singlediode.py +0 -0
  407. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_snow.py +0 -0
  408. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_soiling.py +0 -0
  409. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_solarposition.py +0 -0
  410. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_spa.py +0 -0
  411. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_temperature.py +0 -0
  412. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_tracking.py +0 -0
  413. {pvlib-0.12.0 → pvlib-0.13.0}/tests/test_transformer.py +0 -0
@@ -1,15 +1,14 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pvlib
3
- Version: 0.12.0
3
+ Version: 0.13.0
4
4
  Summary: A set of functions and classes for simulating the performance of photovoltaic energy systems.
5
5
  Home-page: https://github.com/pvlib/pvlib-python
6
6
  Author-email: pvlib python Developers <pvlib-admin@googlegroups.com>
7
- License: BSD-3-Clause
7
+ License-Expression: BSD-3-Clause
8
8
  Project-URL: Bug Tracker, https://github.com/pvlib/pvlib-python/issues
9
9
  Project-URL: Documentation, https://pvlib-python.readthedocs.io/
10
10
  Project-URL: Source Code, https://github.com/pvlib/pvlib-python
11
11
  Classifier: Development Status :: 4 - Beta
12
- Classifier: License :: OSI Approved :: BSD License
13
12
  Classifier: Operating System :: OS Independent
14
13
  Classifier: Intended Audience :: Science/Research
15
14
  Classifier: Programming Language :: Python
@@ -0,0 +1,163 @@
1
+ """
2
+ Agrivoltaic system modeling
3
+ ===========================
4
+
5
+ Irradiance at crop level between rows
6
+ """
7
+
8
+ # %%
9
+ # This example demonstrates how to calculate power output for a bifacial
10
+ # agriPV plant as well as calculating the irradiance at crop level
11
+ # using pvlib's infinite sheds model.
12
+ # For an overview of agrivPV concepts and performance, the reader
13
+ # is referred to :doi:`10.69766/XAEU5008`.
14
+ #
15
+ # This gallery example is based on an actual AgriPV plant, namely
16
+ # European Energy's `Flakkebjerg AgriPV site
17
+ # <https://europeanenergy.com/2023/12/20/using-the-same-land-twice-at-european-\
18
+ # energys-flakkebjerg-solar-park/>`_.
19
+ #
20
+ # The first steps are to define the plant location and to calculate solar
21
+ # position and clearsky irradiance for a single day as an example.
22
+ #
23
+ # .. figure:: ../../_images/agrivoltaics_system.jpg
24
+ # :align: center
25
+ # :width: 75%
26
+ # :alt: Photo of an agriPV system
27
+ #
28
+ # Photo of an agriPV system.
29
+ # *Source: Adam R. Jensen*
30
+
31
+ import pvlib
32
+ import pandas as pd
33
+ from pvlib.tools import cosd
34
+ import matplotlib.pyplot as plt
35
+
36
+ # sphinx_gallery_thumbnail_path = '_images/agrivoltaics_system.jpg'
37
+
38
+ location = pvlib.location.Location(latitude=55, longitude=10)
39
+
40
+ times = pd.date_range('2020-06-28', periods=24*60, freq='1min', tz='UTC')
41
+
42
+ solpos = location.get_solarposition(times)
43
+
44
+ clearsky = location.get_clearsky(times, model='ineichen')
45
+
46
+ # %%
47
+ # Next, we need to define the plant layout:
48
+
49
+ height = 2.6 # [m] height of torque above ground
50
+ pitch = 12 # [m] row spacing
51
+ row_width = 2 * 2.384 # [m] two modules in portrait, each 2 m long
52
+ gcr = row_width / pitch # ground coverage ratio [unitless]
53
+ axis_azimuth = 0 # [degrees] north-south tracking axis
54
+ max_angle = 55 # [degrees] maximum rotation angle
55
+
56
+ # %%
57
+ # Before running the infinite sheds model, we need to know the orientation
58
+ # of the trackers. For a single-axis tracker, this can be calculated as:
59
+
60
+ tracking_orientations = pvlib.tracking.singleaxis(
61
+ apparent_zenith=solpos['apparent_zenith'],
62
+ apparent_azimuth=solpos['azimuth'],
63
+ axis_azimuth=axis_azimuth,
64
+ max_angle=max_angle,
65
+ backtrack=True,
66
+ gcr=gcr,
67
+ )
68
+
69
+ # %%
70
+ # For agrivPV systems, the local albedo is dependent on crop growth and thus
71
+ # changes throughout the seasons. In this example, we only simulate one
72
+ # day and thus use a constant value. Similarly, we will assume a constant
73
+ # air temperature to avoid getting external data. Both albedo and air
74
+ # temperature could be defined as Series with the same index as used for the
75
+ # solar position calculations.
76
+
77
+ albedo = 0.20 # [unitless]
78
+ temp_air = 18 # [degrees C]
79
+
80
+ # %%
81
+ # Now, we are ready to calculate the front and rear-side irradiance using
82
+ # the pvlib infinite sheds model.
83
+
84
+ dni_extra = pvlib.irradiance.get_extra_radiation(times)
85
+
86
+ irradiance = pvlib.bifacial.infinite_sheds.get_irradiance(
87
+ surface_tilt=tracking_orientations['surface_tilt'],
88
+ surface_azimuth=tracking_orientations['surface_azimuth'],
89
+ solar_zenith=solpos['apparent_zenith'],
90
+ solar_azimuth=solpos['azimuth'],
91
+ gcr=gcr,
92
+ height=height,
93
+ pitch=pitch,
94
+ ghi=clearsky['ghi'],
95
+ dhi=clearsky['dhi'],
96
+ dni=clearsky['dni'],
97
+ albedo=albedo,
98
+ model='haydavies',
99
+ dni_extra=dni_extra,
100
+ bifaciality=0.7, # [unitless] rear-side power relative to front-side
101
+ )
102
+
103
+ # %%
104
+ # Once the in-plane irradiance is known, we can estimate the PV array power.
105
+ # For simplicity, we use the PVWatts model:
106
+
107
+ N_modules = 1512 # [unitless] Number of modules
108
+ pdc0_per_module = 660 # [W] STC rating
109
+ pdc0 = pdc0_per_module * N_modules
110
+
111
+ gamma_pdc = -0.004 # [1/degrees C]
112
+
113
+ temp_cell = pvlib.temperature.faiman(
114
+ poa_global=irradiance['poa_global'],
115
+ temp_air=temp_air,
116
+ )
117
+
118
+ power_dc = pvlib.pvsystem.pvwatts_dc(
119
+ effective_irradiance=irradiance['poa_global'],
120
+ temp_cell=temp_cell,
121
+ pdc0=pdc0,
122
+ gamma_pdc=gamma_pdc)
123
+
124
+ power_dc.divide(1000).plot()
125
+ plt.ylabel('DC power [kW]')
126
+ plt.show()
127
+
128
+ # %%
129
+ # In addition to the power output of the PV array, we are also interested
130
+ # in how much irradiance reaches the crops under the array. In this case
131
+ # we calculate the average irradiance on the ground between two rows, using
132
+ # the infinite sheds utility functions.
133
+ #
134
+ # This consists of two parts. First we determine the diffuse irradiance on
135
+ # ground and second we calculate the fraction of the ground that is unshaded
136
+ # (i.e., receives DNI).
137
+
138
+ vf_ground_sky = pvlib.bifacial.utils.vf_ground_sky_2d_integ(
139
+ surface_tilt=tracking_orientations['surface_tilt'],
140
+ gcr=gcr,
141
+ height=height,
142
+ pitch=pitch,
143
+ )
144
+
145
+ unshaded_ground_fraction = pvlib.bifacial.utils._unshaded_ground_fraction(
146
+ surface_tilt=tracking_orientations['surface_tilt'],
147
+ surface_azimuth=tracking_orientations['surface_azimuth'],
148
+ solar_zenith=solpos['apparent_zenith'],
149
+ solar_azimuth=solpos['azimuth'],
150
+ gcr=gcr,
151
+ )
152
+
153
+ crop_avg_irradiance = (unshaded_ground_fraction * clearsky['dni']
154
+ * cosd(solpos['apparent_zenith'])
155
+ + vf_ground_sky * clearsky['dhi'])
156
+
157
+ fig, ax = plt.subplots()
158
+ clearsky['ghi'].plot(ax=ax, label='Horizontal irradiance above panels')
159
+ crop_avg_irradiance.plot(ax=ax, label='Horizontal irradiance at crop level')
160
+ ax.legend(loc='upper center')
161
+ ax.set_ylabel('Irradiance [W/m$^2$]')
162
+ ax.set_ylim(-10, 1050)
163
+ plt.show()
@@ -165,7 +165,7 @@ psm3, psm3_metadata = pvlib.iotools.get_psm3(latitude, longitude, api_key,
165
165
  # module fraction and returns the average irradiance over the total module
166
166
  # surface.
167
167
 
168
- solar_position = location.get_solarposition(psm3.index, latitude, longitude)
168
+ solar_position = location.get_solarposition(psm3.index)
169
169
  tracker_angles = mount.get_orientation(
170
170
  solar_position['apparent_zenith'],
171
171
  solar_position['azimuth']
@@ -66,7 +66,7 @@ mathjax3_config = {'chtml': {'displayAlign': 'left',
66
66
  intersphinx_mapping = {
67
67
  'python': ('https://docs.python.org/3/', None),
68
68
  'numpy': ('https://numpy.org/doc/stable/', None),
69
- 'scipy': ('https://docs.scipy.org/doc/scipy/reference/', None),
69
+ 'scipy': ('https://docs.scipy.org/doc/scipy/', None),
70
70
  'pandas': ('https://pandas.pydata.org/pandas-docs/stable', None),
71
71
  'matplotlib': ('https://matplotlib.org/stable', None),
72
72
  }
@@ -412,6 +412,41 @@ warnings.filterwarnings("ignore", category=UserWarning,
412
412
  # https://gist.github.com/flying-sheep/b65875c0ce965fbdd1d9e5d0b9851ef1
413
413
 
414
414
 
415
+ # select correct base URL depending on the build system context
416
+ def get_source_files_base_url():
417
+ """
418
+ Get the base URL for the source code to generate links to GitHub source.
419
+ If the build is on ReadTheDocs and it's a stable version, use the
420
+ versioned link. If it's a latest version, use the main link.
421
+
422
+ For other builds (e.g. pull requests), use the main link.
423
+ Local builds will also use the main link.
424
+
425
+ Resulting base URL should end with a trailing slash.
426
+
427
+ See https://docs.readthedocs.com/platform/stable/reference/environment-variables.html
428
+ """ # noqa: E501
429
+ repo_url = os.environ.get(
430
+ "READTHEDOCS_GIT_CLONE_URL",
431
+ default="https://github.com/pvlib/pvlib-python",
432
+ )
433
+ READTHEDOCS_ENV = os.environ.get("READTHEDOCS", None) == "True"
434
+ READTHEDOCS_VERSION = os.environ.get("READTHEDOCS_VERSION", None)
435
+ READTHEDOCS_GIT_IDENTIFIER = os.environ.get(
436
+ "READTHEDOCS_GIT_IDENTIFIER", None
437
+ )
438
+ if READTHEDOCS_ENV: # Building docs on ReadTheDocs
439
+ if READTHEDOCS_VERSION == "latest": # latest version, commited to main
440
+ repo_url += "/blob/main/"
441
+ elif READTHEDOCS_VERSION == "stable": # stable version, has a tag
442
+ repo_url += f"/blob/{READTHEDOCS_GIT_IDENTIFIER}/"
443
+ else: # pull request, user and branch are unknown so use main
444
+ repo_url += "/blob/main/"
445
+ else: # Local build
446
+ repo_url += "/blob/main/" # can't tell where to point to
447
+ return repo_url
448
+
449
+
415
450
  def get_obj_module(qualname):
416
451
  """
417
452
  Get a module/class/attribute and its original module by qualname.
@@ -456,6 +491,9 @@ def get_linenos(obj):
456
491
  return start, start + len(lines) - 1
457
492
 
458
493
 
494
+ URL_BASE = get_source_files_base_url() # Edit on GitHub source code links
495
+
496
+
459
497
  def make_github_url(file_name):
460
498
  """
461
499
  Generate the appropriate GH link for a given docs page. This function
@@ -463,11 +501,8 @@ def make_github_url(file_name):
463
501
 
464
502
  The target URL is built differently based on the type of page. The pydata
465
503
  sphinx theme has a built-in `file_name` variable that looks like
466
- "/docs/sphinx/source/api.rst" or "generated/pvlib.atmosphere.alt2pres.rst"
504
+ "docs/sphinx/source/api.rst" or "generated/pvlib.atmosphere.alt2pres.rst"
467
505
  """
468
-
469
- URL_BASE = "https://github.com/pvlib/pvlib-python/blob/main/"
470
-
471
506
  # is it a gallery page?
472
507
  if any(d in file_name for d in sphinx_gallery_conf['gallery_dirs']):
473
508
  example_folder = file_name.split("/")[-2]
@@ -0,0 +1,238 @@
1
+
2
+ .. py:module:: pvlib.iotools
3
+
4
+ .. currentmodule:: pvlib
5
+
6
+ .. _iotools:
7
+
8
+ IO Tools
9
+ ========
10
+
11
+ Functions for retrieving, reading, and writing data from a variety
12
+ of sources and file formats relevant to solar energy modeling. See also
13
+ :ref:`weatherdata`.
14
+
15
+ .. contents:: Currently supported APIs
16
+ :depth: 3
17
+ :local:
18
+
19
+
20
+ Gridded solar resource data
21
+ ---------------------------
22
+
23
+ Modeled irradiance and meteorological data, available for large regions of
24
+ the world.
25
+
26
+ Public datasets
27
+ ^^^^^^^^^^^^^^^
28
+
29
+ These APIs are free to access, although some require registration.
30
+
31
+ PVGIS
32
+ *****
33
+
34
+ Multiple gridded irradiance datasets and weather data with global coverage.
35
+
36
+ .. autosummary::
37
+ :toctree: generated/
38
+
39
+ iotools.get_pvgis_tmy
40
+ iotools.read_pvgis_tmy
41
+ iotools.get_pvgis_hourly
42
+ iotools.read_pvgis_hourly
43
+ iotools.get_pvgis_horizon
44
+
45
+
46
+ CAMS
47
+ ****
48
+
49
+ Satellite-derived irradiance data for Europe, Africa, and Asia, and
50
+ clear-sky irradiance globally.
51
+
52
+ .. autosummary::
53
+ :toctree: generated/
54
+
55
+ iotools.get_cams
56
+ iotools.read_cams
57
+ iotools.parse_cams
58
+
59
+
60
+ NSRDB
61
+ *****
62
+
63
+ Satellite-derived irradiance and weather data for the Americas.
64
+
65
+ .. autosummary::
66
+ :toctree: generated/
67
+
68
+ iotools.get_nsrdb_psm4_aggregated
69
+ iotools.get_nsrdb_psm4_tmy
70
+ iotools.get_nsrdb_psm4_conus
71
+ iotools.get_nsrdb_psm4_full_disc
72
+ iotools.read_nsrdb_psm4
73
+ iotools.get_psm3
74
+ iotools.read_psm3
75
+ iotools.parse_psm3
76
+
77
+
78
+ Commercial datasets
79
+ ^^^^^^^^^^^^^^^^^^^
80
+
81
+ Accessing these APIs typically requires payment.
82
+ Datasets provide near-global coverage.
83
+
84
+ SolarAnywhere
85
+ *************
86
+
87
+ .. autosummary::
88
+ :toctree: generated/
89
+
90
+ iotools.get_solaranywhere
91
+ iotools.read_solaranywhere
92
+
93
+
94
+ Solcast
95
+ *******
96
+
97
+ .. autosummary::
98
+ :toctree: generated/
99
+
100
+ iotools.get_solcast_tmy
101
+ iotools.get_solcast_historic
102
+ iotools.get_solcast_forecast
103
+ iotools.get_solcast_live
104
+
105
+
106
+ Solargis
107
+ ********
108
+
109
+ .. autosummary::
110
+ :toctree: generated/
111
+
112
+ iotools.get_solargis
113
+
114
+
115
+ Ground station solar data
116
+ -------------------------
117
+
118
+ Measurements from various networks of ground stations
119
+ focusing on solar irradiance.
120
+
121
+ BSRN
122
+ ^^^^
123
+
124
+ A global network dedicated to high-quality monitoring of solar and
125
+ long-wave radiation.
126
+
127
+ .. autosummary::
128
+ :toctree: generated/
129
+
130
+ iotools.get_bsrn
131
+ iotools.read_bsrn
132
+ iotools.parse_bsrn
133
+
134
+
135
+ SOLRAD
136
+ ^^^^^^
137
+
138
+ A solar radiation network in the USA, run by NOAA.
139
+
140
+ .. autosummary::
141
+ :toctree: generated/
142
+
143
+ iotools.read_solrad
144
+ iotools.get_solrad
145
+
146
+
147
+ SURFRAD
148
+ ^^^^^^^
149
+
150
+ A solar radiation network in the USA, run by NOAA.
151
+
152
+ .. autosummary::
153
+ :toctree: generated/
154
+
155
+ iotools.read_surfrad
156
+
157
+
158
+ MIDC
159
+ ^^^^
160
+
161
+ A solar radiation network in the USA, run by NREL.
162
+
163
+ .. autosummary::
164
+ :toctree: generated/
165
+
166
+ iotools.read_midc
167
+ iotools.read_midc_raw_data_from_nrel
168
+
169
+
170
+ SRML
171
+ ^^^^
172
+
173
+ A solar radiation network in the northwestern USA, run by
174
+ the University of Oregon.
175
+
176
+ .. autosummary::
177
+ :toctree: generated/
178
+
179
+ iotools.read_srml
180
+ iotools.get_srml
181
+
182
+
183
+ Weather data
184
+ ------------
185
+
186
+ Meteorological data from a variety of modeled and measured datasets.
187
+
188
+ ACIS
189
+ ^^^^
190
+
191
+ A combination of many meteorological datasets providing temperature,
192
+ precipitation, wind speed, and other weather measurements.
193
+
194
+ .. autosummary::
195
+ :toctree: generated/
196
+
197
+ iotools.get_acis_prism
198
+ iotools.get_acis_nrcc
199
+ iotools.get_acis_mpe
200
+ iotools.get_acis_station_data
201
+ iotools.get_acis_available_stations
202
+
203
+
204
+ CRN
205
+ ^^^
206
+
207
+ A network of ground stations from NOAA. Irradiance measurements are of
208
+ lower quality.
209
+
210
+ .. autosummary::
211
+ :toctree: generated/
212
+
213
+ iotools.read_crn
214
+
215
+
216
+ Generic data file readers
217
+ -------------------------
218
+
219
+ Functions for reading irradiance/weather data files.
220
+
221
+ .. autosummary::
222
+ :toctree: generated/
223
+
224
+ iotools.read_tmy2
225
+ iotools.read_tmy3
226
+ iotools.read_epw
227
+ iotools.parse_epw
228
+ iotools.read_panond
229
+
230
+
231
+ A :py:class:`~pvlib.location.Location` object may be created from metadata
232
+ in some files.
233
+
234
+ .. autosummary::
235
+ :toctree: generated/
236
+
237
+ location.Location.from_tmy
238
+ location.Location.from_epw
@@ -12,6 +12,7 @@ Functions for fitting single diode models
12
12
  ivtools.sdm.fit_cec_sam
13
13
  ivtools.sdm.fit_desoto
14
14
  ivtools.sdm.fit_pvsyst_sandia
15
+ ivtools.sdm.fit_pvsyst_iec61853_sandia_2025
15
16
  ivtools.sdm.fit_desoto_sandia
16
17
 
17
18
  Functions for fitting the single diode equation
@@ -133,7 +133,7 @@ Follow these steps to obtain the library using git/GitHub:
133
133
  This button is circled in the image below. Remember the system path that
134
134
  you clone the library to.
135
135
 
136
- .. image:: ../_images/clonebutton.png
136
+ .. image:: ../../_images/clonebutton.png
137
137
 
138
138
  Please see GitHub's
139
139
  `Forking Projects <https://guides.github.com/activities/forking/>`_,
@@ -0,0 +1,34 @@
1
+ .. _user_guide:
2
+
3
+ ==========
4
+ User Guide
5
+ ==========
6
+
7
+ This user guide is an overview and explains some of the key features of pvlib.
8
+
9
+ .. toctree::
10
+ :caption: Getting started
11
+ :maxdepth: 2
12
+
13
+ getting_started/package_overview
14
+ getting_started/installation
15
+ getting_started/introtutorial
16
+
17
+ .. toctree::
18
+ :maxdepth: 2
19
+ :caption: Modeling topics
20
+
21
+ modeling_topics/pvsystem
22
+ modeling_topics/modelchain
23
+ modeling_topics/timetimezones
24
+ modeling_topics/bifacial
25
+ modeling_topics/clearsky
26
+ modeling_topics/weather_data
27
+ modeling_topics/singlediode
28
+
29
+ .. toctree::
30
+ :maxdepth: 2
31
+ :caption: Extras
32
+
33
+ extras/nomenclature
34
+ extras/faq
@@ -80,7 +80,7 @@ The model operates in the following steps:
80
80
  determines the fraction of ground-reflected irradiance that reaches the row
81
81
  surface.
82
82
  4. Find the fraction of the row surface that is shaded from direct irradiance.
83
- Only sky and ground-reflected irradiance reach the the shaded fraction of
83
+ Only sky and ground-reflected irradiance reach the shaded fraction of
84
84
  the row surface.
85
85
  5. For the front and rear surfaces, apply the incidence angle modifier to
86
86
  the direct irradiance and sum the diffuse sky, diffuse ground, and direct
@@ -371,7 +371,7 @@ DC quantities to the output of the full PVSystem.
371
371
  mc.results.dc
372
372
 
373
373
  We’ve established that the ``ModelChain.pvwatts_dc`` and
374
- ``ModelChain.sapm`` have the same API: they take the same arugments
374
+ ``ModelChain.sapm`` have the same API: they take the same arguments
375
375
  (``self``) and they both set the ``dc`` attribute.\* Because the methods
376
376
  have the same API, we can call them in the same way. ModelChain includes
377
377
  a large number of methods that perform the same API-unification roles
@@ -489,7 +489,7 @@ Temperature data are passed in the ``weather`` DataFrame and can include:
489
489
  method is used to calculate cell temperature. If ``ModelChain.temperature_model``
490
490
  is set to any other model, ``'module_temperature'`` is ignored.
491
491
  * ambient air temperature (``'temp_air'``). In this case ``ModelChain.temperature_model``
492
- is used to calculate cell temeprature.
492
+ is used to calculate cell temperature.
493
493
 
494
494
  Cell temperature models also can use irradiance as input. All cell
495
495
  temperature models expect POA irradiance (``'poa_global'``) as input. When
@@ -75,7 +75,7 @@ data irradiance and temperature.
75
75
 
76
76
  .. ipython:: python
77
77
 
78
- pdc = system.pvwatts_dc(g_poa_effective=1000, temp_cell=30)
78
+ pdc = system.pvwatts_dc(effective_irradiance=1000, temp_cell=30)
79
79
  print(pdc)
80
80
 
81
81
  Methods attached to a PVSystem object wrap the corresponding functions in
@@ -84,8 +84,8 @@ using data stored in the PVSystem attributes. Compare the
84
84
  :py:meth:`~pvlib.pvsystem.PVSystem.pvwatts_dc` method signature to the
85
85
  :py:func:`~pvlib.pvsystem.pvwatts_dc` function signature:
86
86
 
87
- * :py:meth:`PVSystem.pvwatts_dc(g_poa_effective, temp_cell) <pvlib.pvsystem.PVSystem.pvwatts_dc>`
88
- * :py:func:`pvwatts_dc(g_poa_effective, temp_cell, pdc0, gamma_pdc, temp_ref=25.) <pvlib.pvsystem.pvwatts_dc>`
87
+ * :py:meth:`PVSystem.pvwatts_dc(effective_irradiance, temp_cell) <pvlib.pvsystem.PVSystem.pvwatts_dc>`
88
+ * :py:func:`pvwatts_dc(effective_irradiance, temp_cell, pdc0, gamma_pdc, temp_ref=25.) <pvlib.pvsystem.pvwatts_dc>`
89
89
 
90
90
  How does this work? The :py:meth:`~pvlib.pvsystem.PVSystem.pvwatts_dc`
91
91
  method looks in `PVSystem.module_parameters` for the `pdc0`, and
@@ -240,7 +240,7 @@ operates in a similar manner.
240
240
 
241
241
 
242
242
  The `PVSystem` method :py:meth:`~pvlib.pvsystem.PVSystem.get_aoi`
243
- operates on all `Array` instances in the `PVSystem`, whereas the the
243
+ operates on all `Array` instances in the `PVSystem`, whereas the
244
244
  `Array` method operates only on its `Array` instance.
245
245
 
246
246
  .. ipython:: python
@@ -35,7 +35,7 @@ them.
35
35
  source of weather information. However, the coverage depends on
36
36
  a weather station having been set up in advance for the location and
37
37
  times of interest. Some ground station networks like the BSRN and SURFRAD
38
- make their measurement data publicly available. An global overview of ground
38
+ make their measurement data publicly available. A global overview of ground
39
39
  stations is available at https://SolarStations.org.
40
40
 
41
41
  Data from public ground station measurement networks are useful if you
@@ -50,7 +50,7 @@ them.
50
50
  weather station. They have high spatial and temporal resolution
51
51
  corresponding to the source satellite imagery, and are generally
52
52
  optimised to estimate solar irradiance for PV applications. Free sources
53
- such as PVGIS, NSRDB, and CAMS are available, and commerical sources such
53
+ such as PVGIS, NSRDB, and CAMS are available, and commercial sources such
54
54
  as SolarAnywhere, Solcast, and Solargis provide paid options though often
55
55
  have free trials.
56
56
 
@@ -76,7 +76,7 @@ them.
76
76
  Usage
77
77
  -----
78
78
 
79
- With some exceptions, the :py:mod:`pvlib.iotools` functions
79
+ The :py:mod:`pvlib.iotools` functions
80
80
  provide a uniform interface for accessing data across many formats.
81
81
  Specifically, :py:mod:`pvlib.iotools` functions usually return two objects:
82
82
  a :py:class:`pandas.DataFrame` of the actual dataset, plus a metadata
@@ -89,8 +89,7 @@ Typical usage looks something like this:
89
89
 
90
90
  .. code-block:: python
91
91
 
92
- # get_pvgis_tmy returns two additional values besides df and metadata
93
- df, _, _, metadata = pvlib.iotools.get_pvgis_tmy(latitude, longitude, map_variables=True)
92
+ df, metadata = pvlib.iotools.get_pvgis_tmy(latitude, longitude, map_variables=True)
94
93
 
95
94
  This code will fetch a Typical Meteorological Year (TMY) dataset from PVGIS,
96
95
  returning a :py:class:`pandas.DataFrame` containing the hourly weather data