pvlib 0.11.2__tar.gz → 0.12.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 (387) hide show
  1. {pvlib-0.11.2/pvlib.egg-info → pvlib-0.12.0}/PKG-INFO +5 -3
  2. pvlib-0.12.0/docs/sphinx/source/_static/tooltipster_color_theming.css +10 -0
  3. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/conf.py +2 -0
  4. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/contributing/testing.rst +8 -8
  5. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/airmass_atmospheric.rst +0 -1
  6. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +0 -1
  7. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/modelchain.rst +0 -1
  8. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/pv_modeling/system_models.rst +0 -1
  9. pvlib-0.12.0/docs/sphinx/source/user_guide/index.rst +34 -0
  10. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/introtutorial.rst +1 -1
  11. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/nomenclature.rst +3 -0
  12. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.10.0.rst +2 -2
  13. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.11.0.rst +1 -1
  14. pvlib-0.12.0/docs/sphinx/source/whatsnew/v0.12.0.rst +100 -0
  15. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.6.1.rst +1 -1
  16. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.7.0.rst +1 -1
  17. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.7.2.rst +1 -1
  18. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.9.3.rst +1 -1
  19. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew.rst +1 -0
  20. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/__init__.py +1 -0
  21. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/atmosphere.py +0 -9
  22. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/bifacial/infinite_sheds.py +4 -3
  23. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/bifacial/utils.py +2 -1
  24. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/psm3.py +1 -1
  25. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/pvgis.py +10 -2
  26. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/tmy.py +3 -69
  27. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/irradiance.py +14 -0
  28. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/location.py +73 -33
  29. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/modelchain.py +18 -35
  30. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/pvsystem.py +7 -10
  31. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/snow.py +64 -28
  32. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spectrum/__init__.py +0 -1
  33. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spectrum/irradiance.py +0 -63
  34. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spectrum/mismatch.py +3 -3
  35. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/tools.py +6 -5
  36. {pvlib-0.11.2 → pvlib-0.12.0/pvlib.egg-info}/PKG-INFO +5 -3
  37. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib.egg-info/SOURCES.txt +116 -114
  38. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib.egg-info/requires.txt +1 -1
  39. {pvlib-0.11.2 → pvlib-0.12.0}/pyproject.toml +10 -2
  40. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/bifacial/test_infinite_sheds.py +2 -1
  41. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/bifacial/test_pvfactors.py +1 -1
  42. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/conftest.py +2 -1
  43. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/tmy_45.000_8.000_2005_2023.csv +1 -0
  44. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_acis.py +1 -1
  45. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_bsrn.py +11 -6
  46. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_crn.py +7 -3
  47. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_epw.py +2 -2
  48. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_midc.py +4 -4
  49. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_panond.py +4 -3
  50. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_psm3.py +11 -7
  51. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_pvgis.py +25 -14
  52. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_sodapro.py +5 -5
  53. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_solaranywhere.py +8 -4
  54. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_solargis.py +6 -2
  55. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_solrad.py +8 -3
  56. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_srml.py +9 -4
  57. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_surfrad.py +2 -2
  58. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_tmy.py +5 -24
  59. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/ivtools/test_sde.py +0 -1
  60. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/ivtools/test_sdm.py +3 -5
  61. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/ivtools/test_utils.py +2 -2
  62. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/spectrum/conftest.py +2 -2
  63. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/spectrum/test_irradiance.py +4 -10
  64. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/spectrum/test_mismatch.py +5 -5
  65. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_atmosphere.py +0 -8
  66. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_clearsky.py +5 -5
  67. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_conftest.py +1 -1
  68. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_inverter.py +3 -3
  69. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_irradiance.py +17 -0
  70. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_location.py +60 -19
  71. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_modelchain.py +36 -27
  72. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_numerical_precision.py +2 -2
  73. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_pvsystem.py +2 -7
  74. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_singlediode.py +5 -5
  75. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_snow.py +37 -0
  76. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_soiling.py +7 -6
  77. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_temperature.py +2 -3
  78. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_tools.py +111 -3
  79. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_tracking.py +2 -3
  80. pvlib-0.11.2/docs/sphinx/source/user_guide/index.rst +0 -20
  81. {pvlib-0.11.2 → pvlib-0.12.0}/AUTHORS.md +0 -0
  82. {pvlib-0.11.2 → pvlib-0.12.0}/LICENSE +0 -0
  83. {pvlib-0.11.2 → pvlib-0.12.0}/MANIFEST.in +0 -0
  84. {pvlib-0.11.2 → pvlib-0.12.0}/README.md +0 -0
  85. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/README.rst +0 -0
  86. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/adr-pvarray/README.rst +0 -0
  87. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/adr-pvarray/plot_fit_to_matrix.py +0 -0
  88. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/adr-pvarray/plot_simulate_fast.py +0 -0
  89. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/adr-pvarray/plot_simulate_system.py +0 -0
  90. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/agrivoltaics/README.rst +0 -0
  91. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/agrivoltaics/plot_diffuse_PAR_Spitters_relationship.py +0 -0
  92. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/bifacial/README.rst +0 -0
  93. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/bifacial/plot_bifi_model_mc.py +0 -0
  94. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +0 -0
  95. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/bifacial/plot_irradiance_nonuniformity_loss.py +0 -0
  96. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +0 -0
  97. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/floating-pv/README.rst +0 -0
  98. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/floating-pv/plot_floating_pv_cell_temperature.py +0 -0
  99. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-decomposition/README.rst +0 -0
  100. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +0 -0
  101. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-transposition/README.rst +0 -0
  102. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
  103. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
  104. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
  105. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-transposition/plot_rtranpose_limitations.py +0 -0
  106. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-transposition/plot_rtranpose_year.py +0 -0
  107. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +0 -0
  108. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-transposition/plot_transposition_gain.py +0 -0
  109. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/irradiance-transposition/use_perez_modelchain.py +0 -0
  110. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/iv-modeling/README.rst +0 -0
  111. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/iv-modeling/plot_singlediode.py +0 -0
  112. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/reflections/README.rst +0 -0
  113. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/reflections/plot_convert_iam_models.py +0 -0
  114. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
  115. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/reflections/plot_fit_iam_models.py +0 -0
  116. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/shading/README.rst +0 -0
  117. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/shading/plot_martinez_shade_loss.py +0 -0
  118. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/shading/plot_partial_module_shading_simple.py +0 -0
  119. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
  120. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/shading/plot_shaded_fraction1d_ns_hsat_example.py +0 -0
  121. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/shading/plot_simple_irradiance_adjustment_for_horizon_shading.py +0 -0
  122. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/soiling/README.rst +0 -0
  123. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
  124. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +0 -0
  125. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/solar-position/README.rst +0 -0
  126. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/solar-position/plot_sunpath_diagrams.py +0 -0
  127. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/solar-tracking/README.rst +0 -0
  128. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
  129. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
  130. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
  131. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
  132. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/spectrum/README.rst +0 -0
  133. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/spectrum/average_photon_energy.py +0 -0
  134. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/spectrum/plot_spectrl2_fig51A.py +0 -0
  135. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/spectrum/plot_standard_ASTM_G173-03.py +0 -0
  136. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/spectrum/spectral_factor.py +0 -0
  137. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/system-models/README.rst +0 -0
  138. {pvlib-0.11.2 → pvlib-0.12.0}/docs/examples/system-models/plot_oedi_9068.py +0 -0
  139. {pvlib-0.11.2 → pvlib-0.12.0}/docs/notes/Determining the average view factor from a module.pdf +0 -0
  140. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/Makefile +0 -0
  141. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/make.bat +0 -0
  142. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/Anderson_Jensen_2024_Fig3.png +0 -0
  143. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/Anderson_Mikofski_2020_Fig5.jpg +0 -0
  144. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
  145. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/OEDI_9068_daily_timeseries.png +0 -0
  146. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/OEDI_9068_inverter1_comparison.png +0 -0
  147. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/OEDI_9068_inverter2_comparison.png +0 -0
  148. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/PV_module_layout_cesardd.jpg +0 -0
  149. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/clonebutton.png +0 -0
  150. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/example_function_screenshot.png +0 -0
  151. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
  152. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
  153. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
  154. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
  155. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
  156. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
  157. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
  158. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
  159. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
  160. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
  161. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_static/reference_format.css +0 -0
  162. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_static/version-alert.js +0 -0
  163. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
  164. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
  165. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
  166. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/_templates/edit-this-page.html +0 -0
  167. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/contributing/how_to_contribute_new_code.rst +0 -0
  168. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/contributing/index.rst +0 -0
  169. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/contributing/introduction_to_contributing.rst +0 -0
  170. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/contributing/style_guide.rst +0 -0
  171. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/index.rst +0 -0
  172. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/bifacial.rst +0 -0
  173. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/classes.rst +0 -0
  174. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/clearsky.rst +0 -0
  175. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +0 -0
  176. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +0 -0
  177. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +0 -0
  178. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +0 -0
  179. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +0 -0
  180. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/index.rst +0 -0
  181. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/iotools.rst +0 -0
  182. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/irradiance/albedo.rst +0 -0
  183. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/irradiance/class-methods.rst +0 -0
  184. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/irradiance/clearness-index.rst +0 -0
  185. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/irradiance/components.rst +0 -0
  186. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/irradiance/decomposition.rst +0 -0
  187. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/irradiance/index.rst +0 -0
  188. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/irradiance/transposition.rst +0 -0
  189. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/location.rst +0 -0
  190. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/pv_modeling/iam.rst +0 -0
  191. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/pv_modeling/index.rst +0 -0
  192. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/pv_modeling/inverter.rst +0 -0
  193. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/pv_modeling/other.rst +0 -0
  194. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/pv_modeling/parameters.rst +0 -0
  195. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/pv_modeling/sdm.rst +0 -0
  196. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/pv_modeling/temperature.rst +0 -0
  197. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/scaling.rst +0 -0
  198. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/solarposition.rst +0 -0
  199. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/tracking.rst +0 -0
  200. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/reference/transformer.rst +0 -0
  201. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/bifacial.rst +0 -0
  202. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/clearsky.rst +0 -0
  203. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/faq.rst +0 -0
  204. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/installation.rst +0 -0
  205. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/modelchain.rst +0 -0
  206. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/package_overview.rst +0 -0
  207. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/pvsystem.rst +0 -0
  208. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/singlediode.rst +0 -0
  209. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/timetimezones.rst +0 -0
  210. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/user_guide/weather_data.rst +0 -0
  211. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
  212. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.10.1.rst +0 -0
  213. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.10.2.rst +0 -0
  214. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.10.3.rst +0 -0
  215. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.10.4.rst +0 -0
  216. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.10.5.rst +0 -0
  217. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.11.1.rst +0 -0
  218. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.11.2.rst +0 -0
  219. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
  220. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
  221. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
  222. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.3.0.txt +0 -0
  223. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
  224. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
  225. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
  226. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
  227. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
  228. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
  229. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
  230. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
  231. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
  232. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
  233. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
  234. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
  235. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
  236. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
  237. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
  238. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.7.1.rst +0 -0
  239. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.8.0.rst +0 -0
  240. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.8.1.rst +0 -0
  241. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.9.0.rst +0 -0
  242. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.9.1.rst +0 -0
  243. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.9.2.rst +0 -0
  244. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -0
  245. {pvlib-0.11.2 → pvlib-0.12.0}/docs/sphinx/source/whatsnew/v0.9.5.rst +0 -0
  246. {pvlib-0.11.2 → pvlib-0.12.0}/docs/tutorials/atmosphere.ipynb +0 -0
  247. {pvlib-0.11.2 → pvlib-0.12.0}/docs/tutorials/irradiance.ipynb +0 -0
  248. {pvlib-0.11.2 → pvlib-0.12.0}/docs/tutorials/pvsystem.ipynb +0 -0
  249. {pvlib-0.11.2 → pvlib-0.12.0}/docs/tutorials/solarposition.ipynb +0 -0
  250. {pvlib-0.11.2 → pvlib-0.12.0}/docs/tutorials/tmy.ipynb +0 -0
  251. {pvlib-0.11.2 → pvlib-0.12.0}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
  252. {pvlib-0.11.2 → pvlib-0.12.0}/docs/tutorials/tmy_to_power.ipynb +0 -0
  253. {pvlib-0.11.2 → pvlib-0.12.0}/docs/tutorials/tracking.ipynb +0 -0
  254. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/_deprecation.py +0 -0
  255. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/albedo.py +0 -0
  256. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/bifacial/__init__.py +0 -0
  257. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/bifacial/loss_models.py +0 -0
  258. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/bifacial/pvfactors.py +0 -0
  259. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/clearsky.py +0 -0
  260. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/12839.tm2 +0 -0
  261. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/703165TY.csv +0 -0
  262. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/723170TYA.CSV +0 -0
  263. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/ASTMG173.csv +0 -0
  264. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/Altitude.h5 +0 -0
  265. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/LinkeTurbidities.h5 +0 -0
  266. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +0 -0
  267. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
  268. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
  269. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
  270. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
  271. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iam.py +0 -0
  272. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/inverter.py +0 -0
  273. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/__init__.py +0 -0
  274. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/acis.py +0 -0
  275. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/bsrn.py +0 -0
  276. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/crn.py +0 -0
  277. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/epw.py +0 -0
  278. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/midc.py +0 -0
  279. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/panond.py +0 -0
  280. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/sodapro.py +0 -0
  281. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/solaranywhere.py +0 -0
  282. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/solargis.py +0 -0
  283. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/solcast.py +0 -0
  284. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/solrad.py +0 -0
  285. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/srml.py +0 -0
  286. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/iotools/surfrad.py +0 -0
  287. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/ivtools/__init__.py +0 -0
  288. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/ivtools/sde.py +0 -0
  289. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/ivtools/sdm.py +0 -0
  290. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/ivtools/utils.py +0 -0
  291. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/pvarray.py +0 -0
  292. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/scaling.py +0 -0
  293. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/shading.py +0 -0
  294. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/singlediode.py +0 -0
  295. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/soiling.py +0 -0
  296. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/solarposition.py +0 -0
  297. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spa.py +0 -0
  298. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spa_c_files/README.md +0 -0
  299. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spa_c_files/__init__.py +0 -0
  300. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spa_c_files/cspa_py.pxd +0 -0
  301. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spa_c_files/setup.py +0 -0
  302. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spa_c_files/spa_py.pyx +0 -0
  303. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spa_c_files/spa_py_example.py +0 -0
  304. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spectrum/response.py +0 -0
  305. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/spectrum/spectrl2.py +0 -0
  306. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/temperature.py +0 -0
  307. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/tracking.py +0 -0
  308. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/transformer.py +0 -0
  309. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib/version.py +0 -0
  310. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib.egg-info/dependency_links.txt +0 -0
  311. {pvlib-0.11.2 → pvlib-0.12.0}/pvlib.egg-info/top_level.txt +0 -0
  312. {pvlib-0.11.2 → pvlib-0.12.0}/scripts/update_top_ranking_issues.py +0 -0
  313. {pvlib-0.11.2 → pvlib-0.12.0}/setup.cfg +0 -0
  314. {pvlib-0.11.2 → pvlib-0.12.0}/setup.py +0 -0
  315. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/__init__.py +0 -0
  316. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/bifacial/__init__.py +0 -0
  317. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/bifacial/test_losses_models.py +0 -0
  318. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/bifacial/test_utils.py +0 -0
  319. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/BIRD_08_16_2012.csv +0 -0
  320. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/BIRD_08_16_2012_patm.csv +0 -0
  321. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
  322. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv +0 -0
  323. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv +0 -0
  324. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/CPS SCH275KTL-DO-US-800-250kW_275kVA_1.OND +0 -0
  325. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
  326. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/CRN_with_problems.txt +0 -0
  327. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/ET-M772BH550GL.PAN +0 -0
  328. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/NLD_Amsterdam062400_IWEC.epw +0 -0
  329. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/PVsyst_demo.csv +0 -0
  330. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/PVsyst_demo_model.csv +0 -0
  331. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/SRML-day-EUPO1801.txt +0 -0
  332. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/abq19056.dat +0 -0
  333. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/bishop88_numerical_precision.csv +0 -0
  334. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/bsrn-lr0100-pay0616.dat +0 -0
  335. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/bsrn-pay0616.dat.gz +0 -0
  336. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/cams_mcclear_1min_verbose.csv +0 -0
  337. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/cams_mcclear_monthly.csv +0 -0
  338. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/cams_radiation_1min_verbose.csv +0 -0
  339. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/cams_radiation_monthly.csv +0 -0
  340. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/detect_clearsky_data.csv +0 -0
  341. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/detect_clearsky_threshold_data.csv +0 -0
  342. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/greensboro_kimber_soil_manwash.dat +0 -0
  343. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/greensboro_kimber_soil_nowash.dat +0 -0
  344. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/inverter_fit_snl_meas.csv +0 -0
  345. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/inverter_fit_snl_sim.csv +0 -0
  346. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/ivtools_numdiff.csv +0 -0
  347. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/midc_20181014.txt +0 -0
  348. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/midc_raw_20181018.txt +0 -0
  349. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/midc_raw_short_header_20191115.txt +0 -0
  350. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/msn19056.dat +0 -0
  351. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/precise_iv_curves1.json +0 -0
  352. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/precise_iv_curves2.json +0 -0
  353. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/precise_iv_curves_parameter_sets1.csv +0 -0
  354. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/precise_iv_curves_parameter_sets2.csv +0 -0
  355. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
  356. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
  357. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/pvgis_tmy_meta.json +0 -0
  358. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/pvgis_tmy_test.csv +0 -0
  359. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/pvwatts_8760_rackmount.csv +0 -0
  360. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/pvwatts_8760_roofmount.csv +0 -0
  361. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/singleaxis_tracker_wslope.csv +0 -0
  362. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/spectrl2_example_spectra.csv +0 -0
  363. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/surfrad-slv16001.dat +0 -0
  364. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/test_psm3_2017.csv +0 -0
  365. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/test_psm3_2019_5min.csv +0 -0
  366. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/test_psm3_tmy-2017.csv +0 -0
  367. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/test_read_psm3.csv +0 -0
  368. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/test_read_pvgis_horizon.csv +0 -0
  369. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/tmy_45.000_8.000_2005_2023.epw +0 -0
  370. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/tmy_45.000_8.000_2005_2023.json +0 -0
  371. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/tmy_45.000_8.000_2005_2023.txt +0 -0
  372. {pvlib-0.11.2/pvlib → pvlib-0.12.0/tests}/data/tmy_45.000_8.000_userhorizon.json +0 -0
  373. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/__init__.py +0 -0
  374. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/iotools/test_solcast.py +0 -0
  375. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/ivtools/__init__.py +0 -0
  376. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/spectrum/__init__.py +0 -0
  377. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/spectrum/test_response.py +0 -0
  378. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/spectrum/test_spectrl2.py +0 -0
  379. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test__deprecation.py +0 -0
  380. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_albedo.py +0 -0
  381. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_iam.py +0 -0
  382. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_pvarray.py +0 -0
  383. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_scaling.py +0 -0
  384. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_shading.py +0 -0
  385. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_solarposition.py +0 -0
  386. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_spa.py +0 -0
  387. {pvlib-0.11.2/pvlib → pvlib-0.12.0}/tests/test_transformer.py +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: pvlib
