pvlib 0.9.5__tar.gz → 0.10.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (340) hide show
  1. {pvlib-0.9.5/pvlib.egg-info → pvlib-0.10.0}/PKG-INFO +1 -1
  2. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/adr-pvarray/plot_simulate_system.py +5 -3
  3. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +16 -15
  4. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +4 -3
  5. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_transposition_gain.py +6 -5
  6. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/iv-modeling/plot_singlediode.py +18 -15
  7. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +3 -2
  8. pvlib-0.10.0/docs/notes/Determining the average view factor from a module.pdf +0 -0
  9. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/index.rst +2 -2
  10. pvlib-0.10.0/docs/sphinx/source/reference/bifacial.rst +25 -0
  11. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/classes.rst +0 -1
  12. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +1 -0
  13. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +3 -0
  14. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/index.rst +0 -1
  15. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/iotools.rst +7 -2
  16. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/irradiance/class-methods.rst +0 -1
  17. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/irradiance/decomposition.rst +3 -0
  18. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/scaling.rst +1 -0
  19. pvlib-0.10.0/docs/sphinx/source/reference/tracking.rst +15 -0
  20. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/clearsky.rst +8 -6
  21. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/comparison_pvlib_matlab.rst +2 -3
  22. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/index.rst +0 -1
  23. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/installation.rst +1 -2
  24. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/introtutorial.rst +1 -2
  25. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/pvsystem.rst +0 -13
  26. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/timetimezones.rst +2 -2
  27. pvlib-0.10.0/docs/sphinx/source/whatsnew/v0.10.0.rst +186 -0
  28. pvlib-0.9.5/docs/sphinx/source/whatsnew/v0.9.6.rst → pvlib-0.10.0/docs/sphinx/source/whatsnew/v0.10.1.rst +3 -7
  29. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew.rst +1 -0
  30. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/__init__.py +3 -2
  31. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/atmosphere.py +6 -171
  32. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/bifacial/infinite_sheds.py +30 -267
  33. pvlib-0.10.0/pvlib/bifacial/utils.py +391 -0
  34. pvlib-0.10.0/pvlib/data/test_psm3_2017.csv +17521 -0
  35. pvlib-0.10.0/pvlib/data/test_read_psm3.csv +17523 -0
  36. pvlib-0.10.0/pvlib/data/test_read_pvgis_horizon.csv +49 -0
  37. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/variables_style_rules.csv +3 -0
  38. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iam.py +17 -4
  39. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/inverter.py +6 -1
  40. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/__init__.py +7 -2
  41. pvlib-0.10.0/pvlib/iotools/acis.py +516 -0
  42. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/midc.py +4 -4
  43. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/psm3.py +32 -31
  44. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/pvgis.py +84 -28
  45. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/sodapro.py +8 -6
  46. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/srml.py +121 -18
  47. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/surfrad.py +2 -2
  48. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/tmy.py +146 -102
  49. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/irradiance.py +151 -0
  50. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/ivtools/sde.py +11 -7
  51. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/ivtools/sdm.py +16 -10
  52. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/ivtools/utils.py +6 -6
  53. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/location.py +3 -2
  54. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/modelchain.py +67 -70
  55. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/pvsystem.py +160 -532
  56. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/shading.py +41 -0
  57. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/singlediode.py +215 -65
  58. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/soiling.py +3 -3
  59. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/spa.py +327 -368
  60. pvlib-0.10.0/pvlib/spectrum/__init__.py +9 -0
  61. pvlib-0.10.0/pvlib/spectrum/mismatch.py +572 -0
  62. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/temperature.py +1 -8
  63. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/bifacial/test_infinite_sheds.py +0 -111
  64. pvlib-0.10.0/pvlib/tests/bifacial/test_utils.py +185 -0
  65. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/conftest.py +0 -31
  66. pvlib-0.10.0/pvlib/tests/iotools/test_acis.py +213 -0
  67. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_midc.py +6 -6
  68. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_psm3.py +3 -3
  69. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_pvgis.py +21 -14
  70. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_sodapro.py +1 -1
  71. pvlib-0.10.0/pvlib/tests/iotools/test_srml.py +164 -0
  72. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_tmy.py +43 -8
  73. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/ivtools/test_sde.py +19 -17
  74. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/ivtools/test_sdm.py +9 -4
  75. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_atmosphere.py +6 -62
  76. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_iam.py +12 -0
  77. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_irradiance.py +40 -2
  78. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_location.py +1 -1
  79. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_modelchain.py +33 -76
  80. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_pvsystem.py +366 -201
  81. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_shading.py +28 -0
  82. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_singlediode.py +166 -30
  83. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_soiling.py +8 -7
  84. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_spa.py +6 -7
  85. pvlib-0.10.0/pvlib/tests/test_spectrum.py +317 -0
  86. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_temperature.py +0 -7
  87. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_tools.py +25 -0
  88. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_tracking.py +0 -149
  89. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tools.py +26 -1
  90. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tracking.py +1 -269
  91. {pvlib-0.9.5 → pvlib-0.10.0/pvlib.egg-info}/PKG-INFO +1 -1
  92. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib.egg-info/SOURCES.txt +6 -9
  93. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib.egg-info/requires.txt +0 -8
  94. {pvlib-0.9.5 → pvlib-0.10.0}/pyproject.toml +0 -3
  95. {pvlib-0.9.5 → pvlib-0.10.0}/setup.py +3 -4
  96. pvlib-0.9.5/docs/sphinx/source/reference/bifacial.rst +0 -13
  97. pvlib-0.9.5/docs/sphinx/source/reference/forecasting.rst +0 -63
  98. pvlib-0.9.5/docs/sphinx/source/reference/tracking.rst +0 -28
  99. pvlib-0.9.5/docs/sphinx/source/user_guide/forecasts.rst +0 -520
  100. pvlib-0.9.5/docs/tutorials/forecast.ipynb +0 -6804
  101. pvlib-0.9.5/docs/tutorials/forecast_to_power.ipynb +0 -964
  102. pvlib-0.9.5/pvlib/bifacial/utils.py +0 -171
  103. pvlib-0.9.5/pvlib/data/test_psm3_2017.csv +0 -17521
  104. pvlib-0.9.5/pvlib/data/test_read_psm3.csv +0 -17523
  105. pvlib-0.9.5/pvlib/forecast.py +0 -1211
  106. pvlib-0.9.5/pvlib/iotools/ecmwf_macc.py +0 -312
  107. pvlib-0.9.5/pvlib/spectrum/__init__.py +0 -3
  108. pvlib-0.9.5/pvlib/spectrum/mismatch.py +0 -237
  109. pvlib-0.9.5/pvlib/tests/bifacial/test_utils.py +0 -88
  110. pvlib-0.9.5/pvlib/tests/iotools/test_ecmwf_macc.py +0 -162
  111. pvlib-0.9.5/pvlib/tests/iotools/test_srml.py +0 -99
  112. pvlib-0.9.5/pvlib/tests/test_forecast.py +0 -228
  113. pvlib-0.9.5/pvlib/tests/test_spectrum.py +0 -173
  114. {pvlib-0.9.5 → pvlib-0.10.0}/AUTHORS.md +0 -0
  115. {pvlib-0.9.5 → pvlib-0.10.0}/LICENSE +0 -0
  116. {pvlib-0.9.5 → pvlib-0.10.0}/MANIFEST.in +0 -0
  117. {pvlib-0.9.5 → pvlib-0.10.0}/README.md +0 -0
  118. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/README.rst +0 -0
  119. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/adr-pvarray/README.rst +0 -0
  120. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/adr-pvarray/plot_fit_to_matrix.py +0 -0
  121. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/adr-pvarray/plot_simulate_fast.py +0 -0
  122. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/bifacial/README.rst +0 -0
  123. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/bifacial/plot_bifi_model_mc.py +0 -0
  124. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +0 -0
  125. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +0 -0
  126. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/irradiance-decomposition/README.rst +0 -0
  127. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/irradiance-transposition/README.rst +0 -0
  128. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
  129. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
  130. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
  131. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/iv-modeling/README.rst +0 -0
  132. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/reflections/README.rst +0 -0
  133. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
  134. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/shading/README.rst +0 -0
  135. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/shading/plot_partial_module_shading_simple.py +0 -0
  136. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
  137. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/soiling/README.rst +0 -0
  138. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
  139. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/solar-position/README.rst +0 -0
  140. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/solar-position/plot_sunpath_diagrams.py +0 -0
  141. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/solar-tracking/README.rst +0 -0
  142. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
  143. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
  144. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
  145. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
  146. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/spectrum/README.rst +0 -0
  147. {pvlib-0.9.5 → pvlib-0.10.0}/docs/examples/spectrum/plot_spectrl2_fig51A.py +0 -0
  148. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/Makefile +0 -0
  149. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/make.bat +0 -0
  150. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
  151. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_images/clonebutton.png +0 -0
  152. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
  153. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
  154. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
  155. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
  156. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
  157. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
  158. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
  159. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
  160. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
  161. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
  162. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_static/reference_format.css +0 -0
  163. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_static/version-alert.js +0 -0
  164. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
  165. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
  166. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
  167. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/_templates/edit-this-page.html +0 -0
  168. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/conf.py +0 -0
  169. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/contributing.rst +0 -0
  170. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/airmass_atmospheric.rst +0 -0
  171. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/clearsky.rst +0 -0
  172. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +0 -0
  173. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +0 -0
  174. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +0 -0
  175. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +0 -0
  176. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/irradiance/clearness-index.rst +0 -0
  177. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/irradiance/components.rst +0 -0
  178. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/irradiance/index.rst +0 -0
  179. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/irradiance/transposition.rst +0 -0
  180. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/location.rst +0 -0
  181. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/modelchain.rst +0 -0
  182. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/pv_modeling/iam.rst +0 -0
  183. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/pv_modeling/index.rst +0 -0
  184. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/pv_modeling/inverter.rst +0 -0
  185. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/pv_modeling/other.rst +0 -0
  186. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/pv_modeling/parameters.rst +0 -0
  187. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/pv_modeling/sdm.rst +0 -0
  188. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/pv_modeling/system_models.rst +0 -0
  189. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/pv_modeling/temperature.rst +0 -0
  190. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/reference/solarposition.rst +0 -0
  191. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/bifacial.rst +0 -0
  192. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/faq.rst +0 -0
  193. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/modelchain.rst +0 -0
  194. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/package_overview.rst +0 -0
  195. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/singlediode.rst +0 -0
  196. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/user_guide/variables_style_rules.rst +0 -0
  197. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
  198. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
  199. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
  200. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
  201. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.3.0.txt +0 -0
  202. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
  203. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
  204. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
  205. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
  206. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
  207. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
  208. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
  209. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
  210. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
  211. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
  212. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
  213. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
  214. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
  215. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.6.1.rst +0 -0
  216. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
  217. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
  218. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.7.0.rst +0 -0
  219. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.7.1.rst +0 -0
  220. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.7.2.rst +0 -0
  221. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.8.0.rst +0 -0
  222. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.8.1.rst +0 -0
  223. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.0.rst +0 -0
  224. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.1.rst +0 -0
  225. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.2.rst +0 -0
  226. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.3.rst +0 -0
  227. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -0
  228. {pvlib-0.9.5 → pvlib-0.10.0}/docs/sphinx/source/whatsnew/v0.9.5.rst +0 -0
  229. {pvlib-0.9.5 → pvlib-0.10.0}/docs/tutorials/atmosphere.ipynb +0 -0
  230. {pvlib-0.9.5 → pvlib-0.10.0}/docs/tutorials/irradiance.ipynb +0 -0
  231. {pvlib-0.9.5 → pvlib-0.10.0}/docs/tutorials/pvsystem.ipynb +0 -0
  232. {pvlib-0.9.5 → pvlib-0.10.0}/docs/tutorials/solarposition.ipynb +0 -0
  233. {pvlib-0.9.5 → pvlib-0.10.0}/docs/tutorials/tmy.ipynb +0 -0
  234. {pvlib-0.9.5 → pvlib-0.10.0}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
  235. {pvlib-0.9.5 → pvlib-0.10.0}/docs/tutorials/tmy_to_power.ipynb +0 -0
  236. {pvlib-0.9.5 → pvlib-0.10.0}/docs/tutorials/tracking.ipynb +0 -0
  237. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/_deprecation.py +0 -0
  238. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/bifacial/__init__.py +0 -0
  239. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/bifacial/pvfactors.py +0 -0
  240. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/clearsky.py +0 -0
  241. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/12839.tm2 +0 -0
  242. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/703165TY.csv +0 -0
  243. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/723170TYA.CSV +0 -0
  244. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/Altitude.h5 +0 -0
  245. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/BIRD_08_16_2012.csv +0 -0
  246. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/BIRD_08_16_2012_patm.csv +0 -0
  247. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
  248. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
  249. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/CRN_with_problems.txt +0 -0
  250. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/LinkeTurbidities.h5 +0 -0
  251. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/NLD_Amsterdam062400_IWEC.epw +0 -0
  252. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/PVsyst_demo.csv +0 -0
  253. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/PVsyst_demo_model.csv +0 -0
  254. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/SRML-day-EUPO1801.txt +0 -0
  255. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/abq19056.dat +0 -0
  256. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +0 -0
  257. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/aod550_tcwv_20121101_test.nc +0 -0
  258. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/astm_g173_am15g.csv +0 -0
  259. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/bishop88_numerical_precision.csv +0 -0
  260. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/bsrn-lr0100-pay0616.dat +0 -0
  261. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/bsrn-pay0616.dat.gz +0 -0
  262. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/cams_mcclear_1min_verbose.csv +0 -0
  263. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/cams_mcclear_monthly.csv +0 -0
  264. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/cams_radiation_1min_verbose.csv +0 -0
  265. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/cams_radiation_monthly.csv +0 -0
  266. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/detect_clearsky_data.csv +0 -0
  267. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/greensboro_kimber_soil_manwash.dat +0 -0
  268. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/greensboro_kimber_soil_nowash.dat +0 -0
  269. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/inverter_fit_snl_meas.csv +0 -0
  270. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/inverter_fit_snl_sim.csv +0 -0
  271. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/ivtools_numdiff.csv +0 -0
  272. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/midc_20181014.txt +0 -0
  273. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/midc_raw_20181018.txt +0 -0
  274. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/midc_raw_short_header_20191115.txt +0 -0
  275. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/msn19056.dat +0 -0
  276. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/precise_iv_curves1.json +0 -0
  277. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/precise_iv_curves2.json +0 -0
  278. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/precise_iv_curves_parameter_sets1.csv +0 -0
  279. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/precise_iv_curves_parameter_sets2.csv +0 -0
  280. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
  281. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
  282. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/pvgis_tmy_meta.json +0 -0
  283. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/pvgis_tmy_test.dat +0 -0
  284. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/pvwatts_8760_rackmount.csv +0 -0
  285. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/pvwatts_8760_roofmount.csv +0 -0
  286. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
  287. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
  288. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
  289. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/singleaxis_tracker_wslope.csv +0 -0
  290. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
  291. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/spectrl2_example_spectra.csv +0 -0
  292. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/surfrad-slv16001.dat +0 -0
  293. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/test_psm3_2019_5min.csv +0 -0
  294. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/test_psm3_tmy-2017.csv +0 -0
  295. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_2005_2016.csv +0 -0
  296. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_2005_2016.epw +0 -0
  297. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_2005_2016.json +0 -0
  298. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_2005_2016.txt +0 -0
  299. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/data/tmy_45.000_8.000_userhorizon.json +0 -0
  300. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/bsrn.py +0 -0
  301. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/crn.py +0 -0
  302. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/epw.py +0 -0
  303. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/iotools/solrad.py +0 -0
  304. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/ivtools/__init__.py +0 -0
  305. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/pvarray.py +0 -0
  306. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/scaling.py +0 -0
  307. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/snow.py +0 -0
  308. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/solarposition.py +0 -0
  309. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/spa_c_files/README.md +0 -0
  310. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/spa_c_files/SPA_NOTICE.md +0 -0
  311. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/spa_c_files/__init__.py +0 -0
  312. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/spa_c_files/cspa_py.pxd +0 -0
  313. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/spa_c_files/setup.py +0 -0
  314. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/spa_c_files/spa_py.pyx +0 -0
  315. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/spa_c_files/spa_py_example.py +0 -0
  316. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/spectrum/spectrl2.py +0 -0
  317. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/__init__.py +0 -0
  318. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/bifacial/__init__.py +0 -0
  319. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/bifacial/test_pvfactors.py +0 -0
  320. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/__init__.py +0 -0
  321. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_bsrn.py +0 -0
  322. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_crn.py +0 -0
  323. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_epw.py +0 -0
  324. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_solrad.py +0 -0
  325. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/iotools/test_surfrad.py +0 -0
  326. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/ivtools/__init__.py +0 -0
  327. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/ivtools/test_utils.py +0 -0
  328. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_clearsky.py +0 -0
  329. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_conftest.py +0 -0
  330. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_inverter.py +0 -0
  331. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_numerical_precision.py +0 -0
  332. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_pvarray.py +0 -0
  333. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_scaling.py +0 -0
  334. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_snow.py +0 -0
  335. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/tests/test_solarposition.py +0 -0
  336. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib/version.py +0 -0
  337. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib.egg-info/dependency_links.txt +0 -0
  338. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib.egg-info/not-zip-safe +0 -0
  339. {pvlib-0.9.5 → pvlib-0.10.0}/pvlib.egg-info/top_level.txt +0 -0
  340. {pvlib-0.9.5 → pvlib-0.10.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: pvlib
3
- Version: 0.9.5
3
+ Version: 0.10.0
4
4
  Summary: A set of functions and classes for simulating the performance of photovoltaic energy systems.
5
5
  Home-page: https://github.com/pvlib/pvlib-python
6
6
  Author: pvlib python Developers
@@ -29,10 +29,12 @@ from pvlib.pvarray import pvefficiency_adr
29
29
  PVLIB_DIR = pvlib.__path__[0]
30
30
  DATA_FILE = os.path.join(PVLIB_DIR, 'data', '723170TYA.CSV')
31
31
 
32
- tmy, metadata = iotools.read_tmy3(DATA_FILE, coerce_year=1990)
32
+ tmy, metadata = iotools.read_tmy3(DATA_FILE, coerce_year=1990,
33
+ map_variables=True)
33
34
 
34
- df = pd.DataFrame({'ghi': tmy['GHI'], 'dhi': tmy['DHI'], 'dni': tmy['DNI'],
35
- 'temp_air': tmy['DryBulb'], 'wind_speed': tmy['Wspd'],
35
+ df = pd.DataFrame({'ghi': tmy['ghi'], 'dhi': tmy['dhi'], 'dni': tmy['dni'],
36
+ 'temp_air': tmy['temp_air'],
37
+ 'wind_speed': tmy['wind_speed'],
36
38
  })
37
39
 
38
40
  # %%
@@ -27,7 +27,8 @@ import pvlib
27
27
  # of data measured from 1990 to 2010. Therefore we change the timestamps to a
28
28
  # common year, 1990.
29
29
  DATA_DIR = pathlib.Path(pvlib.__file__).parent / 'data'
30
- greensboro, metadata = read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990)
30
+ greensboro, metadata = read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990,
31
+ map_variables=True)
31
32
 
32
33
  # Many of the diffuse fraction estimation methods require the "true" zenith, so
33
34
  # we calculate the solar positions for the 1990 at Greensboro, NC.
@@ -36,8 +37,8 @@ greensboro, metadata = read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990)
36
37
  solpos = get_solarposition(
37
38
  greensboro.index.shift(freq="-30T"), latitude=metadata['latitude'],
38
39
  longitude=metadata['longitude'], altitude=metadata['altitude'],
39
- pressure=greensboro.Pressure*100, # convert from millibar to Pa
40
- temperature=greensboro.DryBulb)
40
+ pressure=greensboro.pressure*100, # convert from millibar to Pa
41
+ temperature=greensboro.temp_air)
41
42
  solpos.index = greensboro.index # reset index to end of the hour
