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