3
- Version: 0.11.2
3
+ Version: 0.12.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>
@@ -44,7 +44,7 @@ Requires-Dist: pillow; extra == "doc"
44
44
  Requires-Dist: sphinx-toggleprompt==0.5.2; extra == "doc"
45
45
  Requires-Dist: sphinx-favicon; extra == "doc"
46
46
  Requires-Dist: solarfactors; extra == "doc"
47
- Requires-Dist: sphinx-hoverxref; extra == "doc"
47
+ Requires-Dist: sphinx-hoverxref~=1.4.2; extra == "doc"
48
48
  Provides-Extra: test
49
49
  Requires-Dist: pytest; extra == "test"
50
50
  Requires-Dist: pytest-cov; extra == "test"
@@ -56,6 +56,8 @@ Requires-Dist: pytest-remotedata; extra == "test"
56
56
  Requires-Dist: packaging; extra == "test"
57
57
  Provides-Extra: all
58
58
  Requires-Dist: pvlib[doc,optional,test]; extra == "all"
59
+ Dynamic: home-page
60
+ Dynamic: license-file
59
61
 
60
62
  pvlib python is a community developed toolbox that provides a set of
61
63
  functions and classes for simulating the performance of photovoltaic
@@ -0,0 +1,10 @@
1
+ /* Overrides for sphinx-hoverxref since it does not support a native dark theme, see */
2
+ /* https://github.com/readthedocs/sphinx-hoverxref/issues/231 */
3
+ /* Inspired by https://github.com/pybamm-team/PyBaMM/pull/3083 */
4
+
5
+ /* These will ensure that the tooltip inherits the pydata-sphinx-theme colours */
6
+
7
+ .tooltipster-sidetip.tooltipster-shadow.tooltipster-shadow-custom .tooltipster-content {
8
+ background-color: var(--pst-color-background) !important;
9
+ color: var(--pst-color-text-base) !important;
10
+ }
@@ -282,6 +282,8 @@ def setup(app):
282
282
  app.add_css_file("reference_format.css")