42
43
 
43
44
  # %%
@@ -56,10 +57,10 @@ solpos.index = greensboro.index # reset index to end of the hour
56
57
  # an exponential relation with airmass.
57
58
 
58
59
  out_disc = irradiance.disc(
59
- greensboro.GHI, solpos.zenith, greensboro.index, greensboro.Pressure*100)
60
+ greensboro.ghi, solpos.zenith, greensboro.index, greensboro.pressure*100)
60
61
  # use "complete sum" AKA "closure" equations: DHI = GHI - DNI * cos(zenith)
61
62
  df_disc = irradiance.complete_irradiance(
62
- solar_zenith=solpos.apparent_zenith, ghi=greensboro.GHI, dni=out_disc.dni,
63
+ solar_zenith=solpos.apparent_zenith, ghi=greensboro.ghi, dni=out_disc.dni,
63
64
  dhi=None)
64
65
  out_disc = out_disc.rename(columns={'dni': 'dni_disc'})
65
66
  out_disc['dhi_disc'] = df_disc.dhi
@@ -72,11 +73,11 @@ out_disc['dhi_disc'] = df_disc.dhi
72
73
  # developed by Richard Perez and Pierre Ineichen in 1992.
73
74
 
74
75
  dni_dirint = irradiance.dirint(
75
- greensboro.GHI, solpos.zenith, greensboro.index, greensboro.Pressure*100,
76
- temp_dew=greensboro.DewPoint)
76
+ greensboro.ghi, solpos.zenith, greensboro.index, greensboro.pressure*100,
77
+ temp_dew=greensboro.temp_dew)
77
78
  # use "complete sum" AKA "closure" equation: DHI = GHI - DNI * cos(zenith)
