pvlib 0.13.1__tar.gz → 0.14.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.
- {pvlib-0.13.1/pvlib.egg-info → pvlib-0.14.0}/PKG-INFO +3 -3
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +2 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/shading/plot_simple_irradiance_adjustment_for_horizon_shading.py +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/spectrum/average_photon_energy.py +11 -10
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/system-models/plot_oedi_9068.py +6 -4
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +3 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/iotools.rst +21 -3
- pvlib-0.14.0/docs/sphinx/source/reference/irradiance/angle-of-incidence.rst +10 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/irradiance/clearness-index.rst +2 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/irradiance/decomposition.rst +2 -4
- pvlib-0.14.0/docs/sphinx/source/reference/irradiance/extraterrestrial-radiation.rst +9 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/irradiance/index.rst +5 -4
- pvlib-0.13.1/docs/sphinx/source/reference/irradiance/albedo.rst → pvlib-0.14.0/docs/sphinx/source/reference/irradiance/other.rst +5 -2
- pvlib-0.14.0/docs/sphinx/source/reference/irradiance/reverse-transposition.rst +10 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/irradiance/transposition.rst +3 -1
- pvlib-0.14.0/docs/sphinx/source/reference/location.rst +31 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/pv_modeling/sdm.rst +2 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/pv_modeling/system_models.rst +8 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/extras/faq.rst +1 -9
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/getting_started/installation.rst +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/index.rst +1 -0
- pvlib-0.14.0/docs/sphinx/source/user_guide/modeling_topics/singlediode.rst +217 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/modeling_topics/spectrum.rst +20 -7
- pvlib-0.14.0/docs/sphinx/source/user_guide/modeling_topics/temperature.rst +107 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/modeling_topics/weather_data.rst +3 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.10.0.rst +3 -3
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.10.2.rst +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.10.3.rst +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.11.0.rst +3 -3
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.12.0.rst +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.13.0.rst +1 -1
- pvlib-0.14.0/docs/sphinx/source/whatsnew/v0.14.0.rst +80 -0
- pvlib-0.14.0/docs/sphinx/source/whatsnew/v0.14.1.rst +45 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.7.0.rst +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.7.1.rst +2 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.8.0.rst +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.8.1.rst +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.9.0.rst +2 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.9.1.rst +2 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.9.2.rst +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.9.5.rst +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew.rst +1 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/bifacial/infinite_sheds.py +3 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/inverter.py +2 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/__init__.py +2 -3
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/acis.py +2 -2
- pvlib-0.14.0/pvlib/iotools/era5.py +207 -0
- pvlib-0.14.0/pvlib/iotools/merra2.py +196 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/psm4.py +0 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/irradiance.py +26 -25
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/ivtools/sdm/__init__.py +2 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/ivtools/sdm/desoto.py +72 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/pvarray.py +130 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/pvsystem.py +135 -46
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/singlediode.py +249 -52
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/solarposition.py +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spa.py +1 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spectrum/__init__.py +3 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spectrum/mismatch.py +101 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/temperature.py +11 -12
- {pvlib-0.13.1 → pvlib-0.14.0/pvlib.egg-info}/PKG-INFO +3 -3
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib.egg-info/SOURCES.txt +11 -6
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib.egg-info/requires.txt +2 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/pyproject.toml +5 -3
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/conftest.py +39 -0
- pvlib-0.14.0/tests/iotools/test_era5.py +94 -0
- pvlib-0.14.0/tests/iotools/test_merra2.py +111 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_meteonorm.py +21 -11
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_sodapro.py +2 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_solargis.py +2 -1
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/ivtools/sdm/test_desoto.py +24 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/ivtools/test_sde.py +3 -3
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/spectrum/test_mismatch.py +87 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_irradiance.py +19 -21
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_modelchain.py +14 -2
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_pvarray.py +39 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_pvsystem.py +84 -41
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_singlediode.py +83 -14
- pvlib-0.13.1/docs/sphinx/source/reference/irradiance/class-methods.rst +0 -11
- pvlib-0.13.1/docs/sphinx/source/reference/irradiance/components.rst +0 -17
- pvlib-0.13.1/docs/sphinx/source/reference/location.rst +0 -11
- pvlib-0.13.1/docs/sphinx/source/user_guide/modeling_topics/singlediode.rst +0 -114
- pvlib-0.13.1/pvlib/iotools/psm3.py +0 -365
- pvlib-0.13.1/scripts/update_top_ranking_issues.py +0 -81
- pvlib-0.13.1/tests/iotools/test_psm3.py +0 -191
- {pvlib-0.13.1 → pvlib-0.14.0}/AUTHORS.md +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/LICENSE +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/MANIFEST.in +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/README.md +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/adr-pvarray/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/adr-pvarray/plot_fit_to_matrix.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/adr-pvarray/plot_simulate_fast.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/adr-pvarray/plot_simulate_system.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/agrivoltaics/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/agrivoltaics/plot_agrivoltaics_ground_irradiance.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/agrivoltaics/plot_diffuse_PAR_Spitters_relationship.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/bifacial/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/bifacial/plot_bifi_model_mc.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/bifacial/plot_irradiance_nonuniformity_loss.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/floating-pv/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/floating-pv/plot_floating_pv_cell_temperature.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-decomposition/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-transposition/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-transposition/plot_rtranpose_limitations.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-transposition/plot_rtranpose_year.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-transposition/plot_transposition_gain.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-transposition/use_perez_modelchain.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/iv-modeling/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/iv-modeling/plot_singlediode.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/reflections/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/reflections/plot_convert_iam_models.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/reflections/plot_fit_iam_models.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/shading/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/shading/plot_martinez_shade_loss.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/shading/plot_partial_module_shading_simple.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/shading/plot_shaded_fraction1d_ns_hsat_example.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/soiling/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/solar-position/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/solar-position/plot_sunpath_diagrams.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/solar-tracking/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/spectrum/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/spectrum/plot_spectrl2_fig51A.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/spectrum/plot_standard_ASTM_G173-03.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/spectrum/spectral_factor.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/system-models/README.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/notes/Determining the average view factor from a module.pdf +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/Makefile +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/make.bat +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/Anderson_Jensen_2024_Fig3.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/Anderson_Mikofski_2020_Fig5.jpg +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/OEDI_9068_daily_timeseries.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/OEDI_9068_inverter1_comparison.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/OEDI_9068_inverter2_comparison.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/PV_module_layout_cesardd.jpg +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/agrivoltaics_system.jpg +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/clonebutton.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/example_function_screenshot.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_static/reference_format.css +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_static/tooltipster_color_theming.css +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_static/version-alert.js +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/_templates/edit-this-page.html +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/conf.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/contributing/how_to_contribute_new_code.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/contributing/index.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/contributing/introduction_to_contributing.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/contributing/style_guide.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/contributing/testing.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/index.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/airmass_atmospheric.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/bifacial.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/classes.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/clearsky.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/index.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/modelchain.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/pv_modeling/iam.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/pv_modeling/index.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/pv_modeling/inverter.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/pv_modeling/other.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/pv_modeling/parameters.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/pv_modeling/temperature.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/scaling.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/solarposition.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/tracking.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/transformer.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/extras/nomenclature.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/getting_started/introtutorial.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/getting_started/package_overview.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/modeling_topics/bifacial.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/modeling_topics/clearsky.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/modeling_topics/modelchain.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/modeling_topics/pvsystem.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/modeling_topics/timetimezones.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.10.1.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.10.4.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.10.5.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.11.1.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.11.2.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.13.1.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.3.0.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.6.1.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.7.2.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.9.3.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/whatsnew/v0.X.Y-example.rst +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/tutorials/atmosphere.ipynb +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/tutorials/irradiance.ipynb +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/tutorials/pvsystem.ipynb +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/tutorials/solarposition.ipynb +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/tutorials/tmy.ipynb +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/tutorials/tmy_to_power.ipynb +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/docs/tutorials/tracking.ipynb +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/__init__.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/_deprecation.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/albedo.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/atmosphere.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/bifacial/__init__.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/bifacial/loss_models.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/bifacial/pvfactors.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/bifacial/utils.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/clearsky.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/12839.tm2 +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/703165TY.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/723170TYA.CSV +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/ASTMG173.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/Altitude.h5 +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/LinkeTurbidities.h5 +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iam.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/bsrn.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/crn.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/epw.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/meteonorm.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/midc.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/nasa_power.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/panond.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/pvgis.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/sodapro.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/solaranywhere.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/solargis.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/solcast.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/solrad.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/srml.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/surfrad.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/iotools/tmy.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/ivtools/__init__.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/ivtools/sde.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/ivtools/sdm/_fit_desoto_pvsyst_sandia.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/ivtools/sdm/cec.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/ivtools/sdm/pvsyst.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/ivtools/utils.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/location.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/modelchain.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/scaling.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/shading.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/snow.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/soiling.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spa_c_files/README.md +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spa_c_files/__init__.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spa_c_files/cspa_py.pxd +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spa_c_files/setup.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spa_c_files/spa_py.pyx +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spa_c_files/spa_py_example.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spectrum/irradiance.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spectrum/response.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/spectrum/spectrl2.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/tools.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/tracking.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/transformer.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib/version.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib.egg-info/dependency_links.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/pvlib.egg-info/top_level.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/setup.cfg +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/setup.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/__init__.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/bifacial/__init__.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/bifacial/test_infinite_sheds.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/bifacial/test_losses_models.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/bifacial/test_pvfactors.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/bifacial/test_utils.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/BIRD_08_16_2012.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/BIRD_08_16_2012_patm.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/CPS SCH275KTL-DO-US-800-250kW_275kVA_1.OND +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/CRN_with_problems.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/ET-M772BH550GL.PAN +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/NLD_Amsterdam062400_IWEC.epw +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/PVsyst_demo.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/PVsyst_demo_model.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/SRML-day-EUPO1801.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/abq19056.dat +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/bishop88_numerical_precision.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/bsrn-lr0100-pay0616.dat +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/bsrn-pay0616.dat.gz +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/cams_mcclear_1min_verbose.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/cams_mcclear_monthly.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/cams_radiation_1min_verbose.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/cams_radiation_monthly.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/detect_clearsky_data.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/detect_clearsky_threshold_data.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/greensboro_kimber_soil_manwash.dat +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/greensboro_kimber_soil_nowash.dat +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/inverter_fit_snl_meas.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/inverter_fit_snl_sim.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/ivtools_numdiff.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/midc_20181014.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/midc_raw_20181018.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/midc_raw_short_header_20191115.txt +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/msn19056.dat +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/precise_iv_curves1.json +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/precise_iv_curves2.json +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/precise_iv_curves_parameter_sets1.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/precise_iv_curves_parameter_sets2.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/pvgis_tmy_meta.json +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/pvgis_tmy_test.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/pvwatts_8760_rackmount.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/pvwatts_8760_roofmount.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/singleaxis_tracker_wslope.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/spectrl2_example_spectra.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/surfrad-slv16001.dat +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_psm3_2017.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_psm3_2019_5min.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_psm3_tmy-2017.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_psm4_2023.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_psm4_2023_5min.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_psm4_full_disc_2023.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_psm4_tmy-2023.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_read_psm3.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_read_psm4.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/test_read_pvgis_horizon.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/tmy_45.000_8.000_2005_2023.csv +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/tmy_45.000_8.000_2005_2023.epw +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/tmy_45.000_8.000_2005_2023.json +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/data/tmy_45.000_8.000_userhorizon.json +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/__init__.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_acis.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_bsrn.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_crn.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_epw.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_midc.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_nasa_power.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_panond.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_psm4.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_pvgis.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_solaranywhere.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_solcast.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_solrad.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_srml.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_surfrad.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/iotools/test_tmy.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/ivtools/__init__.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/ivtools/sdm/conftest.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/ivtools/sdm/test__fit_desoto_pvsyst_sandia.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/ivtools/sdm/test_cec.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/ivtools/sdm/test_pvsyst.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/ivtools/test_utils.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/spectrum/__init__.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/spectrum/conftest.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/spectrum/test_irradiance.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/spectrum/test_response.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/spectrum/test_spectrl2.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test__deprecation.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_albedo.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_atmosphere.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_clearsky.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_conftest.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_iam.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_inverter.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_location.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_numerical_precision.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_scaling.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_shading.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_snow.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_soiling.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_solarposition.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_spa.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_temperature.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_tools.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_tracking.py +0 -0
- {pvlib-0.13.1 → pvlib-0.14.0}/tests/test_transformer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pvlib
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.14.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>
|
|
@@ -29,7 +29,7 @@ Requires-Dist: cython; extra == "optional"
|
|
|
29
29
|
Requires-Dist: ephem; extra == "optional"
|
|
30
30
|
Requires-Dist: nrel-pysam; extra == "optional"
|
|
31
31
|
Requires-Dist: numba>=0.17.0; extra == "optional"
|
|
32
|
-
Requires-Dist: solarfactors; extra == "optional"
|
|
32
|
+
Requires-Dist: solarfactors>=1.6.1; extra == "optional"
|
|
33
33
|
Requires-Dist: statsmodels; extra == "optional"
|
|
34
34
|
Provides-Extra: doc
|
|
35
35
|
Requires-Dist: ipython; extra == "doc"
|
|
@@ -42,7 +42,7 @@ Requires-Dist: docutils==0.21; extra == "doc"
|
|
|
42
42
|
Requires-Dist: pillow; extra == "doc"
|
|
43
43
|
Requires-Dist: sphinx-toggleprompt==0.5.2; extra == "doc"
|
|
44
44
|
Requires-Dist: sphinx-favicon; extra == "doc"
|
|
45
|
-
Requires-Dist: solarfactors; extra == "doc"
|
|
45
|
+
Requires-Dist: solarfactors>=1.6.1; extra == "doc"
|
|
46
46
|
Requires-Dist: sphinx-hoverxref~=1.4.2; extra == "doc"
|
|
47
47
|
Provides-Extra: test
|
|
48
48
|
Requires-Dist: pytest; extra == "test"
|
{pvlib-0.13.1 → pvlib-0.14.0}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py
RENAMED
|
@@ -44,7 +44,7 @@ solpos.index = greensboro.index # reset index to end of the hour
|
|
|
44
44
|
# %%
|
|
45
45
|
# pvlib Decomposition Functions
|
|
46
46
|
# -----------------------------
|
|
47
|
-
# Methods for separating
|
|
47
|
+
# Methods for separating GHI into diffuse and direct components include:
|
|
48
48
|
# `DISC`_, `DIRINT`_, `Erbs`_, and `Boland`_.
|
|
49
49
|
|
|
50
50
|
# %%
|
|
@@ -112,7 +112,7 @@ out_boland = out_boland.rename(
|
|
|
112
112
|
# ----------------
|
|
113
113
|
# In the plots below we compare the four decomposition models to the TMY3 file
|
|
114
114
|
# for Greensboro, North Carolina. We also compare the clearness index, kt, with
|
|
115
|
-
# GHI normalized by a reference irradiance, E0 = 1000 [
|
|
115
|
+
# GHI normalized by a reference irradiance, E0 = 1000 [Wm⁻²], to highlight
|
|
116
116
|
# spikes caused when cosine of zenith approaches zero, particularly at sunset.
|
|
117
117
|
#
|
|
118
118
|
# First we combine the dataframes for the decomposition models and the TMY3
|
|
@@ -14,7 +14,7 @@ solar-position data, and adjust DNI and POA-global irradiance.
|
|
|
14
14
|
# After location information and a date range is established, solar position
|
|
15
15
|
# data is calculated using :py:func:`pvlib.solarposition.get_solarposition`.
|
|
16
16
|
# Horizon data is assigned, and interpolated to the solar azimuth time
|
|
17
|
-
# series data. Finally, in times when solar elevation is
|
|
17
|
+
# series data. Finally, in times when solar elevation is less than the
|
|
18
18
|
# interpolated horizon elevation angle, DNI is set to 0.
|
|
19
19
|
|
|
20
20
|
import numpy as np
|
|
@@ -11,8 +11,8 @@ Calculation of the Average Photon Energy from SPECTRL2 output.
|
|
|
11
11
|
# This example demonstrates how to use the
|
|
12
12
|
# :py:func:`~pvlib.spectrum.average_photon_energy` function to calculate the
|
|
13
13
|
# Average Photon Energy (APE, :math:`\overline{E_\gamma}`) of spectral
|
|
14
|
-
# irradiance distributions. This example uses spectral irradiance
|
|
15
|
-
# using :py:func:`~pvlib.spectrum.spectrl2`, but the same method is
|
|
14
|
+
# irradiance distributions. This example uses clearsky spectral irradiance
|
|
15
|
+
# simulated using :py:func:`~pvlib.spectrum.spectrl2`, but the same method is
|
|
16
16
|
# applicable to spectral irradiance from any source.
|
|
17
17
|
# More information on the SPECTRL2 model can be found in [1]_.
|
|
18
18
|
# The APE parameter is a useful indicator of the overall shape of the solar
|
|
@@ -35,18 +35,19 @@ from scipy.integrate import trapezoid
|
|
|
35
35
|
from pvlib import spectrum, solarposition, irradiance, atmosphere
|
|
36
36
|
|
|
37
37
|
lat, lon = 39.742, -105.18 # NREL SRRL location
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
surface_tilt = 25
|
|
39
|
+
surface_azimuth = 180 # south-facing system
|
|
40
40
|
pressure = 81190 # at 1828 metres AMSL, roughly
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
precipitable_water = 0.5 # cm
|
|
42
|
+
aerosol_turbidity_500nm = 0.1
|
|
43
43
|
ozone = 0.31 # atm-cm
|
|
44
44
|
albedo = 0.2
|
|
45
45
|
|
|
46
46
|
times = pd.date_range('2023-01-01 08:00', freq='h', periods=9,
|
|
47
47
|
tz='America/Denver')
|
|
48
48
|
solpos = solarposition.get_solarposition(times, lat, lon)
|
|
49
|
-
aoi = irradiance.aoi(
|
|
49
|
+
aoi = irradiance.aoi(surface_tilt, surface_azimuth,
|
|
50
|
+
solpos.apparent_zenith, solpos.azimuth)
|
|
50
51
|
|
|
51
52
|
relative_airmass = atmosphere.get_relative_airmass(solpos.apparent_zenith,
|
|
52
53
|
model='kastenyoung1989')
|
|
@@ -64,13 +65,13 @@ relative_airmass = atmosphere.get_relative_airmass(solpos.apparent_zenith,
|
|
|
64
65
|
spectra_components = spectrum.spectrl2(
|
|
65
66
|
apparent_zenith=solpos.apparent_zenith,
|
|
66
67
|
aoi=aoi,
|
|
67
|
-
surface_tilt=
|
|
68
|
+
surface_tilt=surface_tilt,
|
|
68
69
|
ground_albedo=albedo,
|
|
69
70
|
surface_pressure=pressure,
|
|
70
71
|
relative_airmass=relative_airmass,
|
|
71
|
-
precipitable_water=
|
|
72
|
+
precipitable_water=precipitable_water,
|
|
72
73
|
ozone=ozone,
|
|
73
|
-
aerosol_turbidity_500nm=
|
|
74
|
+
aerosol_turbidity_500nm=aerosol_turbidity_500nm,
|
|
74
75
|
)
|
|
75
76
|
|
|
76
77
|
# %%
|
|
@@ -143,10 +143,12 @@ email = 'your_email@domain.com'
|
|
|
143
143
|
|
|
144
144
|
keys = ['ghi', 'dni', 'dhi', 'temp_air', 'wind_speed',
|
|
145
145
|
'albedo', 'precipitable_water']
|
|
146
|
-
psm3, psm3_metadata = pvlib.iotools.
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
psm3, psm3_metadata = pvlib.iotools.get_nsrdb_psm4_conus(latitude, longitude,
|
|
147
|
+
api_key, email,
|
|
148
|
+
year=2019, interval=5,
|
|
149
|
+
parameters=keys,
|
|
150
|
+
map_variables=True,
|
|
151
|
+
leap_day=True)
|
|
150
152
|
|
|
151
153
|
# %%
|
|
152
154
|
# Pre-generate some model inputs
|
{pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst
RENAMED
|
@@ -12,9 +12,10 @@ Spectrum
|
|
|
12
12
|
spectrum.calc_spectral_mismatch_field
|
|
13
13
|
spectrum.spectral_factor_caballero
|
|
14
14
|
spectrum.spectral_factor_firstsolar
|
|
15
|
-
spectrum.spectral_factor_sapm
|
|
16
|
-
spectrum.spectral_factor_pvspec
|
|
17
15
|
spectrum.spectral_factor_jrc
|
|
16
|
+
spectrum.spectral_factor_polo
|
|
17
|
+
spectrum.spectral_factor_pvspec
|
|
18
|
+
spectrum.spectral_factor_sapm
|
|
18
19
|
spectrum.sr_to_qe
|
|
19
20
|
spectrum.qe_to_sr
|
|
20
21
|
spectrum.average_photon_energy
|
|
@@ -81,9 +81,6 @@ Satellite-derived irradiance and weather data for the Americas.
|
|
|
81
81
|
iotools.get_nsrdb_psm4_conus
|
|
82
82
|
iotools.get_nsrdb_psm4_full_disc
|
|
83
83
|
iotools.read_nsrdb_psm4
|
|
84
|
-
iotools.get_psm3
|
|
85
|
-
iotools.read_psm3
|
|
86
|
-
iotools.parse_psm3
|
|
87
84
|
|
|
88
85
|
|
|
89
86
|
Commercial datasets
|
|
@@ -236,6 +233,27 @@ lower quality.
|
|
|
236
233
|
|
|
237
234
|
iotools.read_crn
|
|
238
235
|
|
|
236
|
+
ECMWF ERA5
|
|
237
|
+
^^^^^^^^^^
|
|
238
|
+
|
|
239
|
+
A global reanalysis dataset providing weather and solar resource data.
|
|
240
|
+
|
|
241
|
+
.. autosummary::
|
|
242
|
+
:toctree: generated/
|
|
243
|
+
|
|
244
|
+
iotools.get_era5
|
|
245
|
+
|
|
246
|
+
MERRA-2
|
|
247
|
+
^^^^^^^
|
|
248
|
+
|
|
249
|
+
A global reanalysis dataset providing weather, aerosol, and solar irradiance
|
|
250
|
+
data.
|
|
251
|
+
|
|
252
|
+
.. autosummary::
|
|
253
|
+
:toctree: generated/
|
|
254
|
+
|
|
255
|
+
iotools.get_merra2
|
|
256
|
+
|
|
239
257
|
|
|
240
258
|
Generic data file readers
|
|
241
259
|
-------------------------
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
.. _dniestmodels:
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
Decomposition models
|
|
6
|
+
--------------------
|
|
7
7
|
|
|
8
8
|
.. autosummary::
|
|
9
9
|
:toctree: ../generated/
|
|
@@ -16,6 +16,4 @@ DNI estimation models
|
|
|
16
16
|
irradiance.orgill_hollands
|
|
17
17
|
irradiance.boland
|
|
18
18
|
irradiance.campbell_norman
|
|
19
|
-
irradiance.gti_dirint
|
|
20
19
|
irradiance.louche
|
|
21
|
-
|
|
@@ -8,6 +8,9 @@ Transposition models
|
|
|
8
8
|
|
|
9
9
|
irradiance.get_total_irradiance
|
|
10
10
|
irradiance.get_sky_diffuse
|
|
11
|
+
irradiance.get_ground_diffuse
|
|
12
|
+
irradiance.beam_component
|
|
13
|
+
irradiance.poa_components
|
|
11
14
|
irradiance.isotropic
|
|
12
15
|
irradiance.perez
|
|
13
16
|
irradiance.perez_driesse
|
|
@@ -15,4 +18,3 @@ Transposition models
|
|
|
15
18
|
irradiance.klucher
|
|
16
19
|
irradiance.reindl
|
|
17
20
|
irradiance.king
|
|
18
|
-
irradiance.ghi_from_poa_driesse_2023
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
.. currentmodule:: pvlib
|
|
2
|
+
|
|
3
|
+
Location
|
|
4
|
+
========
|
|
5
|
+
|
|
6
|
+
Methods for information about locations.
|
|
7
|
+
|
|
8
|
+
.. autosummary::
|
|
9
|
+
:toctree: generated/
|
|
10
|
+
|
|
11
|
+
location.lookup_altitude
|
|
12
|
+
|
|
13
|
+
Classes
|
|
14
|
+
-------
|
|
15
|
+
.. autosummary::
|
|
16
|
+
:toctree: generated/
|
|
17
|
+
|
|
18
|
+
location.Location
|
|
19
|
+
|
|
20
|
+
A :py:class:`~pvlib.location.Location` object may be created from the
|
|
21
|
+
metadata returned by these file types:
|
|
22
|
+
|
|
23
|
+
.. autosummary::
|
|
24
|
+
:toctree: generated/
|
|
25
|
+
|
|
26
|
+
location.Location.from_tmy
|
|
27
|
+
location.Location.from_epw
|
|
28
|
+
|
|
29
|
+
Methods for calculating time series of certain variables for a given
|
|
30
|
+
location are available through this class.
|
|
31
|
+
|
|
@@ -17,6 +17,7 @@ Functions relevant for single diode models.
|
|
|
17
17
|
pvsystem.v_from_i
|
|
18
18
|
pvsystem.max_power_point
|
|
19
19
|
ivtools.sdm.pvsyst_temperature_coeff
|
|
20
|
+
singlediode.batzelis
|
|
20
21
|
|
|
21
22
|
Low-level functions for solving the single diode equation.
|
|
22
23
|
|
|
@@ -37,3 +38,4 @@ Functions for fitting diode models
|
|
|
37
38
|
ivtools.sde.fit_sandia_simple
|
|
38
39
|
ivtools.sdm.fit_cec_sam
|
|
39
40
|
ivtools.sdm.fit_desoto
|
|
41
|
+
ivtools.sdm.fit_desoto_batzelis
|
|
@@ -52,15 +52,7 @@ Where can I get irradiance data for my simulation?
|
|
|
52
52
|
|
|
53
53
|
pvlib has a module called iotools which has several functions for
|
|
54
54
|
retrieving irradiance data as well as reading standard file formats
|
|
55
|
-
such as EPW, TMY2, and TMY3.
|
|
56
|
-
consider NREL's NSRDB which can be accessed using the
|
|
57
|
-
:py:func:`pvlib.iotools.get_psm3` function and is available for
|
|
58
|
-
North America. For Europe and Africa, you may consider looking into
|
|
59
|
-
CAMS (:py:func:`pvlib.iotools.get_cams`).
|
|
60
|
-
PVGIS (:py:func:`pvlib.iotools.get_pvgis_hourly`) is another option, which
|
|
61
|
-
provides irradiance from several different databases with near global coverage.
|
|
62
|
-
pvlib also has functions for accessing a plethora of ground-measured
|
|
63
|
-
irradiance datasets, including the BSRN, SURFRAD, SRML, and NREL's MIDC.
|
|
55
|
+
such as EPW, TMY2, and TMY3. See :ref:`weatherdata`.
|
|
64
56
|
|
|
65
57
|
|
|
66
58
|
Can I use PVsyst (PAN/OND) files with pvlib?
|
{pvlib-0.13.1 → pvlib-0.14.0}/docs/sphinx/source/user_guide/getting_started/installation.rst
RENAMED
|
@@ -185,7 +185,7 @@ With your conda/virtual environment still active...
|
|
|
185
185
|
Consider installing pvlib using ``pip install -e .[all]`` so that
|
|
186
186
|
you can run the unit tests and build the documentation.
|
|
187
187
|
Your clone directory is probably similar to
|
|
188
|
-
``C:\Users\%USER%\Documents\GitHub\pvlib-python``(Windows) or
|
|
188
|
+
``C:\Users\%USER%\Documents\GitHub\pvlib-python`` (Windows) or
|
|
189
189
|
``/Users/%USER%/Documents/pvlib-python`` (Mac).
|
|
190
190
|
#. **Test** your installation by running ``python -c 'import pvlib'``.
|
|
191
191
|
You're good to go if it returns without an exception.
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
.. _singlediode:
|
|
2
|
+
|
|
3
|
+
Single diode models
|
|
4
|
+
===================
|
|
5
|
+
|
|
6
|
+
Single-diode models are a popular means of simulating the electrical output
|
|
7
|
+
of a PV module under any given irradiance and temperature conditions.
|
|
8
|
+
A single-diode model (SDM) pairs the single-diode equation (SDE) with a set of
|
|
9
|
+
auxiliary equations that predict the SDE parameters at any given irradiance
|
|
10
|
+
and temperature. All SDMs use the SDE, but their auxiliary equations differ.
|
|
11
|
+
For more background on SDMs, see the `PVPMC website
|
|
12
|
+
<https://pvpmc.sandia.gov/modeling-guide/2-dc-module-iv/single-diode-equivalent-circuit-models/>`_.
|
|
13
|
+
|
|
14
|
+
Three SDMs are currently available in pvlib: the CEC SDM, the PVsyst SDM,
|
|
15
|
+
and the De Soto SDM. pvlib splits these models into two steps. The first
|
|
16
|
+
is to compute the auxiliary equations using one of the following functions:
|
|
17
|
+
|
|
18
|
+
* CEC SDM: :py:func:`~pvlib.pvsystem.calcparams_cec`
|
|
19
|
+
* PVsyst SDM: :py:func:`~pvlib.pvsystem.calcparams_pvsyst`
|
|
20
|
+
* De Soto SDM: :py:func:`~pvlib.pvsystem.calcparams_desoto`
|
|
21
|
+
|
|
22
|
+
The second step is to use the output of these functions to compute points on
|
|
23
|
+
the SDE's I-V curve. Three points on the SDE I-V curve are typically of special
|
|
24
|
+
interest for PV modeling: the maximum power (MP), open circuit (OC), and
|
|
25
|
+
short circuit (SC) points. The most convenient function for computing these
|
|
26
|
+
points is :py:func:`pvlib.pvsystem.singlediode`. It provides several methods
|
|
27
|
+
for solving the SDE:
|
|
28
|
+
|
|
29
|
+
+------------------+------------+-----------+-------------------------+
|
|
30
|
+
| Method | Type | Speed | Guaranteed convergence? |
|
|
31
|
+
+==================+============+===========+=========================+
|
|
32
|
+
| ``newton`` | iterative | fast | no |
|
|
33
|
+
+------------------+------------+-----------+-------------------------+
|
|
34
|
+
| ``brentq`` | iterative | slow | yes |
|
|
35
|
+
+------------------+------------+-----------+-------------------------+
|
|
36
|
+
| ``chandrupatla`` | iterative | fast | yes |
|
|
37
|
+
+------------------+------------+-----------+-------------------------+
|
|
38
|
+
| ``lambertw`` | explicit | medium | yes |
|
|
39
|
+
+------------------+------------+-----------+-------------------------+
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
Computing full I-V curves
|
|
44
|
+
-------------------------
|
|
45
|
+
|
|
46
|
+
Full I-V curves can be computed using
|
|
47
|
+
:py:func:`pvlib.pvsystem.i_from_v` and :py:func:`pvlib.pvsystem.v_from_i`, which
|
|
48
|
+
calculate either current or voltage from the other, with the methods listed
|
|
49
|
+
above. It is often useful to
|
|
50
|
+
first compute the open-circuit or short-circuit values using
|
|
51
|
+
:py:func:`pvlib.pvsystem.singlediode` and then compute a range
|
|
52
|
+
of voltages/currents from zero to those extreme points. This range can then
|
|
53
|
+
be used with the above functions to compute the I-V curve.
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
IV curves in reverse bias
|
|
57
|
+
-------------------------
|
|
58
|
+
|
|
59
|
+
The standard SDE does not account for diode breakdown at reverse bias. The
|
|
60
|
+
following functions can optionally include an extra term for modeling it:
|
|
61
|
+
:py:func:`pvlib.pvsystem.max_power_point`,
|
|
62
|
+
:py:func:`pvlib.singlediode.bishop88_i_from_v`,
|
|
63
|
+
and :py:func:`pvlib.singlediode.bishop88_v_from_i`.
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
Recombination current for thin film cells
|
|
67
|
+
-----------------------------------------
|
|
68
|
+
|
|
69
|
+
The PVsyst SDM optionally modifies the SDE to better represent recombination
|
|
70
|
+
current in CdTe and a-Si modules. The modified SDE requires two additional
|
|
71
|
+
parameters. pvlib functions can compute the key points or full I-V curves using
|
|
72
|
+
the modified SDE:
|
|
73
|
+
:py:func:`pvlib.pvsystem.max_power_point`,
|
|
74
|
+
:py:func:`pvlib.singlediode.bishop88_i_from_v`,
|
|
75
|
+
and :py:func:`pvlib.singlediode.bishop88_v_from_i`.
|
|
76
|
+
|
|
77
|
+
Model parameter values
|
|
78
|
+
----------------------
|
|
79
|
+
|
|
80
|
+
Despite some models having parameters with similar names, parameter values are
|
|
81
|
+
specific to each model and thus must be produced with the intended model in mind.
|
|
82
|
+
For some models, sets of parameter values can be read from external sources,
|
|
83
|
+
for example:
|
|
84
|
+
|
|
85
|
+
* CEC SDM parameter database can be read using :py:func:`~pvlib.pvsystem.retrieve_sam`
|
|
86
|
+
* PAN files, which can be read using :py:func:`~pvlib.iotools.read_panond`
|
|
87
|
+
|
|
88
|
+
pvlib also provides a set of functions that can estimate SDM parameter values
|
|
89
|
+
from various datasources:
|
|
90
|
+
|
|
91
|
+
+---------------------------------------------------------------+---------+--------------------+
|
|
92
|
+
| Function | SDM | Inputs |
|
|
93
|
+
+===============================================================+=========+====================+
|
|
94
|
+
| :py:func:`~pvlib.ivtools.sdm.fit_cec_sam` | CEC | datasheet |
|
|
95
|
+
+---------------------------------------------------------------+---------+--------------------+
|
|
96
|
+
| :py:func:`~pvlib.ivtools.sdm.fit_desoto` | De Soto | datasheet |
|
|
97
|
+
+---------------------------------------------------------------+---------+--------------------+
|
|
98
|
+
| :py:func:`~pvlib.ivtools.sdm.fit_desoto_sandia` | De Soto | I-V curves |
|
|
99
|
+
+---------------------------------------------------------------+---------+--------------------+
|
|
100
|
+
| :py:func:`~pvlib.ivtools.sdm.fit_pvsyst_sandia` | PVsyst | I-V curves |
|
|
101
|
+
+---------------------------------------------------------------+---------+--------------------+
|
|
102
|
+
| :py:func:`~pvlib.ivtools.sdm.fit_pvsyst_iec61853_sandia_2025` | PVsyst | IEC 61853-1 matrix |
|
|
103
|
+
+---------------------------------------------------------------+---------+--------------------+
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
Single-diode equation
|
|
107
|
+
---------------------
|
|
108
|
+
|
|
109
|
+
This section reviews the solutions to the single diode equation used in
|
|
110
|
+
pvlib-python to generate an IV curve of a PV module.
|
|
111
|
+
|
|
112
|
+
pvlib-python supports two ways to solve the single diode equation:
|
|
113
|
+
|
|
114
|
+
1. Lambert W-Function
|
|
115
|
+
2. Bishop's Algorithm
|
|
116
|
+
|
|
117
|
+
The :func:`pvlib.pvsystem.singlediode` function allows the user to choose the
|
|
118
|
+
method using the ``method`` keyword.
|
|
119
|
+
|
|
120
|
+
Lambert W-Function
|
|
121
|
+
******************
|
|
122
|
+
When ``method='lambertw'``, the Lambert W-function is used as previously shown
|
|
123
|
+
by Jain, Kapoor [1, 2] and Hansen [3]. The following algorithm can be found on
|
|
124
|
+
`Wikipedia: Theory of Solar Cells
|
|
125
|
+
<https://en.wikipedia.org/wiki/Theory_of_solar_cells>`_, given the basic single
|
|
126
|
+
diode model equation.
|
|
127
|
+
|
|
128
|
+
.. math::
|
|
129
|
+
|
|
130
|
+
I = I_L - I_0 \left(\exp \left(\frac{V + I R_s}{n N_s V_{th}} \right) - 1 \right)
|
|
131
|
+
- \frac{V + I R_s}{R_{sh}}
|
|
132
|
+
|
|
133
|
+
Lambert W-function is the inverse of the function
|
|
134
|
+
:math:`f \left( w \right) = w \exp \left( w \right)` or
|
|
135
|
+
:math:`w = f^{-1} \left( w \exp \left( w \right) \right)` also given as
|
|
136
|
+
:math:`w = W \left( w \exp \left( w \right) \right)`. Defining the following
|
|
137
|
+
parameter, :math:`z`, is necessary to transform the single diode equation into
|
|
138
|
+
a form that can be expressed as a Lambert W-function.
|
|
139
|
+
|
|
140
|
+
.. math::
|
|
141
|
+
|
|
142
|
+
z = \frac{R_s I_0}{n N_s V_{th} \left(1 + \frac{R_s}{R_{sh}} \right)} \exp \left(
|
|
143
|
+
\frac{R_s \left( I_L + I_0 \right) + V}{n N_s V_{th} \left(1 + \frac{R_s}{R_{sh}}\right)}
|
|
144
|
+
\right)
|
|
145
|
+
|
|
146
|
+
Then the module current can be solved using the Lambert W-function,
|
|
147
|
+
:math:`W \left(z \right)`.
|
|
148
|
+
|
|
149
|
+
.. math::
|
|
150
|
+
|
|
151
|
+
I = \frac{I_L + I_0 - \frac{V}{R_{sh}}}{1 + \frac{R_s}{R_{sh}}}
|
|
152
|
+
- \frac{n N_s V_{th}}{R_s} W \left(z \right)
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
Bishop's Algorithm
|
|
156
|
+
******************
|
|
157
|
+
The function :func:`pvlib.singlediode.bishop88` uses an explicit solution [4]
|
|
158
|
+
that finds points on the IV curve by first solving for pairs :math:`(V_d, I)`
|
|
159
|
+
where :math:`V_d` is the diode voltage :math:`V_d = V + I*Rs`. Then the voltage
|
|
160
|
+
is backed out from :math:`V_d`. Points with specific voltage, such as open
|
|
161
|
+
circuit, are located using the bisection search method, ``brentq``, bounded
|
|
162
|
+
by a zero diode voltage and an estimate of open circuit voltage given by
|
|
163
|
+
|
|
164
|
+
.. math::
|
|
165
|
+
|
|
166
|
+
V_{oc, est} = n N_s V_{th} \log \left( \frac{I_L}{I_0} + 1 \right)
|
|
167
|
+
|
|
168
|
+
We know that :math:`V_d = 0` corresponds to a voltage less than zero, and
|
|
169
|
+
we can also show that when :math:`V_d = V_{oc, est}`, the resulting
|
|
170
|
+
current is also negative, meaning that the corresponding voltage must be
|
|
171
|
+
in the 4th quadrant and therefore greater than the open circuit voltage
|
|
172
|
+
(see proof below). Therefore the entire forward-bias 1st quadrant IV-curve
|
|
173
|
+
is bounded because :math:`V_{oc} < V_{oc, est}`, and so a bisection search
|
|
174
|
+
between 0 and :math:`V_{oc, est}` will always find any desired condition in the
|
|
175
|
+
1st quadrant including :math:`V_{oc}`.
|
|
176
|
+
|
|
177
|
+
.. math::
|
|
178
|
+
|
|
179
|
+
I = I_L - I_0 \left(\exp \left(\frac{V_{oc, est}}{n N_s V_{th}} \right) - 1 \right)
|
|
180
|
+
- \frac{V_{oc, est}}{R_{sh}} \newline
|
|
181
|
+
|
|
182
|
+
I = I_L - I_0 \left(\exp \left(\frac{n N_s V_{th} \log \left(\frac{I_L}{I_0} + 1 \right)}{n N_s V_{th}} \right) - 1 \right)
|
|
183
|
+
- \frac{n N_s V_{th} \log \left(\frac{I_L}{I_0} + 1 \right)}{R_{sh}} \newline
|
|
184
|
+
|
|
185
|
+
I = I_L - I_0 \left(\exp \left(\log \left(\frac{I_L}{I_0} + 1 \right) \right) - 1 \right)
|
|
186
|
+
- \frac{n N_s V_{th} \log \left(\frac{I_L}{I_0} + 1 \right)}{R_{sh}} \newline
|
|
187
|
+
|
|
188
|
+
I = I_L - I_0 \left(\frac{I_L}{I_0} + 1 - 1 \right)
|
|
189
|
+
- \frac{n N_s V_{th} \log \left(\frac{I_L}{I_0} + 1 \right)}{R_{sh}} \newline
|
|
190
|
+
|
|
191
|
+
I = I_L - I_0 \left(\frac{I_L}{I_0} \right)
|
|
192
|
+
- \frac{n N_s V_{th} \log \left(\frac{I_L}{I_0} + 1 \right)}{R_{sh}} \newline
|
|
193
|
+
|
|
194
|
+
I = I_L - I_L - \frac{n N_s V_{th} \log \left( \frac{I_L}{I_0} + 1 \right)}{R_{sh}} \newline
|
|
195
|
+
|
|
196
|
+
I = - \frac{n N_s V_{th} \log \left( \frac{I_L}{I_0} + 1 \right)}{R_{sh}}
|
|
197
|
+
|
|
198
|
+
References
|
|
199
|
+
----------
|
|
200
|
+
[1] "Exact analytical solutions of the parameters of real solar cells using
|
|
201
|
+
Lambert W-function," A. Jain, A. Kapoor, Solar Energy Materials and Solar Cells,
|
|
202
|
+
81, (2004) pp 269-277.
|
|
203
|
+
:doi:`10.1016/j.solmat.2003.11.018`
|
|
204
|
+
|
|
205
|
+
[2] "A new method to determine the diode ideality factor of real solar cell
|
|
206
|
+
using Lambert W-function," A. Jain, A. Kapoor, Solar Energy Materials and Solar
|
|
207
|
+
Cells, 85, (2005) 391-396.
|
|
208
|
+
:doi:`10.1016/j.solmat.2004.05.022`
|
|
209
|
+
|
|
210
|
+
[3] "Parameter Estimation for Single Diode Models of Photovoltaic Modules,"
|
|
211
|
+
Clifford W. Hansen, Sandia `Report SAND2015-2065
|
|
212
|
+
<https://prod.sandia.gov/techlib-noauth/access-control.cgi/2015/152065.pdf>`_,
|
|
213
|
+
2015 :doi:`10.13140/RG.2.1.4336.7842`
|
|
214
|
+
|
|
215
|
+
[4] "Computer simulation of the effects of electrical mismatches in
|
|
216
|
+
photovoltaic cell interconnection circuits" JW Bishop, Solar Cell (1988)
|
|
217
|
+
:doi:`10.1016/0379-6787(88)90059-2`
|
|
@@ -61,11 +61,21 @@ Reference [2]_.
|
|
|
61
61
|
| +-----------------------------+ | ✓ | ✓ | | | + [4]_ |
|
|
62
62
|
| | clearsky_index | | | | | | | |
|
|
63
63
|
+-----------------------------------------------------+-----------------------------+---------+---------+------+------+------+------------+-----------+
|
|
64
|
+
| :py:func:`Polo <spectral_factor_polo>` | :term:`precipitable_water`, | | | | | | | |
|
|
65
|
+
| +-----------------------------+ ✓ | | ✓ | ✓ | ✓ | + [5]_ |
|
|
66
|
+
| | :term:`airmass_absolute`, | | | | | | | |
|
|
67
|
+
| +-----------------------------+ | | | | | | |
|
|
68
|
+
| | aod500, | | | | | | | |
|
|
69
|
+
| +-----------------------------+ | | | | | | |
|
|
70
|
+
| | :term:`aoi`, | | | | | | | |
|
|
71
|
+
| +-----------------------------+ | | | | | | |
|
|
72
|
+
| | :term:`pressure` | | | | | | | |
|
|
73
|
+
+-----------------------------------------------------+-----------------------------+---------+---------+------+------+------+------------+-----------+
|
|
64
74
|
| :py:func:`PVSPEC <spectral_factor_pvspec>` | :term:`airmass_absolute`, | | | | | | | |
|
|
65
|
-
| +-----------------------------+ ✓ | ✓ | ✓ | ✓ | ✓ | | [
|
|
75
|
+
| +-----------------------------+ ✓ | ✓ | ✓ | ✓ | ✓ | | [6]_ |
|
|
66
76
|
| | clearsky_index | | | | | | | |
|
|
67
77
|
+-----------------------------------------------------+-----------------------------+---------+---------+------+------+------+------------+-----------+
|
|
68
|
-
| :py:func:`SAPM <spectral_factor_sapm>` | :term:`airmass_absolute` | | | | | | | [
|
|
78
|
+
| :py:func:`SAPM <spectral_factor_sapm>` | :term:`airmass_absolute` | | | | | | | [7]_ |
|
|
69
79
|
+-----------------------------------------------------+-----------------------------+---------+---------+------+------+------+------------+-----------+
|
|
70
80
|
|
|
71
81
|
|
|
@@ -88,16 +98,19 @@ References
|
|
|
88
98
|
PVSPEC Model of Photovoltaic Spectral Mismatch Factor," in Proc. 2020
|
|
89
99
|
IEEE 47th Photovoltaic Specialists Conference (PVSC), Calgary, AB,
|
|
90
100
|
Canada, 2020, pp. 1–6. :doi:`10.1109/PVSC45281.2020.9300932`
|
|
91
|
-
.. [5]
|
|
101
|
+
.. [5] J. Polo and C. Sanz-Saiz, 'Development of spectral mismatch models
|
|
102
|
+
for BIPV applications in building façades', Renewable Energy, vol. 245,
|
|
103
|
+
p. 122820, Jun. 2025, :doi:`10.1016/j.renene.2025.122820`
|
|
104
|
+
.. [6] D. L. King, W. E. Boyson, and J. A. Kratochvil, Photovoltaic Array
|
|
92
105
|
Performance Model, Sandia National Laboratories, Albuquerque, NM, USA,
|
|
93
106
|
Tech. Rep. SAND2004-3535, Aug. 2004. :doi:`10.2172/919131`
|
|
94
|
-
.. [
|
|
107
|
+
.. [7] M. Lee and A. Panchula, "Spectral Correction for Photovoltaic Module
|
|
95
108
|
Performance Based on Air Mass and Precipitable Water," 2016 IEEE 43rd
|
|
96
109
|
Photovoltaic Specialists Conference (PVSC), Portland, OR, USA, 2016,
|
|
97
110
|
pp. 3696-3699. :doi:`10.1109/PVSC.2016.7749836`
|
|
98
|
-
.. [
|
|
99
|
-
Influence of Spectrum Variations on PV Performance
|
|
111
|
+
.. [8] T. Huld, T. Sample, and E. Dunlop, "A Simple Model for Estimating the
|
|
112
|
+
Influence of Spectrum Variations on PV Performance," pp. 3385–3389, Nov.
|
|
100
113
|
2009, :doi:`10.4229/24THEUPVSEC2009-4AV.3.27`
|
|
101
|
-
.. [
|
|
114
|
+
.. [9] IEC 60904-7:2019, Photovoltaic devices — Part 7: Computation of the
|
|
102
115
|
spectral mismatch correction for measurements of photovoltaic devices,
|
|
103
116
|
International Electrotechnical Commission, Geneva, Switzerland, 2019.
|