283
283
  # Add a warning banner at the top of the page if viewing the "latest" docs
284
284
  app.add_js_file("version-alert.js")
285
+ # Match the color theme of tooltips to PyData Sphinx Theme light/dark mode
286
+ app.add_css_file("tooltipster_color_theming.css")
285
287
 
286
288
  # -- Options for LaTeX output ---------------------------------------------
287
289
 
@@ -11,7 +11,7 @@ Overview
11
11
  Developers **must** include comprehensive tests for any additions or
12
12
  modifications to pvlib. New unit test code should be placed in the
13
13
  corresponding test module in the
14
- `pvlib/tests <https://github.com/pvlib/pvlib-python/tree/main/pvlib/tests>`_
14
+ `tests <https://github.com/pvlib/pvlib-python/tree/main/tests>`_
15
15
  directory.
16
16
 
17
17
  A pull request will automatically run the tests for you on a variety of
@@ -20,26 +20,26 @@ typically more efficient to run and debug the tests in your own local
20
20
  environment.
21
21
 
22
22
  To run the tests locally, install the ``test`` dependencies specified in the
23
- `setup.py <https://github.com/pvlib/pvlib-python/blob/main/setup.py>`_
23
+ `pyproject.toml <https://github.com/pvlib/pvlib-python/blob/main/pyproject.toml>`_
24
24
  file. See :ref:`installation` instructions for more information.