78
79
  df_dirint = irradiance.complete_irradiance(
79
- solar_zenith=solpos.apparent_zenith, ghi=greensboro.GHI, dni=dni_dirint,
80
+ solar_zenith=solpos.apparent_zenith, ghi=greensboro.ghi, dni=dni_dirint,
80
81
  dhi=None)
81
82
  out_dirint = pd.DataFrame(
82
83
  {'dni_dirint': dni_dirint, 'dhi_dirint': df_dirint.dhi},
@@ -91,7 +92,7 @@ out_dirint = pd.DataFrame(
91
92
  # splits kt into 3 regions: linear for kt <= 0.22, a 4th order polynomial
92
93
  # between 0.22 < kt <= 0.8, and a horizontal line for kt > 0.8.
93
94
 
94
- out_erbs = irradiance.erbs(greensboro.GHI, solpos.zenith, greensboro.index)
95
+ out_erbs = irradiance.erbs(greensboro.ghi, solpos.zenith, greensboro.index)
95
96
  out_erbs = out_erbs.rename(columns={'dni': 'dni_erbs', 'dhi': 'dhi_erbs'})
96
97
 
97
98
  # %%
@@ -102,7 +103,7 @@ out_erbs = out_erbs.rename(columns={'dni': 'dni_erbs', 'dhi': 'dhi_erbs'})
102
103
  # exponential correlation that is continuously differentiable and bounded
103
104
  # between zero and one.
104
105
 
105
- out_boland = irradiance.boland(greensboro.GHI, solpos.zenith, greensboro.index)
106
+ out_boland = irradiance.boland(greensboro.ghi, solpos.zenith, greensboro.index)
106
107
  out_boland = out_boland.rename(
107
108
  columns={'dni': 'dni_boland', 'dhi': 'dhi_boland'})
108
109
 
@@ -118,20 +119,20 @@ out_boland = out_boland.rename(
118
119
  # file together to make plotting easier.
119
120
 
120
121
  dni_renames = {
121
- 'DNI': 'TMY3', 'dni_disc': 'DISC', 'dni_dirint': 'DIRINT',
122
+ 'dni': 'TMY3', 'dni_disc': 'DISC', 'dni_dirint': 'DIRINT',
122
123
  'dni_erbs': 'Erbs', 'dni_boland': 'Boland'}
123
124
  dni = [
124
- greensboro.DNI, out_disc.dni_disc, out_dirint.dni_dirint,
125
+ greensboro.dni, out_disc.dni_disc, out_dirint.dni_dirint,
125
126
  out_erbs.dni_erbs, out_boland.dni_boland]
126
127
  dni = pd.concat(dni, axis=1).rename(columns=dni_renames)
127
128
  dhi_renames = {
128
- 'DHI': 'TMY3', 'dhi_disc': 'DISC', 'dhi_dirint': 'DIRINT',
129
+ 'dhi': 'TMY3', 'dhi_disc': 'DISC', 'dhi_dirint': 'DIRINT',
129
130
  'dhi_erbs': 'Erbs', 'dhi_boland': 'Boland'}
130
131
  dhi = [
131
- greensboro.DHI, out_disc.dhi_disc, out_dirint.dhi_dirint,
132
+ greensboro.dhi, out_disc.dhi_disc, out_dirint.dhi_dirint,
132
133
  out_erbs.dhi_erbs, out_boland.dhi_boland]
133
134
  dhi = pd.concat(dhi, axis=1).rename(columns=dhi_renames)
134
- ghi_kt = pd.concat([greensboro.GHI/1000.0, out_erbs.kt], axis=1)
135
+ ghi_kt = pd.concat([greensboro.ghi/1000.0, out_erbs.kt], axis=1)
135
136
 
136
137
  # %%
137
138
  # Winter
@@ -44,12 +44,13 @@ class SeasonalTiltMount(pvsystem.AbstractMount):
44
44
  # like we expect:
45
45
 
46
46
  DATA_DIR = pathlib.Path(pvlib.__file__).parent / 'data'
47
- tmy, metadata = iotools.read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990)
47
+ tmy, metadata = iotools.read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990,
48
+ map_variables=True)
48
49
  # shift from TMY3 right-labeled index to left-labeled index:
49
50
  tmy.index = tmy.index - pd.Timedelta(hours=1)
50
51
  weather = pd.DataFrame({
51
- 'ghi': tmy['GHI'], 'dhi': tmy['DHI'], 'dni': tmy['DNI'],
52
- 'temp_air': tmy['DryBulb'], 'wind_speed': tmy['Wspd'],
52
+ 'ghi': tmy['ghi'], 'dhi': tmy['dhi'], 'dni': tmy['dni'],
53
+ 'temp_air': tmy['temp_air'], 'wind_speed': tmy['wind_speed'],
53
54
  })
54
55
  loc = location.Location.from_tmy(metadata)
55
56
  solpos = loc.get_solarposition(weather.index)
@@ -32,7 +32,8 @@ import pathlib
32
32
  DATA_DIR = pathlib.Path(pvlib.__file__).parent / 'data'
33
33
 
34
34
  # get TMY3 dataset
35
- tmy, metadata = read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990)
35
+ tmy, metadata = read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990,
36
+ map_variables=True)
36
37
  # TMY3 datasets are right-labeled (AKA "end of interval") which means the last
