pvlib 0.11.0a1__tar.gz → 0.11.2__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.11.0a1/pvlib.egg-info → pvlib-0.11.2}/PKG-INFO +10 -7
- {pvlib-0.11.0a1 → pvlib-0.11.2}/README.md +1 -1
- pvlib-0.11.2/docs/examples/bifacial/plot_irradiance_nonuniformity_loss.py +129 -0
- pvlib-0.11.2/docs/examples/floating-pv/README.rst +2 -0
- pvlib-0.11.2/docs/examples/floating-pv/plot_floating_pv_cell_temperature.py +230 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +2 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-transposition/plot_transposition_gain.py +1 -0
- pvlib-0.11.2/docs/examples/irradiance-transposition/use_perez_modelchain.py +126 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/iv-modeling/plot_singlediode.py +2 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/shading/plot_martinez_shade_loss.py +2 -8
- pvlib-0.11.2/docs/examples/spectrum/average_photon_energy.py +197 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/spectrum/plot_spectrl2_fig51A.py +12 -10
- pvlib-0.11.2/docs/examples/spectrum/spectral_factor.py +150 -0
- pvlib-0.11.2/docs/sphinx/source/_images/example_function_screenshot.png +0 -0
- pvlib-0.11.2/docs/sphinx/source/_static/reference_format.css +5 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_static/version-alert.js +1 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_templates/edit-this-page.html +6 -9
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/conf.py +103 -72
- pvlib-0.11.2/docs/sphinx/source/contributing/how_to_contribute_new_code.rst +159 -0
- pvlib-0.11.2/docs/sphinx/source/contributing/index.rst +14 -0
- pvlib-0.11.2/docs/sphinx/source/contributing/introduction_to_contributing.rst +55 -0
- pvlib-0.11.2/docs/sphinx/source/contributing/style_guide.rst +352 -0
- pvlib-0.11.2/docs/sphinx/source/contributing/testing.rst +188 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/index.rst +2 -2
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/airmass_atmospheric.rst +3 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/bifacial.rst +7 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +1 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/tracking.rst +0 -3
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/transformer.rst +1 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/faq.rst +1 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/index.rst +1 -1
- pvlib-0.11.2/docs/sphinx/source/user_guide/nomenclature.rst +196 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/singlediode.rst +14 -14
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/weather_data.rst +1 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.11.0.rst +10 -14
- pvlib-0.11.2/docs/sphinx/source/whatsnew/v0.11.1.rst +112 -0
- pvlib-0.11.2/docs/sphinx/source/whatsnew/v0.11.2.rst +99 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.3.0.txt +1 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew.rst +2 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/tutorials/irradiance.ipynb +13 -11
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/_deprecation.py +73 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/atmosphere.py +236 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/bifacial/__init__.py +4 -4
- pvlib-0.11.2/pvlib/bifacial/loss_models.py +163 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/clearsky.py +53 -51
- pvlib-0.11.2/pvlib/data/pvgis_tmy_meta.json +32 -0
- pvlib-0.11.2/pvlib/data/pvgis_tmy_test.csv +8761 -0
- pvlib-0.11.2/pvlib/data/tmy_45.000_8.000_2005_2023.csv +8789 -0
- pvlib-0.11.2/pvlib/data/tmy_45.000_8.000_2005_2023.epw +8768 -0
- pvlib-0.11.2/pvlib/data/tmy_45.000_8.000_2005_2023.json +1 -0
- pvlib-0.11.2/pvlib/data/tmy_45.000_8.000_2005_2023.txt +8761 -0
- pvlib-0.11.2/pvlib/data/tmy_45.000_8.000_userhorizon.json +1 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iam.py +4 -4
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/midc.py +1 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/pvgis.py +39 -13
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/irradiance.py +237 -173
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/ivtools/sdm.py +75 -52
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/location.py +5 -5
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/modelchain.py +1 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/pvsystem.py +134 -86
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/shading.py +8 -8
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/singlediode.py +1 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/solarposition.py +101 -80
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spa.py +28 -24
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spectrum/__init__.py +9 -4
- pvlib-0.11.2/pvlib/spectrum/irradiance.py +273 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spectrum/mismatch.py +118 -508
- pvlib-0.11.2/pvlib/spectrum/response.py +280 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spectrum/spectrl2.py +18 -17
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/temperature.py +49 -3
- pvlib-0.11.2/pvlib/tests/bifacial/test_losses_models.py +54 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_pvgis.py +58 -12
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/ivtools/test_sdm.py +23 -1
- pvlib-0.11.2/pvlib/tests/spectrum/__init__.py +0 -0
- pvlib-0.11.2/pvlib/tests/spectrum/conftest.py +40 -0
- pvlib-0.11.2/pvlib/tests/spectrum/test_irradiance.py +138 -0
- pvlib-0.11.0a1/pvlib/tests/test_spectrum.py → pvlib-0.11.2/pvlib/tests/spectrum/test_mismatch.py +32 -306
- pvlib-0.11.2/pvlib/tests/spectrum/test_response.py +124 -0
- pvlib-0.11.2/pvlib/tests/spectrum/test_spectrl2.py +72 -0
- pvlib-0.11.2/pvlib/tests/test__deprecation.py +97 -0
- pvlib-0.11.2/pvlib/tests/test_atmosphere.py +351 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_clearsky.py +44 -26
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_conftest.py +0 -44
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_irradiance.py +62 -16
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_pvsystem.py +17 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_solarposition.py +117 -36
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_spa.py +30 -1
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tools.py +26 -2
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tracking.py +53 -47
- {pvlib-0.11.0a1 → pvlib-0.11.2/pvlib.egg-info}/PKG-INFO +10 -7
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib.egg-info/SOURCES.txt +33 -11
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib.egg-info/requires.txt +8 -5
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pyproject.toml +9 -6
- pvlib-0.11.2/scripts/update_top_ranking_issues.py +81 -0
- pvlib-0.11.0a1/docs/sphinx/source/_static/reference_format.css +0 -13
- pvlib-0.11.0a1/docs/sphinx/source/contributing.rst +0 -506
- pvlib-0.11.0a1/docs/sphinx/source/user_guide/variables_style_rules.rst +0 -25
- pvlib-0.11.0a1/pvlib/data/aod550_tcwv_20121101_test.nc +0 -0
- pvlib-0.11.0a1/pvlib/data/pvgis_tmy_meta.json +0 -93
- pvlib-0.11.0a1/pvlib/data/pvgis_tmy_test.dat +0 -8761
- pvlib-0.11.0a1/pvlib/data/tmy_45.000_8.000_2005_2016.csv +0 -8789
- pvlib-0.11.0a1/pvlib/data/tmy_45.000_8.000_2005_2016.epw +0 -8768
- pvlib-0.11.0a1/pvlib/data/tmy_45.000_8.000_2005_2016.json +0 -1
- pvlib-0.11.0a1/pvlib/data/tmy_45.000_8.000_2005_2016.txt +0 -8761
- pvlib-0.11.0a1/pvlib/data/tmy_45.000_8.000_userhorizon.json +0 -1
- pvlib-0.11.0a1/pvlib/data/variables_style_rules.csv +0 -55
- pvlib-0.11.0a1/pvlib/tests/test_atmosphere.py +0 -133
- {pvlib-0.11.0a1 → pvlib-0.11.2}/AUTHORS.md +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/LICENSE +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/MANIFEST.in +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/adr-pvarray/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/adr-pvarray/plot_fit_to_matrix.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/adr-pvarray/plot_simulate_fast.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/adr-pvarray/plot_simulate_system.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/agrivoltaics/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/agrivoltaics/plot_diffuse_PAR_Spitters_relationship.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/bifacial/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/bifacial/plot_bifi_model_mc.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-decomposition/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-transposition/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-transposition/plot_rtranpose_limitations.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-transposition/plot_rtranpose_year.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/iv-modeling/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/reflections/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/reflections/plot_convert_iam_models.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/reflections/plot_fit_iam_models.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/shading/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/shading/plot_partial_module_shading_simple.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/shading/plot_shaded_fraction1d_ns_hsat_example.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/shading/plot_simple_irradiance_adjustment_for_horizon_shading.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/soiling/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/solar-position/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/solar-position/plot_sunpath_diagrams.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/solar-tracking/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/spectrum/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/spectrum/plot_standard_ASTM_G173-03.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/system-models/README.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/system-models/plot_oedi_9068.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/notes/Determining the average view factor from a module.pdf +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/Makefile +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/make.bat +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/Anderson_Jensen_2024_Fig3.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/Anderson_Mikofski_2020_Fig5.jpg +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/OEDI_9068_daily_timeseries.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/OEDI_9068_inverter1_comparison.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/OEDI_9068_inverter2_comparison.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/PV_module_layout_cesardd.jpg +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/clonebutton.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/classes.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/clearsky.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/index.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/iotools.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/irradiance/albedo.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/irradiance/class-methods.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/irradiance/clearness-index.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/irradiance/components.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/irradiance/decomposition.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/irradiance/index.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/irradiance/transposition.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/location.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/modelchain.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/pv_modeling/iam.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/pv_modeling/index.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/pv_modeling/inverter.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/pv_modeling/other.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/pv_modeling/parameters.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/pv_modeling/sdm.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/pv_modeling/system_models.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/pv_modeling/temperature.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/scaling.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/reference/solarposition.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/bifacial.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/clearsky.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/installation.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/introtutorial.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/modelchain.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/package_overview.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/pvsystem.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/user_guide/timetimezones.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.10.0.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.10.1.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.10.2.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.10.3.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.10.4.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.10.5.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.6.1.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.7.0.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.7.1.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.7.2.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.8.0.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.8.1.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.9.0.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.9.1.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.9.2.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.9.3.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/sphinx/source/whatsnew/v0.9.5.rst +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/tutorials/atmosphere.ipynb +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/tutorials/pvsystem.ipynb +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/tutorials/solarposition.ipynb +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/tutorials/tmy.ipynb +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/tutorials/tmy_to_power.ipynb +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/docs/tutorials/tracking.ipynb +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/__init__.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/albedo.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/bifacial/infinite_sheds.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/bifacial/pvfactors.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/bifacial/utils.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/12839.tm2 +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/703165TY.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/723170TYA.CSV +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/ASTMG173.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/Altitude.h5 +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/BIRD_08_16_2012.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/BIRD_08_16_2012_patm.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/CPS SCH275KTL-DO-US-800-250kW_275kVA_1.OND +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/CRN_with_problems.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/ET-M772BH550GL.PAN +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/LinkeTurbidities.h5 +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/NLD_Amsterdam062400_IWEC.epw +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/PVsyst_demo.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/PVsyst_demo_model.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/SRML-day-EUPO1801.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/abq19056.dat +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/bishop88_numerical_precision.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/bsrn-lr0100-pay0616.dat +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/bsrn-pay0616.dat.gz +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/cams_mcclear_1min_verbose.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/cams_mcclear_monthly.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/cams_radiation_1min_verbose.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/cams_radiation_monthly.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/detect_clearsky_data.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/detect_clearsky_threshold_data.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/greensboro_kimber_soil_manwash.dat +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/greensboro_kimber_soil_nowash.dat +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/inverter_fit_snl_meas.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/inverter_fit_snl_sim.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/ivtools_numdiff.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/midc_20181014.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/midc_raw_20181018.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/midc_raw_short_header_20191115.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/msn19056.dat +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/precise_iv_curves1.json +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/precise_iv_curves2.json +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/precise_iv_curves_parameter_sets1.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/precise_iv_curves_parameter_sets2.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/pvwatts_8760_rackmount.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/pvwatts_8760_roofmount.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/singleaxis_tracker_wslope.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/spectrl2_example_spectra.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/surfrad-slv16001.dat +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/test_psm3_2017.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/test_psm3_2019_5min.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/test_psm3_tmy-2017.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/test_read_psm3.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/data/test_read_pvgis_horizon.csv +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/inverter.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/__init__.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/acis.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/bsrn.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/crn.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/epw.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/panond.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/psm3.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/sodapro.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/solaranywhere.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/solargis.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/solcast.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/solrad.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/srml.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/surfrad.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/iotools/tmy.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/ivtools/__init__.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/ivtools/sde.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/ivtools/utils.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/pvarray.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/scaling.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/snow.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/soiling.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spa_c_files/README.md +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spa_c_files/__init__.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spa_c_files/cspa_py.pxd +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spa_c_files/setup.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spa_c_files/spa_py.pyx +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/spa_c_files/spa_py_example.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/__init__.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/bifacial/__init__.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/bifacial/test_infinite_sheds.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/bifacial/test_pvfactors.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/bifacial/test_utils.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/conftest.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/__init__.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_acis.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_bsrn.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_crn.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_epw.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_midc.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_panond.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_psm3.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_sodapro.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_solaranywhere.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_solargis.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_solcast.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_solrad.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_srml.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_surfrad.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/iotools/test_tmy.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/ivtools/__init__.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/ivtools/test_sde.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/ivtools/test_utils.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_albedo.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_iam.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_inverter.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_location.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_modelchain.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_numerical_precision.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_pvarray.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_scaling.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_shading.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_singlediode.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_snow.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_soiling.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_temperature.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_tools.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_tracking.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/tests/test_transformer.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/transformer.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib/version.py +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib.egg-info/dependency_links.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/pvlib.egg-info/top_level.txt +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/setup.cfg +0 -0
- {pvlib-0.11.0a1 → pvlib-0.11.2}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pvlib
|
|
3
|
-
Version: 0.11.
|
|
3
|
+
Version: 0.11.2
|
|
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,11 +15,11 @@ 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.9
|
|
19
19
|
Description-Content-Type: text/x-rst
|
|
20
20
|
License-File: LICENSE
|
|
21
21
|
License-File: AUTHORS.md
|
|
22
|
-
Requires-Dist: numpy>=1.
|
|
22
|
+
Requires-Dist: numpy>=1.19.3
|
|
23
23
|
Requires-Dist: pandas>=1.3.0
|
|
24
24
|
Requires-Dist: pytz
|
|
25
25
|
Requires-Dist: requests
|
|
@@ -34,14 +34,17 @@ Requires-Dist: solarfactors; extra == "optional"
|
|
|
34
34
|
Requires-Dist: statsmodels; extra == "optional"
|
|
35
35
|
Provides-Extra: doc
|
|
36
36
|
Requires-Dist: ipython; extra == "doc"
|
|
37
|
+
Requires-Dist: pickleshare; extra == "doc"
|
|
37
38
|
Requires-Dist: matplotlib; extra == "doc"
|
|
38
|
-
Requires-Dist: sphinx==
|
|
39
|
-
Requires-Dist: pydata-sphinx-theme==0.
|
|
39
|
+
Requires-Dist: sphinx==7.3.7; extra == "doc"
|
|
40
|
+
Requires-Dist: pydata-sphinx-theme==0.15.4; extra == "doc"
|
|
40
41
|
Requires-Dist: sphinx-gallery; extra == "doc"
|
|
41
|
-
Requires-Dist: docutils==0.
|
|
42
|
+
Requires-Dist: docutils==0.21; extra == "doc"
|
|
42
43
|
Requires-Dist: pillow; extra == "doc"
|
|
43
|
-
Requires-Dist: sphinx-toggleprompt
|
|
44
|
+
Requires-Dist: sphinx-toggleprompt==0.5.2; extra == "doc"
|
|
45
|
+
Requires-Dist: sphinx-favicon; extra == "doc"
|
|
44
46
|
Requires-Dist: solarfactors; extra == "doc"
|
|
47
|
+
Requires-Dist: sphinx-hoverxref; extra == "doc"
|
|
45
48
|
Provides-Extra: test
|
|
46
49
|
Requires-Dist: pytest; extra == "test"
|
|
47
50
|
Requires-Dist: pytest-cov; extra == "test"
|
|
@@ -81,7 +81,7 @@ Contributing
|
|
|
81
81
|
============
|
|
82
82
|
|
|
83
83
|
We need your help to make pvlib-python a great tool!
|
|
84
|
-
Please see the [Contributing page](
|
|
84
|
+
Please see the [Contributing page](https://pvlib-python.readthedocs.io/en/stable/contributing/index.html) for more on how you can contribute.
|
|
85
85
|
The long-term success of pvlib-python requires substantial community support.
|
|
86
86
|
|
|
87
87
|
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Plot Irradiance Non-uniformity Loss
|
|
3
|
+
===================================
|
|
4
|
+
|
|
5
|
+
Calculate the DC power lost to irradiance non-uniformity in a bifacial PV
|
|
6
|
+
array.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
# %%
|
|
10
|
+
# The incident irradiance on the backside of a bifacial PV module is
|
|
11
|
+
# not uniform due to neighboring rows, the ground albedo, and site conditions.
|
|
12
|
+
# When each cell works at different irradiance levels, the power produced by
|
|
13
|
+
# the module is less than the sum of the power produced by each cell since the
|
|
14
|
+
# maximum power point (MPP) of each cell is different, but cells connected in
|
|
15
|
+
# series will operate at the same current.
|
|
16
|
+
# This is known as irradiance non-uniformity loss.
|
|
17
|
+
#
|
|
18
|
+
# Calculating the IV curve of each cell and then matching the working point of
|
|
19
|
+
# the whole module is computationally expensive, so a simple model to account
|
|
20
|
+
# for this loss is of interest. Deline et al. [1]_ proposed a model based on
|
|
21
|
+
# the Relative Mean Absolute Difference (RMAD) of the irradiance of each cell.
|
|
22
|
+
# They considered the standard deviation of the cells' irradiances, but they
|
|
23
|
+
# found that the RMAD was a better predictor of the mismatch loss.
|
|
24
|
+
#
|
|
25
|
+
# This example demonstrates how to model the irradiance non-uniformity loss
|
|
26
|
+
# from the irradiance levels of each cell in a PV module.
|
|
27
|
+
#
|
|
28
|
+
# The function
|
|
29
|
+
# :py:func:`pvlib.bifacial.power_mismatch_deline` is
|
|
30
|
+
# used to transform the Relative Mean Absolute Difference (RMAD) of the
|
|
31
|
+
# irradiance into a power loss mismatch. Down below you will find a
|
|
32
|
+
# numpy-based implementation of the RMAD function.
|
|
33
|
+
#
|
|
34
|
+
# References
|
|
35
|
+
# ----------
|
|
36
|
+
# .. [1] C. Deline, S. Ayala Pelaez, S. MacAlpine, and C. Olalla, 'Estimating
|
|
37
|
+
# and parameterizing mismatch power loss in bifacial photovoltaic
|
|
38
|
+
# systems', Progress in Photovoltaics: Research and Applications, vol. 28,
|
|
39
|
+
# no. 7, pp. 691-703, 2020, :doi:`10.1002/pip.3259`.
|
|
40
|
+
#
|
|
41
|
+
# .. sectionauthor:: Echedey Luis <echelual (at) gmail.com>
|
|
42
|
+
|
|
43
|
+
# %%
|
|
44
|
+
# Problem description
|
|
45
|
+
# -------------------
|
|
46
|
+
# Let's set a fixed irradiance to each cell row of the PV array with the values
|
|
47
|
+
# described in Figure 1 (A), [1]_. We will cover this case for educational
|
|
48
|
+
# purposes, although it can be achieved with the packages
|
|
49
|
+
# `solarfactors <https://github.com/pvlib/solarfactors/>`_ and
|
|
50
|
+
# `bifacial_radiance <https://github.com/NREL/bifacial_radiance>`_.
|
|
51
|
+
#
|
|
52
|
+
# Here we set and plot the global irradiance level of each cell.
|
|
53
|
+
|
|
54
|
+
import numpy as np
|
|
55
|
+
import matplotlib.pyplot as plt
|
|
56
|
+
from matplotlib.cm import ScalarMappable
|
|
57
|
+
from matplotlib.colors import Normalize
|
|
58
|
+
|
|
59
|
+
from pvlib.bifacial import power_mismatch_deline
|
|
60
|
+
|
|
61
|
+
x = np.arange(12, 0, -1)
|
|
62
|
+
y = np.arange(6, 0, -1)
|
|
63
|
+
cells_irrad = np.repeat([1059, 976, 967, 986, 1034, 1128], len(x)).reshape(
|
|
64
|
+
len(y), len(x)
|
|
65
|
+
)
|
|
66
|
+
|
|
67
|
+
# plot the irradiance levels of each cell
|
|
68
|
+
color_map = "gray"
|
|
69
|
+
color_norm = Normalize(930, 1150)
|
|
70
|
+
|
|
71
|
+
fig, ax = plt.subplots()
|
|
72
|
+
fig.suptitle("Global Irradiance Levels of Each Cell")
|
|
73
|
+
fig.colorbar(
|
|
74
|
+
ScalarMappable(cmap=color_map, norm=color_norm),
|
|
75
|
+
ax=ax,
|
|
76
|
+
orientation="vertical",
|
|
77
|
+
label="$[W/m^2]$",
|
|
78
|
+
)
|
|
79
|
+
ax.set_aspect("equal")
|
|
80
|
+
ax.pcolormesh(
|
|
81
|
+
x,
|
|
82
|
+
y,
|
|
83
|
+
cells_irrad,
|
|
84
|
+
shading="nearest",
|
|
85
|
+
edgecolors="black",
|
|
86
|
+
cmap=color_map,
|
|
87
|
+
norm=color_norm,
|
|
88
|
+
)
|
|
89
|
+
|
|
90
|
+
# %%
|
|
91
|
+
# Relative Mean Absolute Difference
|
|
92
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
93
|
+
# Calculate the Relative Mean Absolute Difference (RMAD) of the cells'
|
|
94
|
+
# irradiances with the following function, Eq. (4) of [1]_:
|
|
95
|
+
#
|
|
96
|
+
# .. math::
|
|
97
|
+
#
|
|
98
|
+
# \Delta \left[ unitless \right] = \frac{1}{n^2 \bar{G}_{total}}
|
|
99
|
+
# \sum_{i=1}^{n} \sum_{j=1}^{n} \lvert G_{total,i} - G_{total,j} \rvert
|
|
100
|
+
#
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
def rmad(data):
|
|
104
|
+
"""
|
|
105
|
+
Relative Mean Absolute Difference. Output is [Unitless]. Eq. (4) of [1]_.
|
|
106
|
+
"""
|
|
107
|
+
mean = np.mean(data)
|
|
108
|
+
mad = np.mean(np.absolute(np.subtract.outer(data, data)))
|
|
109
|
+
return mad / mean
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
rmad_cells = rmad(cells_irrad)
|
|
113
|
+
|
|
114
|
+
# this is the same as a column's RMAD!
|
|
115
|
+
print(rmad_cells == rmad(cells_irrad[:, 0]))
|
|
116
|
+
|
|
117
|
+
# %%
|
|
118
|
+
# Mismatch Loss
|
|
119
|
+
# ^^^^^^^^^^^^^
|
|
120
|
+
# Calculate the power loss ratio due to the irradiance non-uniformity
|
|
121
|
+
# with :py:func:`pvlib.bifacial.power_mismatch_deline`.
|
|
122
|
+
|
|
123
|
+
mismatch_loss = power_mismatch_deline(rmad_cells)
|
|
124
|
+
|
|
125
|
+
print(f"RMAD of the cells' irradiance: {rmad_cells:.3} [unitless]")
|
|
126
|
+
print(
|
|
127
|
+
"Power loss due to the irradiance non-uniformity: "
|
|
128
|
+
+ f"{mismatch_loss:.3} [unitless]"
|
|
129
|
+
)
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
r"""
|
|
2
|
+
Temperature modeling for floating PV
|
|
3
|
+
================================================
|
|
4
|
+
|
|
5
|
+
This example uses the PVSyst temperature model to calculate
|
|
6
|
+
cell temperature for floating photovoltaic (FPV) systems.
|
|
7
|
+
|
|
8
|
+
One of the primary benefits attributed to FPV systems is the potential
|
|
9
|
+
for lower operating temperatures, which are expected to increase the
|
|
10
|
+
operating efficiency. In general, the temperature at which a photovoltaic
|
|
11
|
+
module operates is influenced by various factors including solar radiation,
|
|
12
|
+
ambient temperature, wind speed and direction, and the characteristics of the
|
|
13
|
+
cell and module materials, as well as the mounting structure.
|
|
14
|
+
|
|
15
|
+
A popular model for calculating PV cell temperature is the
|
|
16
|
+
empirical heat loss factor model suggested by Faiman
|
|
17
|
+
(:py:func:`pvlib.temperature.faiman`). A modified version of this model is
|
|
18
|
+
has been proposed by PVSyst (:py:func:`~pvlib.temperature.pvsyst_cell`).
|
|
19
|
+
The PVSyst model for cell temperature :math:`T_{C}` is given by:
|
|
20
|
+
|
|
21
|
+
.. math::
|
|
22
|
+
|
|
23
|
+
T_{C} = T_{a} + \frac{\alpha \cdot E \cdot (1 - \eta_{m})}{U_{c} + U_{v} \cdot WS},
|
|
24
|
+
|
|
25
|
+
where :math:`E` is the plane-of-array irradiance, :math:`T_{a}` is the
|
|
26
|
+
ambient air temperature, :math:`WS` is the wind speed, :math:`\alpha` is the
|
|
27
|
+
absorbed fraction of the incident irradiance, :math:`\eta_{m}` is the
|
|
28
|
+
electrical efficiency of the module, :math:`U_{c}` is the wind-independent heat
|
|
29
|
+
loss coefficient, and :math:`U_{v}` is the wind-dependent heat loss coefficient.
|
|
30
|
+
It should be noted that in many cases, similar to land-based PV systems,
|
|
31
|
+
the wind-dependent heat loss coefficient (:math:`U_{v}`) can be set to zero,
|
|
32
|
+
and the denominator is thus reduced to a single combined U-value
|
|
33
|
+
(:math:`U_{c}`).
|
|
34
|
+
|
|
35
|
+
However, the default heat loss coefficient values of the PVSyst model were
|
|
36
|
+
specified for land-based PV systems and are not necessarily representative
|
|
37
|
+
of FPV systems.
|
|
38
|
+
|
|
39
|
+
For FPV systems, the module's operating temperature, much like in land-based
|
|
40
|
+
systems, is mainly influenced by the mounting structure (which significantly
|
|
41
|
+
affects both U-value coefficients), wind, and air temperature. Thus, factors
|
|
42
|
+
that help reduce operating temperatures in such systems include lower air
|
|
43
|
+
temperatures and changes in air flow beneath the modules (wind/convection).
|
|
44
|
+
In some designs, where the modules are in direct thermal contact with water,
|
|
45
|
+
cooling effectiveness is largely dictated by the water temperature.
|
|
46
|
+
|
|
47
|
+
Systems with closely packed modules and restricted airflow behind the modules
|
|
48
|
+
generally exhibit lower heat loss coefficients compared to those with better
|
|
49
|
+
airflow behind the modules.
|
|
50
|
+
|
|
51
|
+
The table below gives heat loss coefficients derived for different FPV systems
|
|
52
|
+
and locations as found in the literature. It should be noted that, for some
|
|
53
|
+
systems, there are two sets of coefficients, where the second set uses only
|
|
54
|
+
one heat loss coefficient (i.e., only :math:`U_{c}`).
|
|
55
|
+
|
|
56
|
+
.. table:: Heat transfer coefficients for different PV systems
|
|
57
|
+
:widths: 40 15 15 15 15
|
|
58
|
+
|
|
59
|
+
+--------------------------+-------------+--------------------------------+----------------------------------------+-----------+
|
|
60
|
+
| System | Location |:math:`U_{c}` | :math:`U_{v}` | Reference |
|
|
61
|
+
| | |:math:`[\frac{W}{m^2 \cdot K}]` | :math:`[\frac{W}{m^3 \cdot K \cdot s}]`| |
|
|
62
|
+
+==========================+=============+================================+========================================+===========+
|
|
63
|
+
| - Monofacial module | Netherlands | 24.4 | 6.5 | [1]_ |
|
|
64
|
+
| - Open structure | | | | |
|
|
65
|
+
| - Two-axis tracking | | 57 | 0 | |
|
|
66
|
+
| - Small water footprint | | | | |
|
|
67
|
+
+--------------------------+-------------+--------------------------------+----------------------------------------+-----------+
|
|
68
|
+
| - Monofacial module | Netherlands | 25.2 | 3.7 | [1]_ |
|
|
69
|
+
| - Closed structure | | | | |
|
|
70
|
+
| - Large water footprint | | 37 | 0 | |
|
|
71
|
+
+--------------------------+-------------+--------------------------------+----------------------------------------+-----------+
|
|
72
|
+
| - Monofacial module | Singapore | 34.8 | 0.8 | [1]_ |
|
|
73
|
+
| - Closed structure | | | | |
|
|
74
|
+
| - Large water footprint | | 36 | 0 | |
|
|
75
|
+
+--------------------------+-------------+--------------------------------+----------------------------------------+-----------+
|
|
76
|
+
| - Monofacial module | Singapore | 18.9 | 8.9 | [1]_ |
|
|
77
|
+
| - Closed structure | | | | |
|
|
78
|
+
| - Medium water footprint | | 41 | 0 | |
|
|
79
|
+
+--------------------------+-------------+--------------------------------+----------------------------------------+-----------+
|
|
80
|
+
| - Monofacial module | Singapore | 35.3 | 8.9 | [1]_ |
|
|
81
|
+
| - Open structure | | | | |
|
|
82
|
+
| - Free-standing | | 55 | 0 | |
|
|
83
|
+
+--------------------------+-------------+--------------------------------+----------------------------------------+-----------+
|
|
84
|
+
| - Monofacial module | Norway | 71 | 0 | [2]_ |
|
|
85
|
+
| - In contact with water | | | | |
|
|
86
|
+
| - Calculated using water | | | | |
|
|
87
|
+
| temperature as | | | | |
|
|
88
|
+
| :math:`T_{amb}` | | | | |
|
|
89
|
+
+--------------------------+-------------+--------------------------------+----------------------------------------+-----------+
|
|
90
|
+
| - Monofacial module | South Italy | 31.9 | 1.5 | [3]_ |
|
|
91
|
+
| - Open structure | | | | |
|
|
92
|
+
| - Free-standing | | | | |
|
|
93
|
+
+--------------------------+-------------+--------------------------------+----------------------------------------+-----------+
|
|
94
|
+
| - Bifacial module | South Italy | 35.2 | 1.5 | [3]_ |
|
|
95
|
+
| - Open structure | | | | |
|
|
96
|
+
| - Free-standing | | | | |
|
|
97
|
+
+--------------------------+-------------+--------------------------------+----------------------------------------+-----------+
|
|
98
|
+
|
|
99
|
+
References
|
|
100
|
+
----------
|
|
101
|
+
.. [1] Dörenkämper M., Wahed A., Kumar A., de Jong M., Kroon J., Reindl T.
|
|
102
|
+
(2021), 'The cooling effect of floating PV in two different climate zones:
|
|
103
|
+
A comparison of field test data from the Netherlands and Singapore'
|
|
104
|
+
Solar Energy, vol. 214, pp. 239-247, :doi:`10.1016/j.solener.2020.11.029`.
|
|
105
|
+
|
|
106
|
+
.. [2] Kjeldstad T., Lindholm D., Marstein E., Selj J. (2021), 'Cooling of
|
|
107
|
+
floating photovoltaics and the importance of water temperature', Solar
|
|
108
|
+
Energy, vol. 218, pp. 544-551, :doi:`10.1016/j.solener.2021.03.022`.
|
|
109
|
+
|
|
110
|
+
.. [3] Tina G.M., Scavo F.B., Merlo L., Bizzarri F. (2021), 'Comparative
|
|
111
|
+
analysis of monofacial and bifacial photovoltaic modules for floating
|
|
112
|
+
power plants', Applied Energy, vol 281, pp. 116084,
|
|
113
|
+
:doi:`10.1016/j.apenergy.2020.116084`.
|
|
114
|
+
""" # noqa: E501
|
|
115
|
+
|
|
116
|
+
# %%
|
|
117
|
+
# Read example weather data
|
|
118
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
119
|
+
# Read weather data from a TMY3 file and calculate the solar position and
|
|
120
|
+
# the plane-of-array irradiance.
|
|
121
|
+
|
|
122
|
+
import pvlib
|
|
123
|
+
import matplotlib.pyplot as plt
|
|
124
|
+
from pathlib import Path
|
|
125
|
+
|
|
126
|
+
# Assume a FPV system on a lake with the following specifications
|
|
127
|
+
tilt = 30 # degrees
|
|
128
|
+
azimuth = 180 # south-facing
|
|
129
|
+
|
|
130
|
+
# Datafile found in the pvlib distribution
|
|
131
|
+
data_file = Path(pvlib.__path__[0]).joinpath('data', '723170TYA.CSV')
|
|
132
|
+
|
|
133
|
+
tmy, metadata = pvlib.iotools.read_tmy3(
|
|
134
|
+
data_file, coerce_year=2002, map_variables=True
|
|
135
|
+
)
|
|
136
|
+
tmy = tmy.filter(
|
|
137
|
+
['ghi', 'dni', 'dni_extra', 'dhi', 'temp_air', 'wind_speed', 'pressure']
|
|
138
|
+
) # remaining columns are not needed
|
|
139
|
+
tmy = tmy['2002-06-06 00:00':'2002-06-06 23:59'] # select period
|
|
140
|
+
|
|
141
|
+
solar_position = pvlib.solarposition.get_solarposition(
|
|
142
|
+
# TMY timestamp is at end of hour, so shift to center of interval
|
|
143
|
+
tmy.index.shift(freq='-30T'),
|
|
144
|
+
latitude=metadata['latitude'],
|
|
145
|
+
longitude=metadata['longitude'],
|
|
146
|
+
altitude=metadata['altitude'],
|
|
147
|
+
pressure=tmy['pressure'] * 100, # convert from millibar to Pa
|
|
148
|
+
temperature=tmy['temp_air'],
|
|
149
|
+
)
|
|
150
|
+
solar_position.index = tmy.index # reset index to end of the hour
|
|
151
|
+
|
|
152
|
+
# Albedo calculation for inland water bodies
|
|
153
|
+
albedo = pvlib.albedo.inland_water_dvoracek(
|
|
154
|
+
solar_elevation=solar_position['elevation'],
|
|
155
|
+
surface_condition='clear_water_no_waves'
|
|
156
|
+
)
|
|
157
|
+
|
|
158
|
+
# Use transposition model to find plane-of-array irradiance
|
|
159
|
+
irradiance = pvlib.irradiance.get_total_irradiance(
|
|
160
|
+
surface_tilt=tilt,
|
|
161
|
+
surface_azimuth=azimuth,
|
|
162
|
+
solar_zenith=solar_position['apparent_zenith'],
|
|
163
|
+
solar_azimuth=solar_position['azimuth'],
|
|
164
|
+
dni=tmy['dni'],
|
|
165
|
+
dni_extra=tmy['dni_extra'],
|
|
166
|
+
ghi=tmy['ghi'],
|
|
167
|
+
dhi=tmy['dhi'],
|
|
168
|
+
albedo=albedo,
|
|
169
|
+
model='haydavies'
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
# %%
|
|
173
|
+
# Calculate and plot cell temperature
|
|
174
|
+
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
175
|
+
# The temperature of the PV cell is calculated for lake-based floating PV
|
|
176
|
+
# systems.
|
|
177
|
+
|
|
178
|
+
# Make a dictionary containing all the sets of coefficients presented in the
|
|
179
|
+
# above table.
|
|
180
|
+
heat_loss_coeffs = {
|
|
181
|
+
'open_structure_small_footprint_tracking_NL': [24.4, 6.5, 'C0', 'solid'],
|
|
182
|
+
'open_structure_small_footprint_tracking_NL_2': [57, 0, 'C0', 'dashed'],
|
|
183
|
+
'closed_structure_large_footprint_NL': [25.2, 3.7, 'C1', 'solid'],
|
|
184
|
+
'closed_structure_large_footprint_NL_2': [37, 0, 'C1', 'dashed'],
|
|
185
|
+
'closed_structure_large_footprint_SG': [34.8, 0.8, 'C2', 'solid'],
|
|
186
|
+
'closed_structure_large_footprint_SG_2': [36, 0, 'C2', 'dashed'],
|
|
187
|
+
'closed_structure_medium_footprint_SG': [18.9, 8.9, 'C3', 'solid'],
|
|
188
|
+
'closed_structure_medium_footprint_SG_2': [41, 0, 'C3', 'dashed'],
|
|
189
|
+
'open_structure_free_standing_SG': [35.3, 8.9, 'C4', 'solid'],
|
|
190
|
+
'open_structure_free_standing_SG_2': [55, 0, 'C4', 'dashed'],
|
|
191
|
+
'in_contact_with_water_NO': [71, 0, 'C5', 'solid'],
|
|
192
|
+
'open_structure_free_standing_IT': [31.9, 1.5, 'C6', 'solid'],
|
|
193
|
+
'open_structure_free_standing_bifacial_IT': [35.2, 1.5, 'C7', 'solid'],
|
|
194
|
+
'default_PVSyst_coeffs_for_land_systems': [29.0, 0, 'C8', 'solid']
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
# Plot the cell temperature for each set of the above heat loss coefficients
|
|
198
|
+
for coeffs in heat_loss_coeffs:
|
|
199
|
+
T_cell = pvlib.temperature.pvsyst_cell(
|
|
200
|
+
poa_global=irradiance['poa_global'],
|
|
201
|
+
temp_air=tmy['temp_air'],
|
|
202
|
+
wind_speed=tmy['wind_speed'],
|
|
203
|
+
u_c=heat_loss_coeffs[coeffs][0],
|
|
204
|
+
u_v=heat_loss_coeffs[coeffs][1]
|
|
205
|
+
)
|
|
206
|
+
# Convert Dataframe Indexes to Hour format to make plotting easier
|
|
207
|
+
T_cell.index = T_cell.index.strftime("%H")
|
|
208
|
+
plt.plot(T_cell, label=coeffs, c=heat_loss_coeffs[coeffs][2],
|
|
209
|
+
ls=heat_loss_coeffs[coeffs][3], alpha=0.8)
|
|
210
|
+
|
|
211
|
+
plt.xlabel('Hour')
|
|
212
|
+
plt.ylabel('PV cell temperature [°C]')
|
|
213
|
+
plt.ylim(10, 45)
|
|
214
|
+
plt.xlim('06', '20')
|
|
215
|
+
plt.grid()
|
|
216
|
+
plt.legend(loc='upper left', frameon=False, ncols=2, fontsize='x-small',
|
|
217
|
+
bbox_to_anchor=(0, -0.2))
|
|
218
|
+
plt.tight_layout()
|
|
219
|
+
plt.show()
|
|
220
|
+
|
|
221
|
+
# %%
|
|
222
|
+
# The figure above illustrates the necessity of choosing appropriate heat loss
|
|
223
|
+
# coefficients when using the PVSyst model for calculating the cell temperature
|
|
224
|
+
# for floating PV systems. A difference of up to 10.3 °C was obtained when
|
|
225
|
+
# using the default PVSyst coefficients versus using coefficients for systems
|
|
226
|
+
# where panels are in contact with water.
|
|
227
|
+
#
|
|
228
|
+
# It should be noted that, using the single combined U-value versus the
|
|
229
|
+
# :math:`U_c` and :math:`U_v` gives significantly different results, even
|
|
230
|
+
# when using the coefficients derived from the same system.
|
{pvlib-0.11.0a1 → pvlib-0.11.2}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py
RENAMED
|
@@ -32,6 +32,8 @@ class SeasonalTiltMount(pvsystem.AbstractMount):
|
|
|
32
32
|
surface_azimuth: float = 180.0
|
|
33
33
|
|
|
34
34
|
def get_orientation(self, solar_zenith, solar_azimuth):
|
|
35
|
+
# note: determining tilt based on month may produce different
|
|
36
|
+
# results depending on the time zone of the timestamps
|
|
35
37
|
tilts = [self.monthly_tilts[m-1] for m in solar_zenith.index.month]
|
|
36
38
|
return pd.DataFrame({
|
|
37
39
|
'surface_tilt': tilts,
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Use different Perez coefficients with the ModelChain
|
|
3
|
+
====================================================
|
|
4
|
+
|
|
5
|
+
This example demonstrates how to customize the ModelChain
|
|
6
|
+
to use site-specific Perez transposition coefficients.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
# %%
|
|
10
|
+
# The :py:class:`pvlib.modelchain.ModelChain` object provides a useful method
|
|
11
|
+
# for easily constructing a PV system model with a simple, unified interface.
|
|
12
|
+
# However, a user may want to customize the steps
|
|
13
|
+
# in the system model in various ways.
|
|
14
|
+
# One such example is during the irradiance transposition step.
|
|
15
|
+
# The Perez model perform very well on field data, but
|
|
16
|
+
# it requires a set of fitted coefficients from various sites.
|
|
17
|
+
# It has been noted that these coefficients can be specific to
|
|
18
|
+
# various climates, so users may see improved model accuracy
|
|
19
|
+
# when using a site-specific set of coefficients.
|
|
20
|
+
# However, the base :py:class:`~pvlib.modelchain.ModelChain`
|
|
21
|
+
# only supports the default coefficients.
|
|
22
|
+
# This example shows how the :py:class:`~pvlib.modelchain.ModelChain` can
|
|
23
|
+
# be adjusted to use a different set of Perez coefficients.
|
|
24
|
+
|
|
25
|
+
import pandas as pd
|
|
26
|
+
from pvlib.pvsystem import PVSystem
|
|
27
|
+
from pvlib.modelchain import ModelChain
|
|
28
|
+
from pvlib.temperature import TEMPERATURE_MODEL_PARAMETERS
|
|
29
|
+
from pvlib import iotools, location, irradiance
|
|
30
|
+
import pvlib
|
|
31
|
+
import os
|
|
32
|
+
import matplotlib.pyplot as plt
|
|
33
|
+
|
|
34
|
+
# load in TMY weather data from North Carolina included with pvlib
|
|
35
|
+
PVLIB_DIR = pvlib.__path__[0]
|
|
36
|
+
DATA_FILE = os.path.join(PVLIB_DIR, 'data', '723170TYA.CSV')
|
|
37
|
+
|
|
38
|
+
tmy, metadata = iotools.read_tmy3(DATA_FILE, coerce_year=1990,
|
|
39
|
+
map_variables=True)
|
|
40
|
+
|
|
41
|
+
weather_data = tmy[['ghi', 'dhi', 'dni', 'temp_air', 'wind_speed']]
|
|
42
|
+
|
|
43
|
+
loc = location.Location.from_tmy(metadata)
|
|
44
|
+
|
|
45
|
+
#%%
|
|
46
|
+
# Now, let's set up a standard PV model using the ``ModelChain``
|
|
47
|
+
|
|
48
|
+
surface_tilt = metadata['latitude']
|
|
49
|
+
surface_azimuth = 180
|
|
50
|
+
|
|
51
|
+
# define an example module and inverter
|
|
52
|
+
sandia_modules = pvlib.pvsystem.retrieve_sam('SandiaMod')
|
|
53
|
+
cec_inverters = pvlib.pvsystem.retrieve_sam('cecinverter')
|
|
54
|
+
sandia_module = sandia_modules['Canadian_Solar_CS5P_220M___2009_']
|
|
55
|
+
cec_inverter = cec_inverters['ABB__MICRO_0_25_I_OUTD_US_208__208V_']
|
|
56
|
+
|
|
57
|
+
temp_params = TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_glass']
|
|
58
|
+
|
|
59
|
+
# define the system and ModelChain
|
|
60
|
+
system = PVSystem(arrays=None,
|
|
61
|
+
surface_tilt=surface_tilt,
|
|
62
|
+
surface_azimuth=surface_azimuth,
|
|
63
|
+
module_parameters=sandia_module,
|
|
64
|
+
inverter_parameters=cec_inverter,
|
|
65
|
+
temperature_model_parameters=temp_params)
|
|
66
|
+
|
|
67
|
+
mc = ModelChain(system, location=loc)
|
|
68
|
+
|
|
69
|
+
# %%
|
|
70
|
+
# Now, let's calculate POA irradiance values outside of the ``ModelChain``.
|
|
71
|
+
# We do this for both the default Perez coefficients and the desired
|
|
72
|
+
# alternative Perez coefficients. This enables comparison at the end.
|
|
73
|
+
|
|
74
|
+
# Cape Canaveral seems like the most likely match for climate
|
|
75
|
+
model_perez = 'capecanaveral1988'
|
|
76
|
+
|
|
77
|
+
solar_position = loc.get_solarposition(times=weather_data.index)
|
|
78
|
+
dni_extra = irradiance.get_extra_radiation(weather_data.index)
|
|
79
|
+
|
|
80
|
+
POA_irradiance = irradiance.get_total_irradiance(
|
|
81
|
+
surface_tilt=surface_tilt,
|
|
82
|
+
surface_azimuth=surface_azimuth,
|
|
83
|
+
dni=weather_data['dni'],
|
|
84
|
+
ghi=weather_data['ghi'],
|
|
85
|
+
dhi=weather_data['dhi'],
|
|
86
|
+
solar_zenith=solar_position['apparent_zenith'],
|
|
87
|
+
solar_azimuth=solar_position['azimuth'],
|
|
88
|
+
model='perez',
|
|
89
|
+
dni_extra=dni_extra)
|
|
90
|
+
|
|
91
|
+
POA_irradiance_new_perez = irradiance.get_total_irradiance(
|
|
92
|
+
surface_tilt=surface_tilt,
|
|
93
|
+
surface_azimuth=surface_azimuth,
|
|
94
|
+
dni=weather_data['dni'],
|
|
95
|
+
ghi=weather_data['ghi'],
|
|
96
|
+
dhi=weather_data['dhi'],
|
|
97
|
+
solar_zenith=solar_position['apparent_zenith'],
|
|
98
|
+
solar_azimuth=solar_position['azimuth'],
|
|
99
|
+
model='perez',
|
|
100
|
+
model_perez=model_perez,
|
|
101
|
+
dni_extra=dni_extra)
|
|
102
|
+
|
|
103
|
+
# %%
|
|
104
|
+
# Now, run the ``ModelChain`` with both sets of irradiance data and compare
|
|
105
|
+
# (note that to use POA irradiance as input to the ModelChain the method
|
|
106
|
+
# `.run_model_from_poa` is used):
|
|
107
|
+
|
|
108
|
+
mc.run_model_from_poa(POA_irradiance)
|
|
109
|
+
ac_power_default = mc.results.ac
|
|
110
|
+
|
|
111
|
+
mc.run_model_from_poa(POA_irradiance_new_perez)
|
|
112
|
+
ac_power_new_perez = mc.results.ac
|
|
113
|
+
|
|
114
|
+
start, stop = '1990-05-05 06:00:00', '1990-05-05 19:00:00'
|
|
115
|
+
plt.plot(ac_power_default.loc[start:stop],
|
|
116
|
+
label="Default Composite Perez Model")
|
|
117
|
+
plt.plot(ac_power_new_perez.loc[start:stop],
|
|
118
|
+
label="Cape Canaveral Perez Model")
|
|
119
|
+
plt.xticks(rotation=90)
|
|
120
|
+
plt.ylabel("AC Power ($W$)")
|
|
121
|
+
plt.legend()
|
|
122
|
+
plt.tight_layout()
|
|
123
|
+
plt.show()
|
|
124
|
+
# %%
|
|
125
|
+
# Note that there is a small, but noticeable difference from the default
|
|
126
|
+
# coefficients that may add up over longer periods of time.
|
|
@@ -114,6 +114,8 @@ for idx, case in conditions.iterrows():
|
|
|
114
114
|
# mark the MPP
|
|
115
115
|
plt.plot([v_mp], [i_mp], ls='', marker='o', c='k')
|
|
116
116
|
|
|
117
|
+
plt.xlim(left=0)
|
|
118
|
+
plt.ylim(bottom=0)
|
|
117
119
|
plt.legend(loc=(1.0, 0))
|
|
118
120
|
plt.xlabel('Module voltage [V]')
|
|
119
121
|
plt.ylabel('Module current [A]')
|
|
@@ -47,7 +47,7 @@ import pvlib
|
|
|
47
47
|
import pandas as pd
|
|
48
48
|
import numpy as np
|
|
49
49
|
import matplotlib.pyplot as plt
|
|
50
|
-
from matplotlib.dates import
|
|
50
|
+
from matplotlib.dates import DateFormatter
|
|
51
51
|
|
|
52
52
|
pitch = 4 # meters
|
|
53
53
|
width = 1.5 # meters
|
|
@@ -235,10 +235,6 @@ for k, shade_losses in shade_losses_per_module.items():
|
|
|
235
235
|
ax1.plot(times, shade_losses, label=k, linestyle=linestyle)
|
|
236
236
|
ax1.legend(loc="upper center")
|
|
237
237
|
ax1.grid()
|
|
238
|
-
ax1.set_xlabel("Time")
|
|
239
|
-
ax1.xaxis.set_major_formatter(
|
|
240
|
-
ConciseDateFormatter("%H:%M", tz="Europe/Madrid")
|
|
241
|
-
)
|
|
242
238
|
ax1.set_ylabel(r"$P_{out}$ losses")
|
|
243
239
|
ax1.set_title("Per module")
|
|
244
240
|
|
|
@@ -248,9 +244,7 @@ for k, shade_losses in shade_losses_per_row.items():
|
|
|
248
244
|
ax2.legend(loc="upper center")
|
|
249
245
|
ax2.grid()
|
|
250
246
|
ax2.set_xlabel("Time")
|
|
251
|
-
ax2.xaxis.set_major_formatter(
|
|
252
|
-
ConciseDateFormatter("%H:%M", tz="Europe/Madrid")
|
|
253
|
-
)
|
|
247
|
+
ax2.xaxis.set_major_formatter(DateFormatter("%H:%M", tz="Europe/Madrid"))
|
|
254
248
|
ax2.set_ylabel(r"$P_{out}$ losses")
|
|
255
249
|
ax2.set_title("Per row")
|
|
256
250
|
fig.tight_layout()
|