25
25
 
26
26
  pvlib's unit tests can easily be run by executing ``pytest`` on the
27
- pvlib directory::
27
+ tests directory::
28
28
 
29
- pytest pvlib
29
+ pytest tests
30
30
 
31
31
  or, for a single module::
32
32
 
33
- pytest pvlib/tests/test_clearsky.py
33
+ pytest tests/test_clearsky.py
34
34
 
35
35
  or, for a single test::
36
36
 
37
- pytest pvlib/tests/test_clearsky.py::test_ineichen_nans
37
+ pytest tests/test_clearsky.py::test_ineichen_nans
38
38
 
39
39
  We suggest using pytest's ``--pdb`` flag to debug test failures rather
40
40
  than using ``print`` or ``logging`` calls. For example::
41
41
 
42
- pytest pvlib --pdb
42
+ pytest tests --pdb
43
43
 
44
44
  will drop you into the
45
45
  `pdb debugger <https://docs.python.org/3/library/pdb.html>`_ at the
@@ -50,7 +50,7 @@ to the test suite (with rare exceptions).
50
50
  To include all network-dependent tests, include the ``--remote-data`` flag to
51
51
  your ``pytest`` call::
52
52
 
53
- pytest pvlib --remote-data
53
+ pytest tests --remote-data
54
54
 
55
55
  And consider adding ``@pytest.mark.remote_data`` to any network dependent test
56
56
  you submit for a PR.
@@ -14,7 +14,6 @@ Airmass and atmospheric models
14
14
  atmosphere.tdew_from_rh
15
15
  atmosphere.rh_from_tdew
16
16
  atmosphere.gueymard94_pw
17
- atmosphere.first_solar_spectral_correction
18
17
  atmosphere.bird_hulstrom80_aod_bb
19
18
  atmosphere.kasten96_lt
20
19
  atmosphere.angstrom_aod_at_lambda
@@ -8,7 +8,6 @@ Spectrum
8
8
 
9
9
  spectrum.spectrl2
10
10
  spectrum.get_example_spectral_response
11
- spectrum.get_am15g
12
11
  spectrum.get_reference_spectra
13
12
  spectrum.calc_spectral_mismatch_field
14
13
  spectrum.spectral_factor_caballero
@@ -112,7 +112,6 @@ on the information in the associated :py:class:`~pvsystem.PVSystem` object.
112
112
  modelchain.ModelChain.infer_dc_model
113
113
  modelchain.ModelChain.infer_ac_model
114
114
  modelchain.ModelChain.infer_aoi_model
115
- modelchain.ModelChain.infer_spectral_model
116
115
  modelchain.ModelChain.infer_temperature_model
117
116
  modelchain.ModelChain.infer_losses_model
118
117
 
@@ -12,7 +12,6 @@ Sandia array performance model (SAPM)
12
12
 
13
13
  pvsystem.sapm
14
14
  pvsystem.sapm_effective_irradiance
15
- pvsystem.sapm_spectral_loss
16
15
  spectrum.spectral_factor_sapm
17
16
  inverter.sandia
18
17
  temperature.sapm_cell
@@ -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
+ package_overview
14
+ installation
15
+ introtutorial
16
+
17
+ .. toctree::
18
+ :caption: Modeling topics
19
+ :maxdepth: 2
20
+
21
+ pvsystem
22
+ modelchain
23
+ timetimezones
24
+ bifacial
25
+ clearsky
26
+ weather_data
27
+ singlediode
28
+
29
+ .. toctree::
30
+ :caption: Extras
31
+ :maxdepth: 2
32
+
33
+ nomenclature
34
+ faq
@@ -87,7 +87,7 @@ to accomplish our system modeling goal:
87
87
  longitude=longitude,
88
88
  altitude=altitude,
89
89
  temperature=weather["temp_air"],
90
- pressure=pvlib.atmosphere.alt2pres(altitude),
90
+ pressure=weather["pressure"],
91
91
  )