37
38
  # interval of Dec 31, 23:00 to Jan 1 00:00 is labeled Jan 1 00:00. When rolling
38
39
  # up hourly irradiance to monthly insolation, a spurious January value is
@@ -60,9 +61,9 @@ def calculate_poa(tmy, solar_position, surface_tilt, surface_azimuth):
60
61
  poa = irradiance.get_total_irradiance(
61
62
  surface_tilt=surface_tilt,
62
63
  surface_azimuth=surface_azimuth,
63
- dni=tmy['DNI'],
64
- ghi=tmy['GHI'],
65
- dhi=tmy['DHI'],
64
+ dni=tmy['dni'],
65
+ ghi=tmy['ghi'],
66
+ dhi=tmy['dhi'],
66
67
  solar_zenith=solar_position['apparent_zenith'],
67
68
  solar_azimuth=solar_position['azimuth'],
68
69
  model='isotropic')
@@ -97,7 +98,7 @@ poa_irradiance = calculate_poa(tmy,
97
98
  df_monthly['SAT-0.4'] = poa_irradiance.resample('m').sum()
98
99
 
99
100
  # calculate the percent difference from GHI
100
- ghi_monthly = tmy['GHI'].resample('m').sum()
101
+ ghi_monthly = tmy['ghi'].resample('m').sum()
101
102
  df_monthly = 100 * (df_monthly.divide(ghi_monthly, axis=0) - 1)
102
103
 
103
104
  df_monthly.plot()
@@ -18,7 +18,7 @@ Examples of modeling IV curves using a single-diode circuit equivalent model.
18
18
  # cell and has five electrical parameters that depend on the operating
19
19
  # conditions. For more details on the single-diode equation and the five
20
20
  # parameters, see the `PVPMC single diode page
21
- # <https://pvpmc.sandia.gov/modeling-steps/2-dc-module-iv/diode-equivalent-circuit-models/>`_.
21
+ # <https://pvpmc.sandia.gov/modeling-steps/2-dc-module-iv/single-diode-equivalent-circuit-models/>`_.
22
22
  #
23
23
  # References
24
24
  # ----------
@@ -29,9 +29,11 @@ Examples of modeling IV curves using a single-diode circuit equivalent model.
29
29
  # -----------------------
30
30
  # This example uses :py:meth:`pvlib.pvsystem.calcparams_desoto` to calculate
31
31
  # the 5 electrical parameters needed to solve the single-diode equation.
32
- # :py:meth:`pvlib.pvsystem.singlediode` is then used to generate the IV curves.
32
+ # :py:meth:`pvlib.pvsystem.singlediode` and :py:meth:`pvlib.pvsystem.i_from_v`
33
+ # are used to generate the IV curves.
33
34
 
34
35
  from pvlib import pvsystem
36
+ import numpy as np
35
37
  import pandas as pd
36
38
  import matplotlib.pyplot as plt
37
39
 
@@ -88,26 +90,27 @@ IL, I0, Rs, Rsh, nNsVth = pvsystem.calcparams_desoto(
88
90
  )
89
91
 
90
92
  # plug the parameters into the SDE and solve for IV curves:
91
- curve_info = pvsystem.singlediode(
92
- photocurrent=IL,
93
- saturation_current=I0,
94
- resistance_series=Rs,
95
- resistance_shunt=Rsh,
96
- nNsVth=nNsVth,
97
- ivcurve_pnts=100,
98
- method='lambertw'
99
- )
93
+ SDE_params = {
94
+ 'photocurrent': IL,
95
+ 'saturation_current': I0,
96
+ 'resistance_series': Rs,
97
+ 'resistance_shunt': Rsh,
98
+ 'nNsVth': nNsVth
99
+ }
100
+ curve_info = pvsystem.singlediode(method='lambertw', **SDE_params)
101
+ v = pd.DataFrame(np.linspace(0., curve_info['v_oc'], 100))
102
+ i = pd.DataFrame(pvsystem.i_from_v(voltage=v, method='lambertw', **SDE_params))
100
103
 
101
104
  # plot the calculated curves:
102
105
  plt.figure()
103
- for i, case in conditions.iterrows():
106
+ for idx, case in conditions.iterrows():
104
107
  label = (
105
108
  "$G_{eff}$ " + f"{case['Geff']} $W/m^2$\n"
106
109
  "$T_{cell}$ " + f"{case['Tcell']} $\\degree C$"
107
110
  )
108
- plt.plot(curve_info['v'][i], curve_info['i'][i], label=label)
109
- v_mp = curve_info['v_mp'][i]
110
- i_mp = curve_info['i_mp'][i]
111
+ plt.plot(v[idx], i[idx], label=label)
112
+ v_mp = curve_info['v_mp'][idx]
113
+ i_mp = curve_info['i_mp'][idx]
111
114
  # mark the MPP
112
115
  plt.plot([v_mp], [i_mp], ls='', marker='o', c='k')
113
116
 
@@ -40,9 +40,10 @@ import pvlib
40
40
  DATA_DIR = pathlib.Path(pvlib.__file__).parent / 'data'
41
41
 
42
42
  # get TMY3 data with rain
43
- greensboro, _ = read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990)
43
+ greensboro, _ = read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990,
44
+ map_variables=True)
44
45
  # get the rain data
