pvlib 0.12.1a1__tar.gz → 0.13.0a1__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.12.1a1/pvlib.egg-info → pvlib-0.13.0a1}/PKG-INFO +1 -1
- pvlib-0.13.0a1/docs/examples/agrivoltaics/plot_agrivoltaics_ground_irradiance.py +163 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/system-models/plot_oedi_9068.py +1 -1
- pvlib-0.13.0a1/docs/sphinx/source/_images/agrivoltaics_system.jpg +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/conf.py +39 -4
- pvlib-0.13.0a1/docs/sphinx/source/reference/iotools.rst +238 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/bifacial.rst +1 -1
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/modelchain.rst +2 -2
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/pvsystem.rst +4 -4
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/weather_data.rst +4 -5
- pvlib-0.13.0a1/docs/sphinx/source/whatsnew/v0.12.1.rst +110 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/bifacial/infinite_sheds.py +11 -16
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/__init__.py +0 -1
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/bsrn.py +16 -10
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/epw.py +14 -11
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/psm3.py +37 -71
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/psm4.py +62 -115
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/pvgis.py +116 -101
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/sodapro.py +54 -69
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/srml.py +1 -2
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/ivtools/sdm/_fit_desoto_pvsyst_sandia.py +1 -1
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/pvsystem.py +21 -12
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/solarposition.py +1 -1
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spa_c_files/README.md +1 -1
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/temperature.py +13 -10
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/tools.py +27 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1/pvlib.egg-info}/PKG-INFO +1 -1
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib.egg-info/SOURCES.txt +2 -1
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/bifacial/test_infinite_sheds.py +12 -11
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_bsrn.py +20 -1
- pvlib-0.13.0a1/tests/iotools/test_epw.py +45 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_psm3.py +11 -2
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_psm4.py +6 -6
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_pvgis.py +82 -73
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_sodapro.py +13 -6
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_clearsky.py +10 -6
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_pvsystem.py +7 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_tools.py +30 -0
- pvlib-0.12.1a1/docs/sphinx/source/reference/iotools.rst +0 -71
- pvlib-0.12.1a1/docs/sphinx/source/whatsnew/v0.12.1.rst +0 -64
- pvlib-0.12.1a1/tests/data/tmy_45.000_8.000_2005_2023.txt +0 -8761
- pvlib-0.12.1a1/tests/iotools/test_epw.py +0 -23
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/AUTHORS.md +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/LICENSE +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/MANIFEST.in +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/README.md +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/adr-pvarray/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/adr-pvarray/plot_fit_to_matrix.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/adr-pvarray/plot_simulate_fast.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/adr-pvarray/plot_simulate_system.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/agrivoltaics/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/agrivoltaics/plot_diffuse_PAR_Spitters_relationship.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/bifacial/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/bifacial/plot_bifi_model_mc.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/bifacial/plot_irradiance_nonuniformity_loss.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/floating-pv/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/floating-pv/plot_floating_pv_cell_temperature.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-decomposition/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-transposition/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-transposition/plot_rtranpose_limitations.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-transposition/plot_rtranpose_year.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-transposition/plot_transposition_gain.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/irradiance-transposition/use_perez_modelchain.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/iv-modeling/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/iv-modeling/plot_singlediode.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/reflections/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/reflections/plot_convert_iam_models.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/reflections/plot_fit_iam_models.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/shading/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/shading/plot_martinez_shade_loss.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/shading/plot_partial_module_shading_simple.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/shading/plot_shaded_fraction1d_ns_hsat_example.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/shading/plot_simple_irradiance_adjustment_for_horizon_shading.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/soiling/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/solar-position/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/solar-position/plot_sunpath_diagrams.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/solar-tracking/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/spectrum/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/spectrum/average_photon_energy.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/spectrum/plot_spectrl2_fig51A.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/spectrum/plot_standard_ASTM_G173-03.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/spectrum/spectral_factor.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/examples/system-models/README.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/notes/Determining the average view factor from a module.pdf +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/Makefile +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/make.bat +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/Anderson_Jensen_2024_Fig3.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/Anderson_Mikofski_2020_Fig5.jpg +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/OEDI_9068_daily_timeseries.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/OEDI_9068_inverter1_comparison.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/OEDI_9068_inverter2_comparison.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/PV_module_layout_cesardd.jpg +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/clonebutton.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/example_function_screenshot.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_static/reference_format.css +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_static/tooltipster_color_theming.css +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_static/version-alert.js +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/_templates/edit-this-page.html +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/contributing/how_to_contribute_new_code.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/contributing/index.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/contributing/introduction_to_contributing.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/contributing/style_guide.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/contributing/testing.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/index.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/airmass_atmospheric.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/bifacial.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/classes.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/clearsky.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/index.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/irradiance/albedo.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/irradiance/class-methods.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/irradiance/clearness-index.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/irradiance/components.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/irradiance/decomposition.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/irradiance/index.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/irradiance/transposition.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/location.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/modelchain.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/pv_modeling/iam.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/pv_modeling/index.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/pv_modeling/inverter.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/pv_modeling/other.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/pv_modeling/parameters.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/pv_modeling/sdm.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/pv_modeling/system_models.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/pv_modeling/temperature.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/scaling.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/solarposition.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/tracking.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/reference/transformer.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/extras/faq.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/extras/nomenclature.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/getting_started/installation.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/getting_started/introtutorial.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/getting_started/package_overview.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/index.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/clearsky.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/singlediode.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/timetimezones.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.10.0.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.10.1.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.10.2.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.10.3.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.10.4.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.10.5.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.11.0.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.11.1.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.11.2.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.12.0.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.3.0.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.6.1.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.7.0.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.7.1.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.7.2.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.8.0.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.8.1.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.9.0.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.9.1.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.9.2.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.9.3.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.9.5.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew/v0.X.Y-example.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/whatsnew.rst +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/tutorials/atmosphere.ipynb +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/tutorials/irradiance.ipynb +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/tutorials/pvsystem.ipynb +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/tutorials/solarposition.ipynb +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/tutorials/tmy.ipynb +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/tutorials/tmy_to_power.ipynb +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/tutorials/tracking.ipynb +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/_deprecation.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/albedo.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/atmosphere.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/bifacial/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/bifacial/loss_models.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/bifacial/pvfactors.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/bifacial/utils.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/clearsky.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/12839.tm2 +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/703165TY.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/723170TYA.CSV +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/ASTMG173.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/Altitude.h5 +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/LinkeTurbidities.h5 +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iam.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/inverter.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/acis.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/crn.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/midc.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/panond.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/solaranywhere.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/solargis.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/solcast.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/solrad.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/surfrad.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/iotools/tmy.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/irradiance.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/ivtools/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/ivtools/sde.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/ivtools/sdm/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/ivtools/sdm/cec.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/ivtools/sdm/desoto.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/ivtools/sdm/pvsyst.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/ivtools/utils.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/location.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/modelchain.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/pvarray.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/scaling.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/shading.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/singlediode.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/snow.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/soiling.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spa.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spa_c_files/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spa_c_files/cspa_py.pxd +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spa_c_files/setup.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spa_c_files/spa_py.pyx +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spa_c_files/spa_py_example.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spectrum/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spectrum/irradiance.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spectrum/mismatch.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spectrum/response.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/spectrum/spectrl2.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/tracking.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/transformer.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib/version.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib.egg-info/dependency_links.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib.egg-info/requires.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pvlib.egg-info/top_level.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/pyproject.toml +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/scripts/update_top_ranking_issues.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/setup.cfg +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/setup.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/bifacial/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/bifacial/test_losses_models.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/bifacial/test_pvfactors.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/bifacial/test_utils.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/conftest.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/BIRD_08_16_2012.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/BIRD_08_16_2012_patm.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/CPS SCH275KTL-DO-US-800-250kW_275kVA_1.OND +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/CRN_with_problems.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/ET-M772BH550GL.PAN +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/NLD_Amsterdam062400_IWEC.epw +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/PVsyst_demo.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/PVsyst_demo_model.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/SRML-day-EUPO1801.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/abq19056.dat +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/bishop88_numerical_precision.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/bsrn-lr0100-pay0616.dat +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/bsrn-pay0616.dat.gz +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/cams_mcclear_1min_verbose.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/cams_mcclear_monthly.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/cams_radiation_1min_verbose.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/cams_radiation_monthly.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/detect_clearsky_data.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/detect_clearsky_threshold_data.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/greensboro_kimber_soil_manwash.dat +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/greensboro_kimber_soil_nowash.dat +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/inverter_fit_snl_meas.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/inverter_fit_snl_sim.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/ivtools_numdiff.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/midc_20181014.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/midc_raw_20181018.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/midc_raw_short_header_20191115.txt +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/msn19056.dat +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/precise_iv_curves1.json +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/precise_iv_curves2.json +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/precise_iv_curves_parameter_sets1.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/precise_iv_curves_parameter_sets2.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/pvgis_tmy_meta.json +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/pvgis_tmy_test.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/pvwatts_8760_rackmount.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/pvwatts_8760_roofmount.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/singleaxis_tracker_wslope.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/spectrl2_example_spectra.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/surfrad-slv16001.dat +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_psm3_2017.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_psm3_2019_5min.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_psm3_tmy-2017.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_psm4_2023.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_psm4_2023_5min.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_psm4_full_disc_2023.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_psm4_tmy-2023.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_read_psm3.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_read_psm4.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/test_read_pvgis_horizon.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/tmy_45.000_8.000_2005_2023.csv +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/tmy_45.000_8.000_2005_2023.epw +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/tmy_45.000_8.000_2005_2023.json +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/data/tmy_45.000_8.000_userhorizon.json +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_acis.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_crn.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_midc.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_panond.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_solaranywhere.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_solargis.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_solcast.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_solrad.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_srml.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_surfrad.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/iotools/test_tmy.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/ivtools/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/ivtools/sdm/conftest.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/ivtools/sdm/test__fit_desoto_pvsyst_sandia.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/ivtools/sdm/test_cec.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/ivtools/sdm/test_desoto.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/ivtools/sdm/test_pvsyst.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/ivtools/test_sde.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/ivtools/test_utils.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/spectrum/__init__.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/spectrum/conftest.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/spectrum/test_irradiance.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/spectrum/test_mismatch.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/spectrum/test_response.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/spectrum/test_spectrl2.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test__deprecation.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_albedo.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_atmosphere.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_conftest.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_iam.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_inverter.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_irradiance.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_location.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_modelchain.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_numerical_precision.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_pvarray.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_scaling.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_shading.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_singlediode.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_snow.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_soiling.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_solarposition.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_spa.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_temperature.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_tracking.py +0 -0
- {pvlib-0.12.1a1 → pvlib-0.13.0a1}/tests/test_transformer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pvlib
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0a1
|
|
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>
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Agrivoltaic system modeling
|
|
3
|
+
===========================
|
|
4
|
+
|
|
5
|
+
Irradiance at crop level between rows
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
# %%
|
|
9
|
+
# This example demonstrates how to calculate power output for a bifacial
|
|
10
|
+
# agriPV plant as well as calculating the irradiance at crop level
|
|
11
|
+
# using pvlib's infinite sheds model.
|
|
12
|
+
# For an overview of agrivPV concepts and performance, the reader
|
|
13
|
+
# is referred to :doi:`10.69766/XAEU5008`.
|
|
14
|
+
#
|
|
15
|
+
# This gallery example is based on an actual AgriPV plant, namely
|
|
16
|
+
# European Energy's `Flakkebjerg AgriPV site
|
|
17
|
+
# <https://europeanenergy.com/2023/12/20/using-the-same-land-twice-at-european-\
|
|
18
|
+
# energys-flakkebjerg-solar-park/>`_.
|
|
19
|
+
#
|
|
20
|
+
# The first steps are to define the plant location and to calculate solar
|
|
21
|
+
# position and clearsky irradiance for a single day as an example.
|
|
22
|
+
#
|
|
23
|
+
# .. figure:: ../../_images/agrivoltaics_system.jpg
|
|
24
|
+
# :align: center
|
|
25
|
+
# :width: 75%
|
|
26
|
+
# :alt: Photo of an agriPV system
|
|
27
|
+
#
|
|
28
|
+
# Photo of an agriPV system.
|
|
29
|
+
# *Source: Adam R. Jensen*
|
|
30
|
+
|
|
31
|
+
import pvlib
|
|
32
|
+
import pandas as pd
|
|
33
|
+
from pvlib.tools import cosd
|
|
34
|
+
import matplotlib.pyplot as plt
|
|
35
|
+
|
|
36
|
+
# sphinx_gallery_thumbnail_path = '_images/agrivoltaics_system.jpg'
|
|
37
|
+
|
|
38
|
+
location = pvlib.location.Location(latitude=55, longitude=10)
|
|
39
|
+
|
|
40
|
+
times = pd.date_range('2020-06-28', periods=24*60, freq='1min', tz='UTC')
|
|
41
|
+
|
|
42
|
+
solpos = location.get_solarposition(times)
|
|
43
|
+
|
|
44
|
+
clearsky = location.get_clearsky(times, model='ineichen')
|
|
45
|
+
|
|
46
|
+
# %%
|
|
47
|
+
# Next, we need to define the plant layout:
|
|
48
|
+
|
|
49
|
+
height = 2.6 # [m] height of torque above ground
|
|
50
|
+
pitch = 12 # [m] row spacing
|
|
51
|
+
row_width = 2 * 2.384 # [m] two modules in portrait, each 2 m long
|
|
52
|
+
gcr = row_width / pitch # ground coverage ratio [unitless]
|
|
53
|
+
axis_azimuth = 0 # [degrees] north-south tracking axis
|
|
54
|
+
max_angle = 55 # [degrees] maximum rotation angle
|
|
55
|
+
|
|
56
|
+
# %%
|
|
57
|
+
# Before running the infinite sheds model, we need to know the orientation
|
|
58
|
+
# of the trackers. For a single-axis tracker, this can be calculated as:
|
|
59
|
+
|
|
60
|
+
tracking_orientations = pvlib.tracking.singleaxis(
|
|
61
|
+
apparent_zenith=solpos['apparent_zenith'],
|
|
62
|
+
apparent_azimuth=solpos['azimuth'],
|
|
63
|
+
axis_azimuth=axis_azimuth,
|
|
64
|
+
max_angle=max_angle,
|
|
65
|
+
backtrack=True,
|
|
66
|
+
gcr=gcr,
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
# %%
|
|
70
|
+
# For agrivPV systems, the local albedo is dependent on crop growth and thus
|
|
71
|
+
# changes throughout the seasons. In this example, we only simulate one
|
|
72
|
+
# day and thus use a constant value. Similarly, we will assume a constant
|
|
73
|
+
# air temperature to avoid getting external data. Both albedo and air
|
|
74
|
+
# temperature could be defined as Series with the same index as used for the
|
|
75
|
+
# solar position calculations.
|
|
76
|
+
|
|
77
|
+
albedo = 0.20 # [unitless]
|
|
78
|
+
temp_air = 18 # [degrees C]
|
|
79
|
+
|
|
80
|
+
# %%
|
|
81
|
+
# Now, we are ready to calculate the front and rear-side irradiance using
|
|
82
|
+
# the pvlib infinite sheds model.
|
|
83
|
+
|
|
84
|
+
dni_extra = pvlib.irradiance.get_extra_radiation(times)
|
|
85
|
+
|
|
86
|
+
irradiance = pvlib.bifacial.infinite_sheds.get_irradiance(
|
|
87
|
+
surface_tilt=tracking_orientations['surface_tilt'],
|
|
88
|
+
surface_azimuth=tracking_orientations['surface_azimuth'],
|
|
89
|
+
solar_zenith=solpos['apparent_zenith'],
|
|
90
|
+
solar_azimuth=solpos['azimuth'],
|
|
91
|
+
gcr=gcr,
|
|
92
|
+
height=height,
|
|
93
|
+
pitch=pitch,
|
|
94
|
+
ghi=clearsky['ghi'],
|
|
95
|
+
dhi=clearsky['dhi'],
|
|
96
|
+
dni=clearsky['dni'],
|
|
97
|
+
albedo=albedo,
|
|
98
|
+
model='haydavies',
|
|
99
|
+
dni_extra=dni_extra,
|
|
100
|
+
bifaciality=0.7, # [unitless] rear-side power relative to front-side
|
|
101
|
+
)
|
|
102
|
+
|
|
103
|
+
# %%
|
|
104
|
+
# Once the in-plane irradiance is known, we can estimate the PV array power.
|
|
105
|
+
# For simplicity, we use the PVWatts model:
|
|
106
|
+
|
|
107
|
+
N_modules = 1512 # [unitless] Number of modules
|
|
108
|
+
pdc0_per_module = 660 # [W] STC rating
|
|
109
|
+
pdc0 = pdc0_per_module * N_modules
|
|
110
|
+
|
|
111
|
+
gamma_pdc = -0.004 # [1/degrees C]
|
|
112
|
+
|
|
113
|
+
temp_cell = pvlib.temperature.faiman(
|
|
114
|
+
poa_global=irradiance['poa_global'],
|
|
115
|
+
temp_air=temp_air,
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
power_dc = pvlib.pvsystem.pvwatts_dc(
|
|
119
|
+
effective_irradiance=irradiance['poa_global'],
|
|
120
|
+
temp_cell=temp_cell,
|
|
121
|
+
pdc0=pdc0,
|
|
122
|
+
gamma_pdc=gamma_pdc)
|
|
123
|
+
|
|
124
|
+
power_dc.divide(1000).plot()
|
|
125
|
+
plt.ylabel('DC power [kW]')
|
|
126
|
+
plt.show()
|
|
127
|
+
|
|
128
|
+
# %%
|
|
129
|
+
# In addition to the power output of the PV array, we are also interested
|
|
130
|
+
# in how much irradiance reaches the crops under the array. In this case
|
|
131
|
+
# we calculate the average irradiance on the ground between two rows, using
|
|
132
|
+
# the infinite sheds utility functions.
|
|
133
|
+
#
|
|
134
|
+
# This consists of two parts. First we determine the diffuse irradiance on
|
|
135
|
+
# ground and second we calculate the fraction of the ground that is unshaded
|
|
136
|
+
# (i.e., receives DNI).
|
|
137
|
+
|
|
138
|
+
vf_ground_sky = pvlib.bifacial.utils.vf_ground_sky_2d_integ(
|
|
139
|
+
surface_tilt=tracking_orientations['surface_tilt'],
|
|
140
|
+
gcr=gcr,
|
|
141
|
+
height=height,
|
|
142
|
+
pitch=pitch,
|
|
143
|
+
)
|
|
144
|
+
|
|
145
|
+
unshaded_ground_fraction = pvlib.bifacial.utils._unshaded_ground_fraction(
|
|
146
|
+
surface_tilt=tracking_orientations['surface_tilt'],
|
|
147
|
+
surface_azimuth=tracking_orientations['surface_azimuth'],
|
|
148
|
+
solar_zenith=solpos['apparent_zenith'],
|
|
149
|
+
solar_azimuth=solpos['azimuth'],
|
|
150
|
+
gcr=gcr,
|
|
151
|
+
)
|
|
152
|
+
|
|
153
|
+
crop_avg_irradiance = (unshaded_ground_fraction * clearsky['dni']
|
|
154
|
+
* cosd(solpos['apparent_zenith'])
|
|
155
|
+
+ vf_ground_sky * clearsky['dhi'])
|
|
156
|
+
|
|
157
|
+
fig, ax = plt.subplots()
|
|
158
|
+
clearsky['ghi'].plot(ax=ax, label='Horizontal irradiance above panels')
|
|
159
|
+
crop_avg_irradiance.plot(ax=ax, label='Horizontal irradiance at crop level')
|
|
160
|
+
ax.legend(loc='upper center')
|
|
161
|
+
ax.set_ylabel('Irradiance [W/m$^2$]')
|
|
162
|
+
ax.set_ylim(-10, 1050)
|
|
163
|
+
plt.show()
|
|
@@ -165,7 +165,7 @@ psm3, psm3_metadata = pvlib.iotools.get_psm3(latitude, longitude, api_key,
|
|
|
165
165
|
# module fraction and returns the average irradiance over the total module
|
|
166
166
|
# surface.
|
|
167
167
|
|
|
168
|
-
solar_position = location.get_solarposition(psm3.index
|
|
168
|
+
solar_position = location.get_solarposition(psm3.index)
|
|
169
169
|
tracker_angles = mount.get_orientation(
|
|
170
170
|
solar_position['apparent_zenith'],
|
|
171
171
|
solar_position['azimuth']
|
|
Binary file
|
|
@@ -412,6 +412,41 @@ warnings.filterwarnings("ignore", category=UserWarning,
|
|
|
412
412
|
# https://gist.github.com/flying-sheep/b65875c0ce965fbdd1d9e5d0b9851ef1
|
|
413
413
|
|
|
414
414
|
|
|
415
|
+
# select correct base URL depending on the build system context
|
|
416
|
+
def get_source_files_base_url():
|
|
417
|
+
"""
|
|
418
|
+
Get the base URL for the source code to generate links to GitHub source.
|
|
419
|
+
If the build is on ReadTheDocs and it's a stable version, use the
|
|
420
|
+
versioned link. If it's a latest version, use the main link.
|
|
421
|
+
|
|
422
|
+
For other builds (e.g. pull requests), use the main link.
|
|
423
|
+
Local builds will also use the main link.
|
|
424
|
+
|
|
425
|
+
Resulting base URL should end with a trailing slash.
|
|
426
|
+
|
|
427
|
+
See https://docs.readthedocs.com/platform/stable/reference/environment-variables.html
|
|
428
|
+
""" # noqa: E501
|
|
429
|
+
repo_url = os.environ.get(
|
|
430
|
+
"READTHEDOCS_GIT_CLONE_URL",
|
|
431
|
+
default="https://github.com/pvlib/pvlib-python",
|
|
432
|
+
)
|
|
433
|
+
READTHEDOCS_ENV = os.environ.get("READTHEDOCS", None) == "True"
|
|
434
|
+
READTHEDOCS_VERSION = os.environ.get("READTHEDOCS_VERSION", None)
|
|
435
|
+
READTHEDOCS_GIT_IDENTIFIER = os.environ.get(
|
|
436
|
+
"READTHEDOCS_GIT_IDENTIFIER", None
|
|
437
|
+
)
|
|
438
|
+
if READTHEDOCS_ENV: # Building docs on ReadTheDocs
|
|
439
|
+
if READTHEDOCS_VERSION == "latest": # latest version, commited to main
|
|
440
|
+
repo_url += "/blob/main/"
|
|
441
|
+
elif READTHEDOCS_VERSION == "stable": # stable version, has a tag
|
|
442
|
+
repo_url += f"/blob/{READTHEDOCS_GIT_IDENTIFIER}/"
|
|
443
|
+
else: # pull request, user and branch are unknown so use main
|
|
444
|
+
repo_url += "/blob/main/"
|
|
445
|
+
else: # Local build
|
|
446
|
+
repo_url += "/blob/main/" # can't tell where to point to
|
|
447
|
+
return repo_url
|
|
448
|
+
|
|
449
|
+
|
|
415
450
|
def get_obj_module(qualname):
|
|
416
451
|
"""
|
|
417
452
|
Get a module/class/attribute and its original module by qualname.
|
|
@@ -456,6 +491,9 @@ def get_linenos(obj):
|
|
|
456
491
|
return start, start + len(lines) - 1
|
|
457
492
|
|
|
458
493
|
|
|
494
|
+
URL_BASE = get_source_files_base_url() # Edit on GitHub source code links
|
|
495
|
+
|
|
496
|
+
|
|
459
497
|
def make_github_url(file_name):
|
|
460
498
|
"""
|
|
461
499
|
Generate the appropriate GH link for a given docs page. This function
|
|
@@ -463,11 +501,8 @@ def make_github_url(file_name):
|
|
|
463
501
|
|
|
464
502
|
The target URL is built differently based on the type of page. The pydata
|
|
465
503
|
sphinx theme has a built-in `file_name` variable that looks like
|
|
466
|
-
"
|
|
504
|
+
"docs/sphinx/source/api.rst" or "generated/pvlib.atmosphere.alt2pres.rst"
|
|
467
505
|
"""
|
|
468
|
-
|
|
469
|
-
URL_BASE = "https://github.com/pvlib/pvlib-python/blob/main/"
|
|
470
|
-
|
|
471
506
|
# is it a gallery page?
|
|
472
507
|
if any(d in file_name for d in sphinx_gallery_conf['gallery_dirs']):
|
|
473
508
|
example_folder = file_name.split("/")[-2]
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
|
|
2
|
+
.. py:module:: pvlib.iotools
|
|
3
|
+
|
|
4
|
+
.. currentmodule:: pvlib
|
|
5
|
+
|
|
6
|
+
.. _iotools:
|
|
7
|
+
|
|
8
|
+
IO Tools
|
|
9
|
+
========
|
|
10
|
+
|
|
11
|
+
Functions for retrieving, reading, and writing data from a variety
|
|
12
|
+
of sources and file formats relevant to solar energy modeling. See also
|
|
13
|
+
:ref:`weatherdata`.
|
|
14
|
+
|
|
15
|
+
.. contents:: Currently supported APIs
|
|
16
|
+
:depth: 3
|
|
17
|
+
:local:
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Gridded solar resource data
|
|
21
|
+
---------------------------
|
|
22
|
+
|
|
23
|
+
Modeled irradiance and meteorological data, available for large regions of
|
|
24
|
+
the world.
|
|
25
|
+
|
|
26
|
+
Public datasets
|
|
27
|
+
^^^^^^^^^^^^^^^
|
|
28
|
+
|
|
29
|
+
These APIs are free to access, although some require registration.
|
|
30
|
+
|
|
31
|
+
PVGIS
|
|
32
|
+
*****
|
|
33
|
+
|
|
34
|
+
Multiple gridded irradiance datasets and weather data with global coverage.
|
|
35
|
+
|
|
36
|
+
.. autosummary::
|
|
37
|
+
:toctree: generated/
|
|
38
|
+
|
|
39
|
+
iotools.get_pvgis_tmy
|
|
40
|
+
iotools.read_pvgis_tmy
|
|
41
|
+
iotools.get_pvgis_hourly
|
|
42
|
+
iotools.read_pvgis_hourly
|
|
43
|
+
iotools.get_pvgis_horizon
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
CAMS
|
|
47
|
+
****
|
|
48
|
+
|
|
49
|
+
Satellite-derived irradiance data for Europe, Africa, and Asia, and
|
|
50
|
+
clear-sky irradiance globally.
|
|
51
|
+
|
|
52
|
+
.. autosummary::
|
|
53
|
+
:toctree: generated/
|
|
54
|
+
|
|
55
|
+
iotools.get_cams
|
|
56
|
+
iotools.read_cams
|
|
57
|
+
iotools.parse_cams
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
NSRDB
|
|
61
|
+
*****
|
|
62
|
+
|
|
63
|
+
Satellite-derived irradiance and weather data for the Americas.
|
|
64
|
+
|
|
65
|
+
.. autosummary::
|
|
66
|
+
:toctree: generated/
|
|
67
|
+
|
|
68
|
+
iotools.get_nsrdb_psm4_aggregated
|
|
69
|
+
iotools.get_nsrdb_psm4_tmy
|
|
70
|
+
iotools.get_nsrdb_psm4_conus
|
|
71
|
+
iotools.get_nsrdb_psm4_full_disc
|
|
72
|
+
iotools.read_nsrdb_psm4
|
|
73
|
+
iotools.get_psm3
|
|
74
|
+
iotools.read_psm3
|
|
75
|
+
iotools.parse_psm3
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
Commercial datasets
|
|
79
|
+
^^^^^^^^^^^^^^^^^^^
|
|
80
|
+
|
|
81
|
+
Accessing these APIs typically requires payment.
|
|
82
|
+
Datasets provide near-global coverage.
|
|
83
|
+
|
|
84
|
+
SolarAnywhere
|
|
85
|
+
*************
|
|
86
|
+
|
|
87
|
+
.. autosummary::
|
|
88
|
+
:toctree: generated/
|
|
89
|
+
|
|
90
|
+
iotools.get_solaranywhere
|
|
91
|
+
iotools.read_solaranywhere
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
Solcast
|
|
95
|
+
*******
|
|
96
|
+
|
|
97
|
+
.. autosummary::
|
|
98
|
+
:toctree: generated/
|
|
99
|
+
|
|
100
|
+
iotools.get_solcast_tmy
|
|
101
|
+
iotools.get_solcast_historic
|
|
102
|
+
iotools.get_solcast_forecast
|
|
103
|
+
iotools.get_solcast_live
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
Solargis
|
|
107
|
+
********
|
|
108
|
+
|
|
109
|
+
.. autosummary::
|
|
110
|
+
:toctree: generated/
|
|
111
|
+
|
|
112
|
+
iotools.get_solargis
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
Ground station solar data
|
|
116
|
+
-------------------------
|
|
117
|
+
|
|
118
|
+
Measurements from various networks of ground stations
|
|
119
|
+
focusing on solar irradiance.
|
|
120
|
+
|
|
121
|
+
BSRN
|
|
122
|
+
^^^^
|
|
123
|
+
|
|
124
|
+
A global network dedicated to high-quality monitoring of solar and
|
|
125
|
+
long-wave radiation.
|
|
126
|
+
|
|
127
|
+
.. autosummary::
|
|
128
|
+
:toctree: generated/
|
|
129
|
+
|
|
130
|
+
iotools.get_bsrn
|
|
131
|
+
iotools.read_bsrn
|
|
132
|
+
iotools.parse_bsrn
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
SOLRAD
|
|
136
|
+
^^^^^^
|
|
137
|
+
|
|
138
|
+
A solar radiation network in the USA, run by NOAA.
|
|
139
|
+
|
|
140
|
+
.. autosummary::
|
|
141
|
+
:toctree: generated/
|
|
142
|
+
|
|
143
|
+
iotools.read_solrad
|
|
144
|
+
iotools.get_solrad
|
|
145
|
+
|
|
146
|
+
|
|
147
|
+
SURFRAD
|
|
148
|
+
^^^^^^^
|
|
149
|
+
|
|
150
|
+
A solar radiation network in the USA, run by NOAA.
|
|
151
|
+
|
|
152
|
+
.. autosummary::
|
|
153
|
+
:toctree: generated/
|
|
154
|
+
|
|
155
|
+
iotools.read_surfrad
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
MIDC
|
|
159
|
+
^^^^
|
|
160
|
+
|
|
161
|
+
A solar radiation network in the USA, run by NREL.
|
|
162
|
+
|
|
163
|
+
.. autosummary::
|
|
164
|
+
:toctree: generated/
|
|
165
|
+
|
|
166
|
+
iotools.read_midc
|
|
167
|
+
iotools.read_midc_raw_data_from_nrel
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
SRML
|
|
171
|
+
^^^^
|
|
172
|
+
|
|
173
|
+
A solar radiation network in the northwestern USA, run by
|
|
174
|
+
the University of Oregon.
|
|
175
|
+
|
|
176
|
+
.. autosummary::
|
|
177
|
+
:toctree: generated/
|
|
178
|
+
|
|
179
|
+
iotools.read_srml
|
|
180
|
+
iotools.get_srml
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
Weather data
|
|
184
|
+
------------
|
|
185
|
+
|
|
186
|
+
Meteorological data from a variety of modeled and measured datasets.
|
|
187
|
+
|
|
188
|
+
ACIS
|
|
189
|
+
^^^^
|
|
190
|
+
|
|
191
|
+
A combination of many meteorological datasets providing temperature,
|
|
192
|
+
precipitation, wind speed, and other weather measurements.
|
|
193
|
+
|
|
194
|
+
.. autosummary::
|
|
195
|
+
:toctree: generated/
|
|
196
|
+
|
|
197
|
+
iotools.get_acis_prism
|
|
198
|
+
iotools.get_acis_nrcc
|
|
199
|
+
iotools.get_acis_mpe
|
|
200
|
+
iotools.get_acis_station_data
|
|
201
|
+
iotools.get_acis_available_stations
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
CRN
|
|
205
|
+
^^^
|
|
206
|
+
|
|
207
|
+
A network of ground stations from NOAA. Irradiance measurements are of
|
|
208
|
+
lower quality.
|
|
209
|
+
|
|
210
|
+
.. autosummary::
|
|
211
|
+
:toctree: generated/
|
|
212
|
+
|
|
213
|
+
iotools.read_crn
|
|
214
|
+
|
|
215
|
+
|
|
216
|
+
Generic data file readers
|
|
217
|
+
-------------------------
|
|
218
|
+
|
|
219
|
+
Functions for reading irradiance/weather data files.
|
|
220
|
+
|
|
221
|
+
.. autosummary::
|
|
222
|
+
:toctree: generated/
|
|
223
|
+
|
|
224
|
+
iotools.read_tmy2
|
|
225
|
+
iotools.read_tmy3
|
|
226
|
+
iotools.read_epw
|
|
227
|
+
iotools.parse_epw
|
|
228
|
+
iotools.read_panond
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
A :py:class:`~pvlib.location.Location` object may be created from metadata
|
|
232
|
+
in some files.
|
|
233
|
+
|
|
234
|
+
.. autosummary::
|
|
235
|
+
:toctree: generated/
|
|
236
|
+
|
|
237
|
+
location.Location.from_tmy
|
|
238
|
+
location.Location.from_epw
|
{pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/bifacial.rst
RENAMED
|
@@ -80,7 +80,7 @@ The model operates in the following steps:
|
|
|
80
80
|
determines the fraction of ground-reflected irradiance that reaches the row
|
|
81
81
|
surface.
|
|
82
82
|
4. Find the fraction of the row surface that is shaded from direct irradiance.
|
|
83
|
-
Only sky and ground-reflected irradiance reach the
|
|
83
|
+
Only sky and ground-reflected irradiance reach the shaded fraction of
|
|
84
84
|
the row surface.
|
|
85
85
|
5. For the front and rear surfaces, apply the incidence angle modifier to
|
|
86
86
|
the direct irradiance and sum the diffuse sky, diffuse ground, and direct
|
{pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/modelchain.rst
RENAMED
|
@@ -371,7 +371,7 @@ DC quantities to the output of the full PVSystem.
|
|
|
371
371
|
mc.results.dc
|
|
372
372
|
|
|
373
373
|
We’ve established that the ``ModelChain.pvwatts_dc`` and
|
|
374
|
-
``ModelChain.sapm`` have the same API: they take the same
|
|
374
|
+
``ModelChain.sapm`` have the same API: they take the same arguments
|
|
375
375
|
(``self``) and they both set the ``dc`` attribute.\* Because the methods
|
|
376
376
|
have the same API, we can call them in the same way. ModelChain includes
|
|
377
377
|
a large number of methods that perform the same API-unification roles
|
|
@@ -489,7 +489,7 @@ Temperature data are passed in the ``weather`` DataFrame and can include:
|
|
|
489
489
|
method is used to calculate cell temperature. If ``ModelChain.temperature_model``
|
|
490
490
|
is set to any other model, ``'module_temperature'`` is ignored.
|
|
491
491
|
* ambient air temperature (``'temp_air'``). In this case ``ModelChain.temperature_model``
|
|
492
|
-
is used to calculate cell
|
|
492
|
+
is used to calculate cell temperature.
|
|
493
493
|
|
|
494
494
|
Cell temperature models also can use irradiance as input. All cell
|
|
495
495
|
temperature models expect POA irradiance (``'poa_global'``) as input. When
|
{pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/pvsystem.rst
RENAMED
|
@@ -75,7 +75,7 @@ data irradiance and temperature.
|
|
|
75
75
|
|
|
76
76
|
.. ipython:: python
|
|
77
77
|
|
|
78
|
-
pdc = system.pvwatts_dc(
|
|
78
|
+
pdc = system.pvwatts_dc(effective_irradiance=1000, temp_cell=30)
|
|
79
79
|
print(pdc)
|
|
80
80
|
|
|
81
81
|
Methods attached to a PVSystem object wrap the corresponding functions in
|
|
@@ -84,8 +84,8 @@ using data stored in the PVSystem attributes. Compare the
|
|
|
84
84
|
:py:meth:`~pvlib.pvsystem.PVSystem.pvwatts_dc` method signature to the
|
|
85
85
|
:py:func:`~pvlib.pvsystem.pvwatts_dc` function signature:
|
|
86
86
|
|
|
87
|
-
* :py:meth:`PVSystem.pvwatts_dc(
|
|
88
|
-
* :py:func:`pvwatts_dc(
|
|
87
|
+
* :py:meth:`PVSystem.pvwatts_dc(effective_irradiance, temp_cell) <pvlib.pvsystem.PVSystem.pvwatts_dc>`
|
|
88
|
+
* :py:func:`pvwatts_dc(effective_irradiance, temp_cell, pdc0, gamma_pdc, temp_ref=25.) <pvlib.pvsystem.pvwatts_dc>`
|
|
89
89
|
|
|
90
90
|
How does this work? The :py:meth:`~pvlib.pvsystem.PVSystem.pvwatts_dc`
|
|
91
91
|
method looks in `PVSystem.module_parameters` for the `pdc0`, and
|
|
@@ -240,7 +240,7 @@ operates in a similar manner.
|
|
|
240
240
|
|
|
241
241
|
|
|
242
242
|
The `PVSystem` method :py:meth:`~pvlib.pvsystem.PVSystem.get_aoi`
|
|
243
|
-
operates on all `Array` instances in the `PVSystem`, whereas the
|
|
243
|
+
operates on all `Array` instances in the `PVSystem`, whereas the
|
|
244
244
|
`Array` method operates only on its `Array` instance.
|
|
245
245
|
|
|
246
246
|
.. ipython:: python
|
{pvlib-0.12.1a1 → pvlib-0.13.0a1}/docs/sphinx/source/user_guide/modeling_topics/weather_data.rst
RENAMED
|
@@ -35,7 +35,7 @@ them.
|
|
|
35
35
|
source of weather information. However, the coverage depends on
|
|
36
36
|
a weather station having been set up in advance for the location and
|
|
37
37
|
times of interest. Some ground station networks like the BSRN and SURFRAD
|
|
38
|
-
make their measurement data publicly available.
|
|
38
|
+
make their measurement data publicly available. A global overview of ground
|
|
39
39
|
stations is available at https://SolarStations.org.
|
|
40
40
|
|
|
41
41
|
Data from public ground station measurement networks are useful if you
|
|
@@ -50,7 +50,7 @@ them.
|
|
|
50
50
|
weather station. They have high spatial and temporal resolution
|
|
51
51
|
corresponding to the source satellite imagery, and are generally
|
|
52
52
|
optimised to estimate solar irradiance for PV applications. Free sources
|
|
53
|
-
such as PVGIS, NSRDB, and CAMS are available, and
|
|
53
|
+
such as PVGIS, NSRDB, and CAMS are available, and commercial sources such
|
|
54
54
|
as SolarAnywhere, Solcast, and Solargis provide paid options though often
|
|
55
55
|
have free trials.
|
|
56
56
|
|
|
@@ -76,7 +76,7 @@ them.
|
|
|
76
76
|
Usage
|
|
77
77
|
-----
|
|
78
78
|
|
|
79
|
-
|
|
79
|
+
The :py:mod:`pvlib.iotools` functions
|
|
80
80
|
provide a uniform interface for accessing data across many formats.
|
|
81
81
|
Specifically, :py:mod:`pvlib.iotools` functions usually return two objects:
|
|
82
82
|
a :py:class:`pandas.DataFrame` of the actual dataset, plus a metadata
|
|
@@ -89,8 +89,7 @@ Typical usage looks something like this:
|
|
|
89
89
|
|
|
90
90
|
.. code-block:: python
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
df, _, _, metadata = pvlib.iotools.get_pvgis_tmy(latitude, longitude, map_variables=True)
|
|
92
|
+
df, metadata = pvlib.iotools.get_pvgis_tmy(latitude, longitude, map_variables=True)
|
|
94
93
|
|
|
95
94
|
This code will fetch a Typical Meteorological Year (TMY) dataset from PVGIS,
|
|
96
95
|
returning a :py:class:`pandas.DataFrame` containing the hourly weather data
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
.. _whatsnew_01201:
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
v0.12.1 (XXXX, 2025)
|
|
5
|
+
------------------------
|
|
6
|
+
|
|
7
|
+
Breaking Changes
|
|
8
|
+
~~~~~~~~~~~~~~~~
|
|
9
|
+
* The functions :py:func:`~pvlib.iotools.read_pvgis_hourly` and
|
|
10
|
+
:py:func:`~pvlib.iotools.get_pvgis_hourly` now return ``(data,meta)``
|
|
11
|
+
following the iotools convention instead of ``(data,inputs,meta)``.
|
|
12
|
+
The ``inputs`` dictionary is now included in ``meta``, which
|
|
13
|
+
has changed structure to accommodate it. (:pull:`2462`)
|
|
14
|
+
* The functions :py:func:`~pvlib.iotools.read_pvgis_tmy` and
|
|
15
|
+
:py:func:`~pvlib.iotools.get_pvgis_tmy` now return ``(data,meta)``
|
|
16
|
+
following the iotools convention instead of ``(data,months_selected,inputs,meta)``.
|
|
17
|
+
(:pull:`2470`)
|
|
18
|
+
* :py:func:`~pvlib.iotools.get_pvgis_tmy` now defaults to ``coerce_year=1990``,
|
|
19
|
+
whereas the default behavior previously was to use the years of the selected
|
|
20
|
+
months for the TMY index. (:pull:`2474`)
|
|
21
|
+
* Remove ``outputformat='basic'`` option in :py:func:`~pvlib.iotools.get_pvgis_tmy`.
|
|
22
|
+
(:pull:`2416`)
|
|
23
|
+
|
|
24
|
+
Deprecations
|
|
25
|
+
~~~~~~~~~~~~
|
|
26
|
+
* The following ``parse_`` functions in :py:mod:`pvlib.iotools` are deprecated,
|
|
27
|
+
with the corresponding ``read_`` functions taking their place: (:issue:`2444`, :pull:`2458`,
|
|
28
|
+
:pull:`2467`, :pull:`2466`)
|
|
29
|
+
|
|
30
|
+
- :py:func:`~pvlib.iotools.parse_epw`
|
|
31
|
+
- :py:func:`~pvlib.iotools.parse_psm3`
|
|
32
|
+
- :py:func:`~pvlib.iotools.parse_cams`
|
|
33
|
+
- :py:func:`~pvlib.iotools.parse_bsrn`
|
|
34
|
+
|
|
35
|
+
* The ``server`` parameter in :py:func:`~pvlib.iotools.get_cams` has been renamed
|
|
36
|
+
to ``url`` to be consistent with the other iotools.
|
|
37
|
+
:pull:`2463`
|
|
38
|
+
* Rename parameter name ``g_poa_effective`` to ``effective_irradiance`` in
|
|
39
|
+
:py:func:`~pvlib.pvsystem.PVSystem.pvwatts_dc` and :py:func:`~pvlib.pvsystem.pvwatts_dc`.
|
|
40
|
+
(:issue:`1253`, :pull:`2235`)
|
|
41
|
+
|
|
42
|
+
Bug fixes
|
|
43
|
+
~~~~~~~~~
|
|
44
|
+
* :py:func:`pvlib.iotools.get_pvgis_tmy` now returns the correct dtypes when
|
|
45
|
+
when ``outputformat='epw'``. (:issue:`2399`, :pull:`2417`)
|
|
46
|
+
|
|
47
|
+
Enhancements
|
|
48
|
+
~~~~~~~~~~~~
|
|
49
|
+
* :py:mod:`pvlib.ivtools.sdm` is now a subpackage. (:issue:`2252`, :pull:`2256`)
|
|
50
|
+
* Add a function for estimating PVsyst SDM parameters from IEC 61853-1 matrix
|
|
51
|
+
data (:py:func:`~pvlib.ivtools.sdm.fit_pvsyst_iec61853_sandia_2025`). (:issue:`2185`, :pull:`2429`)
|
|
52
|
+
* The parameters for the Ix and Ixx points are now optional when using
|
|
53
|
+
:py:func:`pvlib.pvsystem.sapm` directly and through
|
|
54
|
+
:py:class:`~pvlib.pvsystem.PVSystem` and :py:class:`~pvlib.modelchain.ModelChain`.
|
|
55
|
+
(:issue:`2402`, :pull:`2433`)
|
|
56
|
+
* Add optional arguments ``temperature_ref`` and ``irradiance_ref`` to
|
|
57
|
+
:py:func:`~pvlib.pvsystem.sapm`(:issue:`2432`, :pull:`2434`)
|
|
58
|
+
* Add NREL NSRDB PSM v4 API client to :py:mod:`pvlib.iotools`. See
|
|
59
|
+
:py:func:`~pvlib.iotools.get_nsrdb_psm4_aggregated`,
|
|
60
|
+
:py:func:`~pvlib.iotools.get_nsrdb_psm4_tmy`,
|
|
61
|
+
:py:func:`~pvlib.iotools.get_nsrdb_psm4_conus`,
|
|
62
|
+
:py:func:`~pvlib.iotools.get_nsrdb_psm4_full_disc`, and
|
|
63
|
+
:py:func:`~pvlib.iotools.read_nsrdb_psm4`. (:issue:`2326`, :pull:`2378`, :pull:`2445`)
|
|
64
|
+
* :py:mod:`pvlib.bifacial.infinite_sheds` no longer emits "invalid value" warnings
|
|
65
|
+
when supplying irradiance arrays with nighttime zero values. (:issue:`2450`, :pull:`2451`)
|
|
66
|
+
* Add ``'semi_integrated'`` parameters for the PVsyst temperature model.
|
|
67
|
+
(:issue:`2330`, :pull:`2415`)
|
|
68
|
+
|
|
69
|
+
Documentation
|
|
70
|
+
~~~~~~~~~~~~~
|
|
71
|
+
* Add a supporting reference to :py:func:`pvlib.atmosphere.get_relative_airmass` (:issue:`2390`, :pull:`2424`)
|
|
72
|
+
* Document how ``np.nan`` values are handled by :py:func:`~pvlib.spectrum.average_photon_energy`
|
|
73
|
+
(:issue:`2423`, :pull:`2426`)
|
|
74
|
+
* Clarify which SAPM coefficients are required by the ``module`` parameter in
|
|
75
|
+
:py:func:`~pvlib.pvsystem.sapm` (:issue:`2392`, :pull:`2435`)
|
|
76
|
+
* Add gallery example on calculating irradiance at crop level for agriPV systems.
|
|
77
|
+
(:pull:`2459`)
|
|
78
|
+
* Update references in :py:func`~pvlib.irradiance.get_extra_radiation`
|
|
79
|
+
(:issue:`2333`, :pull:`2347`)
|
|
80
|
+
* Update references in :py:func:`~pvlib.iotools.get_cams` and :py:func:`~pvlib.iotools.read_cams`
|
|
81
|
+
(:issue:`2427`, :pull:`2457`)
|
|
82
|
+
* Fix ``Edit on GitHub`` links in stable documentation so they point to the tagged repository version matching the build environment (e.g., v0.12.0). (:issue:`2456`, :pull:`2460`)
|
|
83
|
+
* Fix a minor issue with calculation of solar position in the OEDI 9068 gallery page. (:pull:`2468`)
|
|
84
|
+
|
|
85
|
+
Requirements
|
|
86
|
+
~~~~~~~~~~~~
|
|
87
|
+
* ``wheel`` is no longer a build dependency. (:pull:`2439`)
|
|
88
|
+
|
|
89
|
+
Testing
|
|
90
|
+
~~~~~~~
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
Maintenance
|
|
94
|
+
~~~~~~~~~~~
|
|
95
|
+
* Update ``pyproject.toml`` to replace deprecated license table and
|
|
96
|
+
classifiers. (:issue:`2440`, :pull:`2441`)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
Contributors
|
|
100
|
+
~~~~~~~~~~~~
|
|
101
|
+
* Cliff Hansen (:ghuser:`cwhanse`)
|
|
102
|
+
* Rajiv Daxini (:ghuser:`RDaxini`)
|
|
103
|
+
* Will Hobbs (:ghuser:`williamhobbs`)
|
|
104
|
+
* Kevin Anderson (:ghuser:`kandersolar`)
|
|
105
|
+
* Will Holmgren (:ghuser:`wholmgren`)
|
|
106
|
+
* Muhammad Rebaal (:ghuser:`Muhammad-Rebaal`)
|
|
107
|
+
* Echedey Luis (:ghuser:`echedey-ls`)
|
|
108
|
+
* omahs (:ghuser:`omahs`)
|
|
109
|
+
* Adam R. Jensen (:ghuser:`AdamRJensen`)
|
|
110
|
+
* Marion Schroedter-Homscheidt (:ghuser:`mschroedter`)
|