92
92
  dni_extra = pvlib.irradiance.get_extra_radiation(weather.index)
93
93
  airmass = pvlib.atmosphere.get_relative_airmass(solpos['apparent_zenith'])
@@ -71,6 +71,9 @@ There is a convention on consistent variable names throughout the library:
71
71
  ghi
72
72
  Global horizontal irradiance
73
73
 
74
+ ghi_clear
75
+ Clearsky global horizontal irradiance [Wm⁻²]
76
+
74
77
  ghi_extra
75
78
  Horizontal irradiance at top of atmosphere (extraterrestrial)
76
79
 
@@ -53,9 +53,9 @@ Deprecations
53
53
  deprecated. Use :py:func:`pvlib.pvsystem.v_from_i` and
54
54
  :py:func:`pvlib.pvsystem.i_from_v` instead. (:issue:`1626`, :pull:`1743`)
55
55
  * Functions for calculating spectral modifiers have been moved to :py:mod:`pvlib.spectrum`:
56
- :py:func:`pvlib.atmosphere.first_solar_spectral_correction` is deprecated and
56
+ :py:func:`!pvlib.atmosphere.first_solar_spectral_correction` is deprecated and
57
57
  replaced by :py:func:`~pvlib.spectrum.spectral_factor_firstsolar`, and
58
- :py:func:`pvlib.pvsystem.sapm_spectral_loss` is deprecated and replaced by
58
+ :py:func:`!pvlib.pvsystem.sapm_spectral_loss` is deprecated and replaced by
59
59
  :py:func:`~pvlib.spectrum.spectral_factor_sapm`. (:pull:`1628`)
60
60
  * Removed the ``get_ecmwf_macc`` and ``read_ecmwf_macc`` iotools functions as the
61
61
  MACC dataset has been `removed by ECMWF <https://confluence.ecmwf.int/display/DAC/Decommissioning+of+ECMWF+Public+Datasets+Service>`_
@@ -28,7 +28,7 @@ Deprecations
28
28
  ~~~~~~~~~~~~
29
29
  * The ``pvlib.irradiance.SURFACE_ALBEDOS`` dictionary has been moved to
30
30
  :py:const:`pvlib.albedo.SURFACE_ALBEDOS`. (:pull:`2095`)
31
- * Function :py:func:`pvlib.spectrum.get_am15g` has been deprecated in favor
31
+ * Function :py:func:`!pvlib.spectrum.get_am15g` has been deprecated in favor
32
32
  of the new function :py:func:`pvlib.spectrum.get_reference_spectra`. Use
33
33
  ``pvlib.spectrum.get_reference_spectra(standard="ASTM G173-03")["global"]``
34
34
  instead. (:pull:`2039`)
@@ -0,0 +1,100 @@
1
+ .. _whatsnew_01200:
2
+
3
+
4
+ v0.12.0 (March 19, 2025)
5
+ ------------------------
6
+
7
+ Breaking Changes
8
+ ~~~~~~~~~~~~~~~~
9
+ * The :py:attr:`pvlib.location.Location.pytz` attribute is now read only. The
10
+ ``pytz`` attribute is now set internally to be consistent with the
11
+ :py:attr:`pvlib.location.Location.tz` attribute. (:issue:`2340`, :pull:`2341`)
12
+ * Users must now provide :py:attr:`ModelChain.spectral_model`, or the ``'no_loss'`` spectral
13
+ model is assumed. :py:class:`~pvlib.modelchain.ModelChain` no longer attempts to infer
14
+ the spectral model from :py:class:`~pvlib.pvsystem.PVSystem` attributes. (:issue:`2017`, :pull:`2253`)
15
+ * Remove deprecated :py:func:`!pvlib.pvsystem.sapm_spectral_loss`; use
16
+ :py:func:`~pvlib.spectrum.spectral_factor_sapm` instead. (:issue:`2243`, :pull:`2244`)
17
+ * :py:func:`~pvlib.iotools.read_tmy3` now defaults to ``map_variables=True``.
18
+ Additionally, the deprecated ``recolumn`` parameter is now removed. (:issue:`2324`, :pull:`2408`)
19
+ * Remove :py:func:`!pvlib.atmosphere.first_solar_spectral_correction`, deprecated in v0.10.0.
20
+ Use :py:func:`~pvlib.spectrum.spectral_factor_firstsolar` instead. (:issue:`2130`, :pull:`2131`)
21
+ * Remove deprecated :py:func:`!pvlib.spectrum.get_am15g` function; use
22
+ :py:func:`~pvlib.spectrum.get_reference_spectra` instead. (:pull:`2409`)
23
+ * Change default method of :py:func:`~pvlib.location.Location.get_sun_rise_set_transit`
24
+ to ``'spa'`` instead of ``'pyephem'``. (:pull:`2410`)
25
+
26
+ Bug fixes
27
+ ~~~~~~~~~
28
+ * Add a check to :py:func:`~pvlib.snow.fully_covered_nrel` and
29
+ :py:func:`~pvlib.snow.coverage_nrel`. The check uses snow depth on the ground
30
+ to improve modeling for systems with shallow tilt angles. The check
31
+ adds a new, optional parameter ``snow_depth``. (:issue:`1171`, :pull:`2292`)
32
+ * Fix a bug in :py:func:`pvlib.bifacial.infinite_sheds.get_irradiance_poa` which may have yielded non-zero
33
+ ground irradiance when the sun was below the horizon. (:issue:`2245`, :pull:`2359`)
34
+ * Fix a bug where :py:func:`pvlib.transformer.simple_efficiency` could only be imported
35
+ using the ``from pvlib.transformer`` syntax. (:pull:`2388`)
36
+ * :py:class:`~pvlib.modelchain.ModelChain` now requires only a minimal set of
37
+ parameters to run the SAPM electrical model. (:issue:`2369`, :pull:`2393`)
38
+ * Correct keys for First Solar modules in :py:func:`~pvlib.spectrum.spectral_factor_pvspec`. (:issue:`2398`, :pull:`2400`)
39
+ * Ensure proper tz and pytz types in :py:class:`~pvlib.location.Location`. To ensure that
40
+ the time zone in :py:class:`~pvlib.location.Location` remains internally consistent
41
+ if/when the time zone is updated, the ``tz`` attribute is now the single source
42
+ of time-zone truth, is the single time-zone setter interface, and its getter
43
+ returns an IANA string. (:issue:`2340`, :pull:`2341`)
44
+ * :py:func:`~pvlib.iotools.get_pvgis_tmy` with ``outputformat='csv'`` now
45
+ works with the updated data format returned by PVGIS. (:issue:`2344`, :pull:`2395`)
46
+
47
+ Enhancements
48
+ ~~~~~~~~~~~~
49
+ * :py:func:`~pvlib.irradiance.gti_dirint` now raises an informative message
50
+ when input data don't include values with AOI<90. (:issue:`1342`, :pull:`2347`)
51
+ * Reduce space requirements by excluding tests and test files from wheel.
52
+ Zipped wheel is now 66% of the previous size, and installed size is 50% of
53
+ the previous size. (:issue:`2271`, :pull:`2277`)
54
+
55
+ Documentation
56
+ ~~~~~~~~~~~~~
57
+ * Fix Procedural and Object Oriented simulation examples having slightly different
58
+ results in :ref:`introtutorial`. (:issue:`2366`, :pull:`2367`)
59
+ * Restructure the user guide with subsections. (:issue:`2302`, :pull:`2310`)
60
+ * Add references for :py:func:`pvlib.snow.loss_townsend`. (:issue:`2383`, :pull:`2384`)
61
+ * Add :term:`ghi_clear` to the :ref:`nomenclature` page. (:issue:`2272`, :pull:`2397`)
62
+ * Add output variable naming clarifaction to :py:func:`pvlib.pvsystem.calcparams_desoto`
63
+ and :py:func:`pvlib.pvsystem.calcparams_pvsyst`. (:issue:`716`, :pull:`2405`)
64
+
65
+ Testing
66
+ ~~~~~~~
67
+ * Move tests folder to ``/tests`` and data exclusively used for testing to ``/tests/data``.
68
+ (:issue:`2271`, :pull:`2277`)
69
+ * Add Python 3.13 to test suite. (:issue:`2201`, :pull:`2258`)
70
+ * Add tests for all input types for the :py:attr:`pvlib.location.Location.tz` attribute.
71
+ (:issue:`2340`, :pull:`2341`)
72
+ * Add tests for time-conversion functions in :py:mod:`pvlib.tools`. (:issue:`2340`, :pull:`2341`)
73
+
74
+ Maintenance
75
+ ~~~~~~~~~~~
76
+ * Fix ReadTheDocs builds by upgrading ``readthedocs.yml`` configuration
77
+ (:issue:`2357`, :pull:`2358`)
78
+ * asv 0.4.2 upgraded to asv 0.6.4 to fix CI failure due to pinned older conda.
79
+ (:pull:`2352`)
80
+
81
+ Contributors
82
+ ~~~~~~~~~~~~
83
+ * Rajiv Daxini (:ghuser:`RDaxini`)
84
+ * Cliff Hansen (:ghuser:`cwhanse`)
85
+ * Jason Lun Leung (:ghuser:`jason-rpkt`)
86
+ * Manoj K S (:ghuser:`manojks1999`)
87
+ * Kurt Rhee (:ghuser:`kurt-rhee`)
88
+ * Ayush jariyal (:ghuser:`ayushjariyal`)
89
+ * Kevin Anderson (:ghuser:`kandersolar`)
90
+ * Echedey Luis (:ghuser:`echedey-ls`)
91
+ * Mark Campanelli (:ghuser:`markcampanelli`)
92
+ * Max Jackson (:ghuser:`MaxJackson`)
93
+ * Anton Driesse (:ghuser:`adriesse`)
94
+ * Adam R. Jensen (:ghuser:`AdamRJensen`)
95
+ * Ioannis Sifnaios (:ghuser:`IoannisSifnaios`)
96
+ * Will Holmgren (:ghuser:`wholmgren`)
97
+ * Sophie Pelland (:ghuser:`solphie-pelland`)
98
+ * Will Hobbs (:ghuser:`williamhobbs`)
99
+ * Karel De Brabandere (:ghuser:`kdebrab`)
100
+ * Kenneth J. Sauer (:ghuser:`kjsauer`)
@@ -56,7 +56,7 @@ Enhancements
56
56
  * Use HRRR modeled surface temperature values instead of inferring from