45
- greensboro_rain = greensboro.Lprecipdepth
46
+ greensboro_rain = greensboro['Lprecip depth (mm)']
46
47
  # calculate soiling with no wash dates and cleaning threshold of 25-mm of rain
47
48
  THRESHOLD = 25.0
48
49
  soiling_no_wash = kimber(greensboro_rain, cleaning_threshold=THRESHOLD)
@@ -19,7 +19,7 @@ Please see the :ref:`installation` page for installation help.
19
19
 
20
20
  For examples of how to use pvlib python, please see
21
21
  :ref:`package_overview` and our `Jupyter Notebook tutorials
22
- <http://nbviewer.ipython.org/github/pvlib/pvlib-python/tree/main/docs/
22
+ <http://nbviewer.org/github/pvlib/pvlib-python/tree/main/docs/
23
23
  tutorials/>`_. The documentation assumes general familiarity with
24
24
  Python, NumPy, and Pandas. Google searches will yield many
25
25
  excellent tutorials for these packages.
@@ -74,7 +74,7 @@ Additional pvlib python publications include:
74
74
  (`paper
75
75
  <https://github.com/pvlib/pvsc2015/blob/main/pvlib_pvsc_42.pdf>`__ and
76
76
  the `notebook to reproduce the figures
77
- <http://nbviewer.ipython.org/github/pvlib/pvsc2015/blob/main/paper.ipynb>`_)
77
+ <http://nbviewer.org/github/pvlib/pvsc2015/blob/main/paper.ipynb>`_)
78
78
  * J.S. Stein, W.F. Holmgren, J. Forbess, and C.W. Hansen,