57
57
  isobaric values and modeled wind speed instead of inferring from gust.
58
58
  (:issue:`604`)
59
- * Change :py:func:`pvlib.pvsystem.sapm_spectral_loss` to avoid numpy warning.
59
+ * Change :py:func:`!pvlib.pvsystem.sapm_spectral_loss` to avoid numpy warning.
60
60
  * Add warning message when :py:func:`pvlib.spa` is reloaded. (:issue:`401`)
61
61
  * Add option for :py:func:`pvlib.irradiance.disc` to use relative airmass
62
62
  by supplying `pressure=None`. (:issue:`449`)
@@ -104,7 +104,7 @@ API Changes with Deprecations
104
104
  * Changes related to spectral modifier (:issue:`782`):
105
105
  * Changes to functions
106
106
  - Added the argument `pw_min` and `pw_max`, default values 0.1 and 8 resp.,
107
- to `atmosphere.first_solar_spectral_correction`. This function now returns NaN
107
+ to :py:func:`!pvlib.atmosphere.first_solar_spectral_correction`. This function now returns NaN
108
108
  if pw value higher than `pw_max`.
109
109
  * The `times` keyword argument has been deprecated in the
110
110
  :py:meth:`pvlib.modelchain.ModelChain.run_model`,
@@ -46,7 +46,7 @@ Bug fixes
46
46
  * Fix :py:func:`~pvlib.iotools.read_tmy3` parsing when February contains
47
47
  a leap year. (:pull:`866`)
48
48
  * Implement NREL Developer Network API key for consistent success with API
49
- calls in :py:mod:`pvlib.tests.iotools.test_psm3`. (:pull:`873`)
49
+ calls in :py:mod:`!pvlib.tests.iotools.test_psm3`. (:pull:`873`)
50
50
  * Fix issue with :py:class:`pvlib.location.Location` creation when
51
51
  passing ``tz=datetime.timezone.utc``. (:pull:`879`)
52
52
  * Fix documentation homepage title to "pvlib python" based on first heading on
@@ -14,7 +14,7 @@ Enhancements
14
14
  (:issue:`1516`, :pull:`1518`)
15
15
  * New module to calculate spectral mismatch from field spectral measurements
16
16
  :py:func:`~pvlib.spectrum.get_example_spectral_response`
17
- :py:func:`~pvlib.spectrum.get_am15g`
17
+ :py:func:`!pvlib.spectrum.get_am15g`
18
18
  :py:func:`~pvlib.spectrum.calc_spectral_mismatch_field`
19
19
  (:issue:`1523`, :pull:`1524`)
20
20
  * Added Townsend-Powers monthly snow loss model:
@@ -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.12.0.rst
9
10
  .. include:: whatsnew/v0.11.2.rst
10
11
  .. include:: whatsnew/v0.11.1.rst
11
12
  .. include:: whatsnew/v0.11.0.rst
@@ -27,4 +27,5 @@ from pvlib import ( # noqa: F401
27
27
  temperature,
28
28
  tools,
29
29
  tracking,
30
+ transformer,
30
31
  )
@@ -6,9 +6,6 @@ speed at different heights.
6
6
 
7
7
  import numpy as np
8
8
  import pandas as pd
9
- import pvlib
10
-
11
- from pvlib._deprecation import deprecated
12
9
 
13
10
  APPARENT_ZENITH_MODELS = ('simple', 'kasten1966', 'kastenyoung1989',
14
11
  'gueymard1993', 'pickering2002')
@@ -416,12 +413,6 @@ def tdew_from_rh(temp_air, relative_humidity, coeff=(6.112, 17.62, 243.12)):
416
413
  return dewpoint
417
414
 
418
415
 
419
- first_solar_spectral_correction = deprecated(
420
- since='0.10.0',
421
- alternative='pvlib.spectrum.spectral_factor_firstsolar'
422
- )(pvlib.spectrum.spectral_factor_firstsolar)
423
-
424
-
425
416
  def bird_hulstrom80_aod_bb(aod380, aod500):
426
417
  """
427
418
  Approximate broadband aerosol optical depth.
@@ -260,8 +260,9 @@ def get_irradiance_poa(surface_tilt, surface_azimuth, solar_zenith,
260
260
  Returns
261
261
  -------
262
262
  output : dict or DataFrame
263
- Output is a DataFrame when input ghi is a Series. See Notes for
264
- descriptions of content.
263
+ Output is a ``pandas.DataFrame`` when ``ghi`` is a Series.
264
+ Otherwise it is a dict of ``numpy.ndarray``
265
+ See Notes for descriptions of content.
265
266
 
266
267
  Notes
267
268
  -----
@@ -372,7 +373,7 @@ def get_irradiance_poa(surface_tilt, surface_azimuth, solar_zenith,
372
373
  'poa_global': poa_global, 'poa_direct': poa_direct,
373
374
  'poa_diffuse': poa_diffuse, 'poa_ground_diffuse': poa_gnd_pv,
374
375
  'poa_sky_diffuse': poa_sky_pv, 'shaded_fraction': f_x}
375
- if isinstance(poa_global, pd.Series):
376
+ if isinstance(ghi, pd.Series):
376
377
  output = pd.DataFrame(output)
377
378
  return output
378
379
 
@@ -87,7 +87,8 @@ def _unshaded_ground_fraction(surface_tilt, surface_azimuth, solar_zenith,
87
87
  surface_azimuth)
88
88
  f_gnd_beam = 1.0 - np.minimum(
89
89
  1.0, gcr * np.abs(cosd(surface_tilt) + sind(surface_tilt) * tan_phi))
90
- np.where(solar_zenith > max_zenith, 0., f_gnd_beam) # [1], Eq. 4
90
+ # [1], Eq. 4
91
+ f_gnd_beam = np.where(solar_zenith > max_zenith, 0., f_gnd_beam)
91
92
  return f_gnd_beam # 1 - min(1, abs()) < 1 always
92
93
 
93
94
 
@@ -49,7 +49,7 @@ REQUEST_VARIABLE_MAP = {
49
49
  'ghi_clear': 'clearsky_ghi',
50
50
  'dhi_clear': 'clearsky_dhi',
51
51
  'dni_clear': 'clearsky_dni',
52
- 'zenith': 'solar_zenith_angle',
52
+ 'solar_zenith': 'solar_zenith_angle',
53
53
  'temp_air': 'air_temperature',
54
54
  'temp_dew': 'dew_point',
55
55
  'relative_humidity': 'relative_humidity',
@@ -559,9 +559,17 @@ def _parse_pvgis_tmy_csv(src):
559
559
  inputs['longitude'] = float(src.readline().split(b':')[1])
560
560
  # Elevation (m): 1389.0\r\n
561
561
  inputs['elevation'] = float(src.readline().split(b':')[1])
562
+
563
+ # TMY has an extra line here: Irradiance Time Offset (h): 0.1761\r\n
564
+ line = src.readline()
565
+ if line.startswith(b'Irradiance Time Offset'):
566
+ inputs['irradiance time offset'] = float(line.split(b':')[1])
567
+ src.readline() # skip over the "month,year\r\n"
568
+ else:
569
+ # `line` is already the "month,year\r\n" line, so nothing to do
570
+ pass
562
571
  # then there's a 13 row comma separated table with two columns: month, year
563
- # which contains the year used for that month in the
564
- src.readline() # get "month,year\r\n"
572
+ # which contains the year used for that month in the TMY
565
573
  months_selected = []
566
574
  for month in range(12):
567
575
  months_selected.append(
@@ -3,8 +3,6 @@
3
3
  import datetime
4
4
  import re
5
5
  import pandas as pd
6
- import warnings
7
- from pvlib._deprecation import pvlibDeprecationWarning
8
6
 
9
7
  # Dictionary mapping TMY3 names to pvlib names
10
8
  VARIABLE_MAP = {
@@ -24,8 +22,7 @@ VARIABLE_MAP = {
24
22
  }
25
23
 
26
24
 
27
- def read_tmy3(filename, coerce_year=None, map_variables=None, recolumn=None,
28
- encoding=None):
25
+ def read_tmy3(filename, coerce_year=None, map_variables=True, encoding=None):
29
26
  """Read a TMY3 file into a pandas dataframe.
30
27
 
31
28
  Note that values contained in the metadata dictionary are unchanged