79
79
  "PVLIB: Open Source Photovoltaic Performance Modeling Functions
80
80
  for Matlab and Python," in 43rd Photovoltaic Specialists Conference, 2016.
@@ -0,0 +1,25 @@
1
+ .. currentmodule:: pvlib
2
+
3
+ Bifacial
4
+ ========
5
+
6
+ Functions for calculating front and back surface irradiance
7
+
8
+ .. autosummary::
9
+ :toctree: generated/
10
+
11
+ bifacial.pvfactors.pvfactors_timeseries
12
+ bifacial.infinite_sheds.get_irradiance
13
+ bifacial.infinite_sheds.get_irradiance_poa
14
+
15
+ Utility functions for bifacial modeling
16
+
17
+ .. autosummary::
18
+ :toctree: generated/
19
+
20
+ bifacial.utils.vf_row_sky_2d
21
+ bifacial.utils.vf_row_sky_2d_integ
22
+ bifacial.utils.vf_row_ground_2d
23
+ bifacial.utils.vf_row_ground_2d_integ
24
+ bifacial.utils.vf_ground_sky_2d
25
+ bifacial.utils.vf_ground_sky_2d_integ
@@ -19,6 +19,5 @@ the :ref:`pvsystemdoc` and :ref:`modelchaindoc` pages.
19
19
  pvsystem.Array
20
20
  pvsystem.FixedMount
21
21
  pvsystem.SingleAxisTrackerMount
22
- tracking.SingleAxisTracker
23
22
  modelchain.ModelChain
24
23
  modelchain.ModelChainResult