@@ -44,13 +41,9 @@ def read_tmy3(filename, coerce_year=None, map_variables=None, recolumn=None,
44
41
  If supplied, the year of the index will be set to ``coerce_year``, except
45
42
  for the last index value which will be set to the *next* year so that
46
43
  the index increases monotonically.
47
- map_variables : bool, optional
44
+ map_variables : bool, default True
48
45
  When True, renames columns of the DataFrame to pvlib variable names
49
46
  where applicable. See variable :const:`VARIABLE_MAP`.
50
- recolumn : bool (deprecated, use map_variables instead)
51
- If ``True``, apply standard names to TMY3 columns. Typically this
52
- results in stripping the units from the column name.
53
- Cannot be used in combination with ``map_variables``.
54
47
  encoding : str, optional
55
48
  Encoding of the file. For files that contain non-UTF8 characters it may
56
49
  be necessary to specify an alternative encoding, e.g., for
@@ -233,74 +226,15 @@ def read_tmy3(filename, coerce_year=None, map_variables=None, recolumn=None,
233
226
  # unit must be in (D,h,m,s,ms,us,ns), but pandas>=0.24 allows unit='hour'
234
227
  data.index = data_ymd + pd.to_timedelta(shifted_hour, unit='h') \
235
228
  + pd.to_timedelta(minutes, unit='min')
236
- # shouldnt' specify both recolumn and map_variables
237
- if recolumn is not None and map_variables is not None:
238
- msg = "`map_variables` and `recolumn` cannot both be specified"
239
- raise ValueError(msg)
240
- elif map_variables is None and recolumn is not None:
241
- warnings.warn(
242
- 'The recolumn parameter is deprecated and will be removed in '
243
- 'pvlib 0.11.0. Use `map_variables` instead, although note that '
244
- 'its behavior is different from `recolumn`.',
245
- pvlibDeprecationWarning)
246
- elif map_variables is None and recolumn is None:
247
- warnings.warn(
248
- 'TMY3 variable names will be renamed to pvlib conventions by '
249
- 'default starting in pvlib 0.11.0. Specify map_variables=True '
250
- 'to enable that behavior now, or specify map_variables=False '
251
- 'to hide this warning.', pvlibDeprecationWarning)
229
+
252
230
  if map_variables:
253
231
  data = data.rename(columns=VARIABLE_MAP)
254
- elif recolumn or (recolumn is None and map_variables is None):
255
- data = _recolumn(data)
256
232
 
257
233
  data = data.tz_localize(int(meta['TZ'] * 3600))
258
234
 
259
235
  return data, meta
260
236
 
261
237
 
262
- def _recolumn(tmy3_dataframe):
263
- """
264
- Rename the columns of the TMY3 DataFrame.
265
-
266
- Parameters
267
- ----------
268
- tmy3_dataframe : DataFrame
269
- inplace : bool
270
- passed to DataFrame.rename()
271
-
272
- Returns
273
- -------
274
- Recolumned DataFrame.
275
- """
276
- # paste in the header as one long line
277
- raw_columns = 'ETR (W/m^2),ETRN (W/m^2),GHI (W/m^2),GHI source,GHI uncert (%),DNI (W/m^2),DNI source,DNI uncert (%),DHI (W/m^2),DHI source,DHI uncert (%),GH illum (lx),GH illum source,Global illum uncert (%),DN illum (lx),DN illum source,DN illum uncert (%),DH illum (lx),DH illum source,DH illum uncert (%),Zenith lum (cd/m^2),Zenith lum source,Zenith lum uncert (%),TotCld (tenths),TotCld source,TotCld uncert (code),OpqCld (tenths),OpqCld source,OpqCld uncert (code),Dry-bulb (C),Dry-bulb source,Dry-bulb uncert (code),Dew-point (C),Dew-point source,Dew-point uncert (code),RHum (%),RHum source,RHum uncert (code),Pressure (mbar),Pressure source,Pressure uncert (code),Wdir (degrees),Wdir source,Wdir uncert (code),Wspd (m/s),Wspd source,Wspd uncert (code),Hvis (m),Hvis source,Hvis uncert (code),CeilHgt (m),CeilHgt source,CeilHgt uncert (code),Pwat (cm),Pwat source,Pwat uncert (code),AOD (unitless),AOD source,AOD uncert (code),Alb (unitless),Alb source,Alb uncert (code),Lprecip depth (mm),Lprecip quantity (hr),Lprecip source,Lprecip uncert (code),PresWth (METAR code),PresWth source,PresWth uncert (code)' # noqa: E501
278
-
279
- new_columns = [
280
- 'ETR', 'ETRN', 'GHI', 'GHISource', 'GHIUncertainty',
281
- 'DNI', 'DNISource', 'DNIUncertainty', 'DHI', 'DHISource',
282
- 'DHIUncertainty', 'GHillum', 'GHillumSource', 'GHillumUncertainty',
283
- 'DNillum', 'DNillumSource', 'DNillumUncertainty', 'DHillum',
284
- 'DHillumSource', 'DHillumUncertainty', 'Zenithlum',
285
- 'ZenithlumSource', 'ZenithlumUncertainty', 'TotCld', 'TotCldSource',
286
- 'TotCldUncertainty', 'OpqCld', 'OpqCldSource', 'OpqCldUncertainty',
287
- 'DryBulb', 'DryBulbSource', 'DryBulbUncertainty', 'DewPoint',
288
- 'DewPointSource', 'DewPointUncertainty', 'RHum', 'RHumSource',
289
- 'RHumUncertainty', 'Pressure', 'PressureSource',
290
- 'PressureUncertainty', 'Wdir', 'WdirSource', 'WdirUncertainty',
291
- 'Wspd', 'WspdSource', 'WspdUncertainty', 'Hvis', 'HvisSource',
292
- 'HvisUncertainty', 'CeilHgt', 'CeilHgtSource', 'CeilHgtUncertainty',
293
- 'Pwat', 'PwatSource', 'PwatUncertainty', 'AOD', 'AODSource',
294
- 'AODUncertainty', 'Alb', 'AlbSource', 'AlbUncertainty',
295
- 'Lprecipdepth', 'Lprecipquantity', 'LprecipSource',
296
- 'LprecipUncertainty', 'PresWth', 'PresWthSource',
297
- 'PresWthUncertainty']
298
-
299
- mapping = dict(zip(raw_columns.split(','), new_columns))
300
-
301
- return tmy3_dataframe.rename(columns=mapping)
302
-
303
-
304
238
  def read_tmy2(filename):
305
239
  """
306
240
  Read a TMY2 file into a DataFrame.
@@ -2368,6 +2368,9 @@ def gti_dirint(poa_global, aoi, solar_zenith, solar_azimuth, times,
2368
2368
  irradiance, Solar Energy 122, 1037-1046.
2369
2369
  :doi:`10.1016/j.solener.2015.10.024`
2370
2370
  """
2371
+ # check input data and raise Exceptions where data will cause the
2372
+ # algorithm to fail
2373
+ _gti_dirint_check_input(aoi)
2371
2374
 
2372
2375
  aoi_lt_90 = aoi < 90
2373
2376
 
@@ -2399,6 +2402,17 @@ def gti_dirint(poa_global, aoi, solar_zenith, solar_azimuth, times,
2399
2402
  return output
2400
2403
 
2401
2404
 
2405
+ def _gti_dirint_check_input(aoi):
2406
+ r"""
2407
+ Helper for gti_dirint
2408
+
2409
+ Raises Exceptions from input data that cause the algorithm to fail.
2410
+ """
2411
+ if not (aoi < 90).any():
2412
+ raise ValueError("There are no times with AOI < 90. "
2413
+ "gti_dirint requires some data with AOI < 90.")
2414
+
2415
+
2402
2416
  def _gti_dirint_lt_90(poa_global, aoi, aoi_lt_90, solar_zenith, solar_azimuth,
2403
2417
  times, surface_tilt, surface_azimuth, pressure=101325.,
2404
2418
  use_delta_kt_prime=True, temp_dew=None, albedo=.25,