@@ -6,6 +6,7 @@ Shading
6
6
  .. autosummary::
7
7
  :toctree: ../generated/
8
8
 
9
+ shading.ground_angle
9
10
  shading.masking_angle
10
11
  shading.masking_angle_passias
11
12
  shading.sky_diffuse_passias
@@ -10,3 +10,6 @@ Spectrum
10
10
  spectrum.get_example_spectral_response
11
11
  spectrum.get_am15g
12
12
  spectrum.calc_spectral_mismatch_field
13
+ spectrum.spectral_factor_caballero
14
+ spectrum.spectral_factor_firstsolar
15
+ spectrum.spectral_factor_sapm
@@ -16,7 +16,6 @@ API reference
16
16
  effects_on_pv_system_output/index
17
17
  tracking
18
18
  iotools
19
- forecasting
20
19
  modelchain
21
20
  bifacial
22
21
  scaling
@@ -17,11 +17,10 @@ of sources and file formats relevant to solar energy modeling.
17
17
  iotools.parse_epw
18
18
  iotools.read_srml
19
19
  iotools.read_srml_month_from_solardat
20
+ iotools.get_srml
20
21
  iotools.read_surfrad
21
22
  iotools.read_midc
22
23
  iotools.read_midc_raw_data_from_nrel
23
- iotools.read_ecmwf_macc
24
- iotools.get_ecmwf_macc
25
24
  iotools.read_crn
26
25
  iotools.read_solrad
27
26
  iotools.get_psm3
@@ -31,12 +30,18 @@ of sources and file formats relevant to solar energy modeling.
31
30
  iotools.read_pvgis_tmy
32
31
  iotools.get_pvgis_hourly
33
32
  iotools.read_pvgis_hourly
33
+ iotools.get_pvgis_horizon
34
34
  iotools.get_bsrn
35
35
  iotools.read_bsrn
36
36
  iotools.parse_bsrn
37
37
  iotools.get_cams
38
38
  iotools.read_cams
39
39
  iotools.parse_cams
40
+ iotools.get_acis_prism
41
+ iotools.get_acis_nrcc
42
+ iotools.get_acis_mpe
43
+ iotools.get_acis_station_data
44
+ iotools.get_acis_available_stations
40
45
 
41
46
  A :py:class:`~pvlib.location.Location` object may be created from metadata
42
47
  in some files.
@@ -9,4 +9,3 @@ Methods for irradiance calculations
9
9
  pvsystem.PVSystem.get_irradiance
10
10
  pvsystem.PVSystem.get_aoi
11
11
  pvsystem.PVSystem.get_iam
12
- tracking.SingleAxisTracker.get_irradiance
@@ -12,6 +12,9 @@ DNI estimation models
12
12
  irradiance.dirint
13
13
  irradiance.dirindex
14
14
  irradiance.erbs
15
+ irradiance.orgill_hollands
15
16
  irradiance.boland
16
17
  irradiance.campbell_norman
17
18
  irradiance.gti_dirint
19
+ irradiance.louche
20
+
@@ -9,3 +9,4 @@ Methods for manipulating irradiance for temporal or spatial considerations
9
9
  :toctree: generated/
10
10
 
11
11
  scaling.wvm
12
+ scaling.latlon_to_xy
@@ -0,0 +1,15 @@
1
+ .. currentmodule:: pvlib
2
+
3
+ Tracking
4
+ ========
5
+
6
+ Functions
7
+ ---------
8
+
9
+ .. autosummary::
10
+ :toctree: generated/
11
+
12
+ tracking.singleaxis
13
+ tracking.calc_axis_tilt
14
+ tracking.calc_cross_axis_tilt
15
+ tracking.calc_surface_orientation
@@ -216,25 +216,26 @@ wavelengths [Bir80]_, and is implemented in
216
216
 
217
217
  In [1]: tmy_file = os.path.join(pvlib_data, '703165TY.csv') # TMY file
218
218
 
219
- In [1]: tmy_data, tmy_header = read_tmy3(tmy_file, coerce_year=1999) # read TMY data
219
+ In [1]: tmy_data, tmy_header = read_tmy3(tmy_file, coerce_year=1999, map_variables=True)
220
220
 
221
221
  In [1]: tl_historic = clearsky.lookup_linke_turbidity(time=tmy_data.index,
222
222
  ...: latitude=tmy_header['latitude'], longitude=tmy_header['longitude'])
223
223
 
224
224
  In [1]: solpos = solarposition.get_solarposition(time=tmy_data.index,
225
225
  ...: latitude=tmy_header['latitude'], longitude=tmy_header['longitude'],
226
- ...: altitude=tmy_header['altitude'], pressure=tmy_data['Pressure']*mbars,
227
- ...: temperature=tmy_data['DryBulb'])
226
+ ...: altitude=tmy_header['altitude'], pressure=tmy_data['pressure']*mbars,
227
+ ...: temperature=tmy_data['temp_air'])
228
228
 
229
229
  In [1]: am_rel = atmosphere.get_relative_airmass(solpos.apparent_zenith)
230
230
 
231
- In [1]: am_abs = atmosphere.get_absolute_airmass(am_rel, tmy_data['Pressure']*mbars)
231
+ In [1]: am_abs = atmosphere.get_absolute_airmass(am_rel, tmy_data['pressure']*mbars)
232
232
 
233
233
  In [1]: airmass = pd.concat([am_rel, am_abs], axis=1).rename(
234
234
  ...: columns={0: 'airmass_relative', 1: 'airmass_absolute'})
235
235
 
236
236
  In [1]: tl_calculated = atmosphere.kasten96_lt(
237
- ...: airmass.airmass_absolute, tmy_data['Pwat'], tmy_data['AOD'])
237
+ ...: airmass.airmass_absolute, tmy_data['precipitable_water'],
238
+ ...: tmy_data['AOD (unitless)'])
238
239
 
239
240
  In [1]: tl = pd.concat([tl_historic, tl_calculated], axis=1).rename(
240
241
  ...: columns={0:'Historic', 1:'Calculated'})
@@ -376,7 +377,8 @@ derived from surface relative humidity using functions such as
376
377
  :py:func:`pvlib.atmosphere.gueymard94_pw`.
377
378
  Numerous gridded products from satellites, weather models, and climate models
378
379
  contain one or both of aerosols and precipitable water. Consider data
379
- from the `ECMWF <https://software.ecmwf.int/wiki/display/WEBAPI/Access+ECMWF+Public+Datasets>`_
380
+ from the `ECMWF ERA5 <https://www.ecmwf.int/en/forecasts/dataset/ecmwf-reanalysis-v5>`_,
381
+ `NASA MERRA-2 <https://gmao.gsfc.nasa.gov/reanalysis/MERRA-2/>`_,
380
382
  and `SoDa <http://www.soda-pro.com/web-services/radiation/cams-mcclear>`_.
381
383
 
382
384
  Aerosol optical depth (AOD) is a function of wavelength, and the Simplified
@@ -17,8 +17,8 @@ will require the efforts of the larger pvlib-python community, not just
17
17
  the maintainers. Therefore, do not expect feature parity between the
18
18
  libaries, only similarity.
19
19
 
20
- The `PV_LIB Matlab help webpage <https://pvpmc.sandia.gov/PVLIB_Matlab_Help/>`_
21
- is a good reference for this comparison.
20
+ The `PV_LIB Matlab help pages <https://github.com/sandialabs/MATLAB_PV_LIB/>`_
21
+ are a good reference for this comparison.
22
22
 
23
23
  Missing functions
24
24
  ~~~~~~~~~~~~~~~~~
@@ -54,7 +54,6 @@ Major differences
54
54
  * pvlib-python implements a handful of class designed to simplify the
55
55
  PV modeling process. These include :py:class:`~pvlib.location.Location`,
56
56
  :py:class:`~pvlib.pvsystem.PVSystem`,
57
- :py:class:`~pvlib.tracking.SingleAxisTracker`,
58
57
  and
59
58
  :py:class:`~pvlib.modelchain.ModelChain`.
60
59
 
@@ -14,7 +14,6 @@ User Guide
14
14
  timetimezones
15
15
  clearsky
16
16
  bifacial
17
- forecasts
18
17
  comparison_pvlib_matlab
19
18
  variables_style_rules
20
19
  singlediode
@@ -77,7 +77,7 @@ non-editable way, use one of the following commands to install pvlib-python::
77
77
 
78
78
  By default, pvlib will not install some infrequently used dependencies.
79
79
  If you run into an error such as
80
- `ModuleNotFoundError: No module named 'netCDF4'`
80
+ `ModuleNotFoundError: No module named 'statsmodels'`
81
81
  you can either install pvlib with all optional dependencies using
82
82
  `pip install pvlib[optional]`, or you can install pvlib from conda-forge
83
83
  `conda create -n pvlib -c conda-forge pvlib; conda activate pvlib`.
@@ -234,7 +234,6 @@ include:
234
234
  * statsmodels: parameter fitting
235
235
  * numba: fastest solar position calculations
236
236
  * pyephem: solar positions calculations using an astronomical library
237
- * siphon: forecasting PV power using the pvlib.forecast module
238
237
 
239
238
  The Anaconda distribution includes most of the above packages.
240
239
 
@@ -57,8 +57,7 @@ includes irradiation, temperature and wind speed.
57
57
  tmys = []
58
58
  for location in coordinates:
59
59
  latitude, longitude, name, altitude, timezone = location
60
- weather = pvlib.iotools.get_pvgis_tmy(latitude, longitude,
61
- map_variables=True)[0]
60
+ weather = pvlib.iotools.get_pvgis_tmy(latitude, longitude)[0]
62
61
  weather.index.name = "utc_time"
63
62
  tmys.append(weather)
64
63
 
@@ -323,16 +323,3 @@ methods that calculate system losses. At present, these methods include
323
323
  only :py:meth:`pvlib.pvsystem.PVSystem.pvwatts_losses` and
324
324
  :py:func:`pvlib.pvsystem.pvwatts_losses`, but we hope to add more related functions
325
325
  and methods in the future.
326
-
327
-
328
- .. _sat:
329
-
330
- SingleAxisTracker
331
- -----------------
332
-
333
- The :py:class:`~pvlib.tracking.SingleAxisTracker` is a subclass of
334
- :py:class:`~pvlib.pvsystem.PVSystem`. The SingleAxisTracker class
335
- includes a few more keyword arguments and attributes that are specific
336
- to trackers, plus the
337
- :py:meth:`~pvlib.tracking.SingleAxisTracker.singleaxis` method. It also
338
- overrides the `get_aoi` and `get_irradiance` methods.
@@ -272,7 +272,7 @@ Let's first examine how pvlib handles time when it imports a TMY3 file.
272
272
  # some gymnastics to find the example file
273
273
  pvlib_abspath = os.path.dirname(os.path.abspath(inspect.getfile(pvlib)))
274
274
  file_abspath = os.path.join(pvlib_abspath, 'data', '703165TY.csv')
275
- tmy3_data, tmy3_metadata = pvlib.iotools.read_tmy3(file_abspath)
275
+ tmy3_data, tmy3_metadata = pvlib.iotools.read_tmy3(file_abspath, map_variables=True)
276
276
 
277
277
  tmy3_metadata
278
278
 
@@ -287,7 +287,7 @@ print just a few of the rows and columns of the large dataframe.
287
287
 
288
288
  tmy3_data.index.tz
289
289
 
290
- tmy3_data.loc[tmy3_data.index[0:3], ['GHI', 'DNI', 'AOD']]
290
+ tmy3_data.loc[tmy3_data.index[0:3], ['ghi', 'dni', 'AOD (unitless)']]
291
291
 
292
292
  The :py:func:`~pvlib.iotools.read_tmy2` function also returns a DataFrame
293
293
  with a localized DatetimeIndex.