pvlib 0.14.0__tar.gz → 0.15.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pvlib-0.14.0/pvlib.egg-info → pvlib-0.15.0}/PKG-INFO +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/adr-pvarray/plot_fit_to_matrix.py +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/agrivoltaics/plot_diffuse_PAR_Spitters_relationship.py +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/bifacial/plot_bifi_model_mc.py +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/bifacial/plot_bifi_model_pvwatts.py +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/bifacial/plot_pvfactors_fixed_tilt.py +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/floating-pv/plot_floating_pv_cell_temperature.py +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/plot_seasonal_tilt.py +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/plot_transposition_gain.py +3 -3
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/shading/plot_simple_irradiance_adjustment_for_horizon_shading.py +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/solar-position/plot_sunpath_diagrams.py +2 -2
- pvlib-0.15.0/docs/sphinx/source/whatsnew/v0.15.0.rst +28 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew.rst +1 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/irradiance.py +1 -21
- {pvlib-0.14.0 → pvlib-0.15.0/pvlib.egg-info}/PKG-INFO +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib.egg-info/SOURCES.txt +1 -1
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_meteonorm.py +8 -8
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_irradiance.py +0 -46
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_solarposition.py +29 -19
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_spa.py +31 -42
- pvlib-0.14.0/docs/sphinx/source/whatsnew/v0.14.1.rst +0 -45
- {pvlib-0.14.0 → pvlib-0.15.0}/AUTHORS.md +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/LICENSE +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/MANIFEST.in +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/README.md +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/adr-pvarray/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/adr-pvarray/plot_simulate_fast.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/adr-pvarray/plot_simulate_system.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/agrivoltaics/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/agrivoltaics/plot_agrivoltaics_ground_irradiance.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/bifacial/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/bifacial/plot_irradiance_nonuniformity_loss.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/floating-pv/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-decomposition/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/plot_ghi_transposition.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/plot_interval_transposition_error.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/plot_mixed_orientation.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/plot_rtranpose_limitations.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/plot_rtranpose_year.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/use_perez_modelchain.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/iv-modeling/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/iv-modeling/plot_singlediode.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/reflections/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/reflections/plot_convert_iam_models.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/reflections/plot_diffuse_aoi_correction.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/reflections/plot_fit_iam_models.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/shading/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/shading/plot_martinez_shade_loss.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/shading/plot_partial_module_shading_simple.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/shading/plot_passias_diffuse_shading.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/shading/plot_shaded_fraction1d_ns_hsat_example.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/soiling/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/soiling/plot_fig3A_hsu_soiling_example.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/soiling/plot_greensboro_kimber_soiling.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/solar-position/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/solar-tracking/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/solar-tracking/plot_discontinuous_tracking.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/solar-tracking/plot_dual_axis_tracking.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/solar-tracking/plot_single_axis_tracking.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/solar-tracking/plot_single_axis_tracking_on_sloped_terrain.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/spectrum/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/spectrum/average_photon_energy.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/spectrum/plot_spectrl2_fig51A.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/spectrum/plot_standard_ASTM_G173-03.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/spectrum/spectral_factor.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/system-models/README.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/system-models/plot_oedi_9068.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/notes/Determining the average view factor from a module.pdf +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/Makefile +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/make.bat +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/Anderson_Jensen_2024_Fig3.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/Anderson_Mikofski_2020_Fig5.jpg +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/Coello_Boyle_2019_Fig3.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/OEDI_9068_daily_timeseries.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/OEDI_9068_inverter1_comparison.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/OEDI_9068_inverter2_comparison.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/PV_module_layout_cesardd.jpg +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/agrivoltaics_system.jpg +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/clonebutton.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/example_function_screenshot.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/ground_slope_angle_convention.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/pvlib_logo_horiz.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/pvlib_logo_vert.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/pvlib_powered_logo_horiz.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/pvlib_powered_logo_vert.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/tracker_azimuth_angle_convention.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_images/tracker_rotation_angle_convention.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_static/favicon-16x16.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_static/favicon-32x32.png +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_static/no_scrollbars.css +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_static/reference_format.css +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_static/tooltipster_color_theming.css +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_static/version-alert.js +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_templates/autosummary/class.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_templates/autosummary/function.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_templates/autosummary/method.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/_templates/edit-this-page.html +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/conf.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/contributing/how_to_contribute_new_code.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/contributing/index.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/contributing/introduction_to_contributing.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/contributing/style_guide.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/contributing/testing.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/index.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/airmass_atmospheric.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/bifacial.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/classes.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/clearsky.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/effects_on_pv_system_output/index.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/effects_on_pv_system_output/loss-models.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/effects_on_pv_system_output/shading.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/effects_on_pv_system_output/snow.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/effects_on_pv_system_output/soiling.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/effects_on_pv_system_output/spectrum.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/index.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/iotools.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/irradiance/angle-of-incidence.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/irradiance/clearness-index.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/irradiance/decomposition.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/irradiance/extraterrestrial-radiation.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/irradiance/index.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/irradiance/other.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/irradiance/reverse-transposition.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/irradiance/transposition.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/location.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/modelchain.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/pv_modeling/iam.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/pv_modeling/index.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/pv_modeling/inverter.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/pv_modeling/other.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/pv_modeling/parameters.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/pv_modeling/sdm.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/pv_modeling/system_models.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/pv_modeling/temperature.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/scaling.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/solarposition.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/tracking.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/reference/transformer.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/extras/faq.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/extras/nomenclature.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/getting_started/installation.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/getting_started/introtutorial.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/getting_started/package_overview.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/index.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/modeling_topics/bifacial.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/modeling_topics/clearsky.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/modeling_topics/modelchain.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/modeling_topics/pvsystem.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/modeling_topics/singlediode.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/modeling_topics/spectrum.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/modeling_topics/temperature.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/modeling_topics/timetimezones.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/user_guide/modeling_topics/weather_data.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.1.0.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.10.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.10.1.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.10.2.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.10.3.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.10.4.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.10.5.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.11.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.11.1.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.11.2.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.12.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.13.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.13.1.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.14.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.2.0.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.2.1.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.2.2.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.3.0.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.3.1.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.3.2.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.3.3.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.4.0.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.4.1.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.4.2.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.4.3.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.4.4.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.4.5.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.5.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.5.1.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.5.2.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.6.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.6.1.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.6.2.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.6.3.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.7.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.7.1.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.7.2.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.8.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.8.1.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.9.0.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.9.1.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.9.2.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.9.3.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.9.4.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.9.5.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/sphinx/source/whatsnew/v0.X.Y-example.rst +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/tutorials/atmosphere.ipynb +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/tutorials/irradiance.ipynb +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/tutorials/pvsystem.ipynb +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/tutorials/solarposition.ipynb +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/tutorials/tmy.ipynb +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/tutorials/tmy_and_diffuse_irrad_models.ipynb +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/tutorials/tmy_to_power.ipynb +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/docs/tutorials/tracking.ipynb +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/_deprecation.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/albedo.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/atmosphere.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/bifacial/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/bifacial/infinite_sheds.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/bifacial/loss_models.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/bifacial/pvfactors.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/bifacial/utils.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/clearsky.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/12839.tm2 +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/703165TY.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/723170TYA.CSV +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/ASTMG173.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/Altitude.h5 +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/LinkeTurbidities.h5 +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/adr-library-cec-inverters-2019-03-05.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/sam-library-cec-inverters-2019-03-05.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/sam-library-cec-modules-2019-03-05.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/sam-library-sandia-modules-2015-6-30.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/data/soiling_hsu_example_inputs.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iam.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/inverter.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/acis.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/bsrn.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/crn.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/epw.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/era5.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/merra2.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/meteonorm.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/midc.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/nasa_power.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/panond.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/psm4.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/pvgis.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/sodapro.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/solaranywhere.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/solargis.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/solcast.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/solrad.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/srml.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/surfrad.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/iotools/tmy.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/ivtools/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/ivtools/sde.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/ivtools/sdm/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/ivtools/sdm/_fit_desoto_pvsyst_sandia.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/ivtools/sdm/cec.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/ivtools/sdm/desoto.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/ivtools/sdm/pvsyst.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/ivtools/utils.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/location.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/modelchain.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/pvarray.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/pvsystem.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/scaling.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/shading.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/singlediode.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/snow.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/soiling.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/solarposition.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spa.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spa_c_files/README.md +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spa_c_files/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spa_c_files/cspa_py.pxd +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spa_c_files/setup.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spa_c_files/spa_py.pyx +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spa_c_files/spa_py_example.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spectrum/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spectrum/irradiance.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spectrum/mismatch.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spectrum/response.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/spectrum/spectrl2.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/temperature.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/tools.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/tracking.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/transformer.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib/version.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib.egg-info/dependency_links.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib.egg-info/requires.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pvlib.egg-info/top_level.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/pyproject.toml +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/setup.cfg +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/setup.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/bifacial/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/bifacial/test_infinite_sheds.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/bifacial/test_losses_models.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/bifacial/test_pvfactors.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/bifacial/test_utils.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/conftest.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/BIRD_08_16_2012.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/BIRD_08_16_2012_patm.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/Burlington, United States SolarAnywhere Time Series 2021 Lat_44_465 Lon_-73_205 TMY3 format.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/Burlington, United States SolarAnywhere Time Series 20210101 to 20210103 Lat_44_4675 Lon_-73_2075 SA format.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/Burlington, United States SolarAnywhere Typical GHI Year Lat_44_465 Lon_-73_205 SA format.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/CPS SCH275KTL-DO-US-800-250kW_275kVA_1.OND +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/CRNS0101-05-2019-AZ_Tucson_11_W.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/CRN_with_problems.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/ET-M772BH550GL.PAN +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/NLD_Amsterdam062400_IWEC.epw +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/PVsyst_demo.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/PVsyst_demo_model.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/SRML-day-EUPO1801.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/abq19056.dat +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/bishop88_numerical_precision.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/bsrn-lr0100-pay0616.dat +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/bsrn-pay0616.dat.gz +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/cams_mcclear_1min_verbose.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/cams_mcclear_monthly.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/cams_radiation_1min_verbose.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/cams_radiation_monthly.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/detect_clearsky_data.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/detect_clearsky_threshold_data.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/greensboro_kimber_soil_manwash.dat +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/greensboro_kimber_soil_nowash.dat +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/inverter_fit_snl_meas.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/inverter_fit_snl_sim.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/ivtools_numdiff.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/midc_20181014.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/midc_raw_20181018.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/midc_raw_short_header_20191115.txt +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/msn19056.dat +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/precise_iv_curves1.json +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/precise_iv_curves2.json +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/precise_iv_curves_parameter_sets1.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/precise_iv_curves_parameter_sets2.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/pvgis_hourly_Timeseries_45.000_8.000_SA2_10kWp_CIS_5_2a_2013_2014.json +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/pvgis_hourly_Timeseries_45.000_8.000_SA_30deg_0deg_2016_2016.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/pvgis_tmy_meta.json +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/pvgis_tmy_test.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/pvwatts_8760_rackmount.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/pvwatts_8760_roofmount.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/singleaxis_tracker_wslope.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/spectrl2_example_spectra.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/surfrad-slv16001.dat +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_psm3_2017.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_psm3_2019_5min.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_psm3_tmy-2017.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_psm4_2023.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_psm4_2023_5min.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_psm4_full_disc_2023.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_psm4_tmy-2023.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_read_psm3.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_read_psm4.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/test_read_pvgis_horizon.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/tmy_45.000_8.000_2005_2023.csv +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/tmy_45.000_8.000_2005_2023.epw +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/tmy_45.000_8.000_2005_2023.json +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/data/tmy_45.000_8.000_userhorizon.json +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_acis.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_bsrn.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_crn.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_epw.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_era5.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_merra2.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_midc.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_nasa_power.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_panond.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_psm4.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_pvgis.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_sodapro.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_solaranywhere.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_solargis.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_solcast.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_solrad.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_srml.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_surfrad.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/iotools/test_tmy.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/ivtools/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/ivtools/sdm/conftest.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/ivtools/sdm/test__fit_desoto_pvsyst_sandia.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/ivtools/sdm/test_cec.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/ivtools/sdm/test_desoto.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/ivtools/sdm/test_pvsyst.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/ivtools/test_sde.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/ivtools/test_utils.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/spectrum/__init__.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/spectrum/conftest.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/spectrum/test_irradiance.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/spectrum/test_mismatch.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/spectrum/test_response.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/spectrum/test_spectrl2.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test__deprecation.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_albedo.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_atmosphere.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_clearsky.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_conftest.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_iam.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_inverter.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_location.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_modelchain.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_numerical_precision.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_pvarray.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_pvsystem.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_scaling.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_shading.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_singlediode.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_snow.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_soiling.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_temperature.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_tools.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_tracking.py +0 -0
- {pvlib-0.14.0 → pvlib-0.15.0}/tests/test_transformer.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pvlib
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.15.0
|
|
4
4
|
Summary: A set of functions and classes for simulating the performance of photovoltaic energy systems.
|
|
5
5
|
Home-page: https://github.com/pvlib/pvlib-python
|
|
6
6
|
Author-email: pvlib python Developers <pvlib-admin@googlegroups.com>
|
{pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/agrivoltaics/plot_diffuse_PAR_Spitters_relationship.py
RENAMED
|
@@ -57,7 +57,7 @@ tmy = tmy["2002-09-06":"2002-09-21"] # select some days
|
|
|
57
57
|
|
|
58
58
|
solar_position = pvlib.solarposition.get_solarposition(
|
|
59
59
|
# TMY timestamp is at end of hour, so shift to center of interval
|
|
60
|
-
tmy.index.shift(freq="-
|
|
60
|
+
tmy.index.shift(freq="-30min"),
|
|
61
61
|
latitude=metadata["latitude"],
|
|
62
62
|
longitude=metadata["longitude"],
|
|
63
63
|
altitude=metadata["altitude"],
|
|
@@ -40,7 +40,7 @@ warnings.filterwarnings(action='ignore', module='pvfactors')
|
|
|
40
40
|
# create site location and times characteristics
|
|
41
41
|
lat, lon = 36.084, -79.817
|
|
42
42
|
tz = 'Etc/GMT+5'
|
|
43
|
-
times = pd.date_range('2021-06-21', '2021-6-22', freq='
|
|
43
|
+
times = pd.date_range('2021-06-21', '2021-6-22', freq='1min', tz=tz)
|
|
44
44
|
|
|
45
45
|
# create site system characteristics
|
|
46
46
|
axis_tilt = 0
|
|
@@ -32,7 +32,7 @@ warnings.filterwarnings(action='ignore', module='pvfactors')
|
|
|
32
32
|
# using Greensboro, NC for this example
|
|
33
33
|
lat, lon = 36.084, -79.817
|
|
34
34
|
tz = 'Etc/GMT+5'
|
|
35
|
-
times = pd.date_range('2021-06-21', '2021-06-22', freq='
|
|
35
|
+
times = pd.date_range('2021-06-21', '2021-06-22', freq='1min', tz=tz)
|
|
36
36
|
|
|
37
37
|
# create location object and get clearsky data
|
|
38
38
|
site_location = location.Location(lat, lon, tz=tz, name='Greensboro, NC')
|
|
@@ -30,7 +30,7 @@ warnings.filterwarnings(action='ignore', module='pvfactors')
|
|
|
30
30
|
# %%
|
|
31
31
|
# First, generate the usual modeling inputs:
|
|
32
32
|
|
|
33
|
-
times = pd.date_range('2021-06-21', '2021-06-22', freq='
|
|
33
|
+
times = pd.date_range('2021-06-21', '2021-06-22', freq='1min', tz='Etc/GMT+5')
|
|
34
34
|
loc = location.Location(latitude=40, longitude=-80, tz=times.tz)
|
|
35
35
|
sp = loc.get_solarposition(times)
|
|
36
36
|
cs = loc.get_clearsky(times)
|
{pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/floating-pv/plot_floating_pv_cell_temperature.py
RENAMED
|
@@ -140,7 +140,7 @@ tmy = tmy['2002-06-06 00:00':'2002-06-06 23:59'] # select period
|
|
|
140
140
|
|
|
141
141
|
solar_position = pvlib.solarposition.get_solarposition(
|
|
142
142
|
# TMY timestamp is at end of hour, so shift to center of interval
|
|
143
|
-
tmy.index.shift(freq='-
|
|
143
|
+
tmy.index.shift(freq='-30min'),
|
|
144
144
|
latitude=metadata['latitude'],
|
|
145
145
|
longitude=metadata['longitude'],
|
|
146
146
|
altitude=metadata['altitude'],
|
{pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-decomposition/plot_diffuse_fraction.py
RENAMED
|
@@ -35,7 +35,7 @@ greensboro, metadata = read_tmy3(DATA_DIR / '723170TYA.CSV', coerce_year=1990,
|
|
|
35
35
|
# NOTE: TMY3 files timestamps indicate the end of the hour, so shift indices
|
|
36
36
|
# back 30-minutes to calculate solar position at center of the interval
|
|
37
37
|
solpos = get_solarposition(
|
|
38
|
-
greensboro.index.shift(freq="-
|
|
38
|
+
greensboro.index.shift(freq="-30min"), latitude=metadata['latitude'],
|
|
39
39
|
longitude=metadata['longitude'], altitude=metadata['altitude'],
|
|
40
40
|
pressure=greensboro.pressure*100, # convert from millibar to Pa
|
|
41
41
|
temperature=greensboro.temp_air)
|
{pvlib-0.14.0 → pvlib-0.15.0}/docs/examples/irradiance-transposition/plot_transposition_gain.py
RENAMED
|
@@ -80,7 +80,7 @@ for tilt in range(0, 50, 10):
|
|
|
80
80
|
column_name = f"FT-{tilt}"
|
|
81
81
|
# TMYs are hourly, so we can just sum up irradiance [W/m^2] to get
|
|
82
82
|
# insolation [Wh/m^2]:
|
|
83
|
-
df_monthly[column_name] = poa_irradiance.resample('
|
|
83
|
+
df_monthly[column_name] = poa_irradiance.resample('ME').sum()
|
|
84
84
|
|
|
85
85
|
# single-axis tracking:
|
|
86
86
|
orientation = tracking.singleaxis(solar_position['apparent_zenith'],
|
|
@@ -95,10 +95,10 @@ poa_irradiance = calculate_poa(tmy,
|
|
|
95
95
|
solar_position,
|
|
96
96
|
orientation['surface_tilt'],
|
|
97
97
|
orientation['surface_azimuth'])
|
|
98
|
-
df_monthly['SAT-0.4'] = poa_irradiance.resample('
|
|
98
|
+
df_monthly['SAT-0.4'] = poa_irradiance.resample('ME').sum()
|
|
99
99
|
|
|
100
100
|
# calculate the percent difference from GHI
|
|
101
|
-
ghi_monthly = tmy['ghi'].resample('
|
|
101
|
+
ghi_monthly = tmy['ghi'].resample('ME').sum()
|
|
102
102
|
df_monthly = 100 * (df_monthly.divide(ghi_monthly, axis=0) - 1)
|
|
103
103
|
|
|
104
104
|
df_monthly.plot()
|
|
@@ -27,7 +27,7 @@ tz = 'MST'
|
|
|
27
27
|
|
|
28
28
|
# Set times in the morning of the December solstice.
|
|
29
29
|
times = pd.date_range(
|
|
30
|
-
'2020-12-20 6:30', '2020-12-20 9:00', freq='
|
|
30
|
+
'2020-12-20 6:30', '2020-12-20 9:00', freq='1min', tz=tz
|
|
31
31
|
)
|
|
32
32
|
|
|
33
33
|
# Create location object, and get solar position and clearsky irradiance data.
|
|
@@ -24,7 +24,7 @@ import matplotlib.pyplot as plt
|
|
|
24
24
|
tz = 'Asia/Calcutta'
|
|
25
25
|
lat, lon = 28.6, 77.2
|
|
26
26
|
|
|
27
|
-
times = pd.date_range('2019-01-01 00:00:00', '2020-01-01', freq='
|
|
27
|
+
times = pd.date_range('2019-01-01 00:00:00', '2020-01-01', freq='h', tz=tz)
|
|
28
28
|
solpos = solarposition.get_solarposition(times, lat, lon)
|
|
29
29
|
# remove nighttime
|
|
30
30
|
solpos = solpos.loc[solpos['apparent_elevation'] > 0, :]
|
|
@@ -112,7 +112,7 @@ import matplotlib.pyplot as plt
|
|
|
112
112
|
|
|
113
113
|
tz = 'Asia/Calcutta'
|
|
114
114
|
lat, lon = 28.6, 77.2
|
|
115
|
-
times = pd.date_range('2019-01-01 00:00:00', '2020-01-01', freq='
|
|
115
|
+
times = pd.date_range('2019-01-01 00:00:00', '2020-01-01', freq='h', tz=tz)
|
|
116
116
|
|
|
117
117
|
solpos = solarposition.get_solarposition(times, lat, lon)
|
|
118
118
|
# remove nighttime
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
.. _whatsnew_0_15_0:
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
v0.15.0 (Feb 3, 2026)
|
|
5
|
+
---------------------
|
|
6
|
+
|
|
7
|
+
Breaking Changes
|
|
8
|
+
~~~~~~~~~~~~~~~~
|
|
9
|
+
* Removed expired parameter name deprecations (:issue:`2662`, :pull:`2666`):
|
|
10
|
+
|
|
11
|
+
- Parameter ``clearsky_ghi`` in :py:func:`pvlib.irradiance.clearsky_index`
|
|
12
|
+
- Parameters ``ghi_clearsky`` and ``dni_clearsky`` in :py:func:`pvlib.irradiance.dirindex`
|
|
13
|
+
- Parameter ``clearsky_dni`` in :py:func:`pvlib.irradiance.dni`
|
|
14
|
+
|
|
15
|
+
Documentation
|
|
16
|
+
~~~~~~~~~~~~~
|
|
17
|
+
- Update gallery examples to work with ``pandas==3`` (:pull:`2664`).
|
|
18
|
+
|
|
19
|
+
Contributors
|
|
20
|
+
~~~~~~~~~~~~
|
|
21
|
+
* Echedey Luis (:ghuser:`echedey-ls`)
|
|
22
|
+
* Aman Srivastava (:ghuser:`aman-coder03`)
|
|
23
|
+
* Cliff Hansen (:ghuser:`cwhanse`)
|
|
24
|
+
* Adam R. Jensen (:ghuser:`adamrjensen`)
|
|
25
|
+
* Will Holmgren (:ghuser:`wholmgren`)
|
|
26
|
+
* Rajiv Daxini (:ghuser:`RDaxini`)
|
|
27
|
+
* Anton Driesse (:ghuser:`adriesse`)
|
|
28
|
+
* Kevin Anderson (:ghuser:`kandersolar`)
|
|
@@ -16,7 +16,7 @@ from scipy.optimize import bisect
|
|
|
16
16
|
from pvlib import atmosphere, solarposition, tools
|
|
17
17
|
import pvlib # used to avoid dni name collision in complete_irradiance
|
|
18
18
|
|
|
19
|
-
from pvlib._deprecation import pvlibDeprecationWarning
|
|
19
|
+
from pvlib._deprecation import pvlibDeprecationWarning
|
|
20
20
|
import warnings
|
|
21
21
|
|
|
22
22
|
|
|
@@ -1613,11 +1613,6 @@ def ghi_from_poa_driesse_2023(surface_tilt, surface_azimuth,
|
|
|
1613
1613
|
return ghi
|
|
1614
1614
|
|
|
1615
1615
|
|
|
1616
|
-
@renamed_kwarg_warning(
|
|
1617
|
-
since='0.11.2',
|
|
1618
|
-
old_param_name='clearsky_ghi',
|
|
1619
|
-
new_param_name='ghi_clear',
|
|
1620
|
-
removal="0.14.0")
|
|
1621
1616
|
def clearsky_index(ghi, ghi_clear, max_clearsky_index=2.0):
|
|
1622
1617
|
"""
|
|
1623
1618
|
Calculate the clearsky index.
|
|
@@ -2156,16 +2151,6 @@ def _dirint_bins(times, kt_prime, zenith, w, delta_kt_prime):
|
|
|
2156
2151
|
return kt_prime_bin, zenith_bin, w_bin, delta_kt_prime_bin
|
|
2157
2152
|
|
|
2158
2153
|
|
|
2159
|
-
@renamed_kwarg_warning(
|
|
2160
|
-
since='0.11.2',
|
|
2161
|
-
old_param_name='ghi_clearsky',
|
|
2162
|
-
new_param_name='ghi_clear',
|
|
2163
|
-
removal="0.14.0")
|
|
2164
|
-
@renamed_kwarg_warning(
|
|
2165
|
-
since='0.11.2',
|
|
2166
|
-
old_param_name='dni_clearsky',
|
|
2167
|
-
new_param_name='dni_clear',
|
|
2168
|
-
removal="0.14.0")
|
|
2169
2154
|
def dirindex(ghi, ghi_clear, dni_clear, zenith, times, pressure=101325.,
|
|
2170
2155
|
use_delta_kt_prime=True, temp_dew=None, min_cos_zenith=0.065,
|
|
2171
2156
|
max_zenith=87):
|
|
@@ -3662,11 +3647,6 @@ def _get_dirint_coeffs():
|
|
|
3662
3647
|
return coeffs[1:, 1:, :, :]
|
|
3663
3648
|
|
|
3664
3649
|
|
|
3665
|
-
@renamed_kwarg_warning(
|
|
3666
|
-
since='0.11.2',
|
|
3667
|
-
old_param_name='clearsky_dni',
|
|
3668
|
-
new_param_name='dni_clear',
|
|
3669
|
-
removal="0.14.0")
|
|
3670
3650
|
def dni(ghi, dhi, zenith, dni_clear=None, clearsky_tolerance=1.1,
|
|
3671
3651
|
zenith_threshold_for_zero_dni=88.0,
|
|
3672
3652
|
zenith_threshold_for_clearsky_limit=80.0):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pvlib
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.15.0
|
|
4
4
|
Summary: A set of functions and classes for simulating the performance of photovoltaic energy systems.
|
|
5
5
|
Home-page: https://github.com/pvlib/pvlib-python
|
|
6
6
|
Author-email: pvlib python Developers <pvlib-admin@googlegroups.com>
|
|
@@ -161,7 +161,7 @@ docs/sphinx/source/whatsnew/v0.12.0.rst
|
|
|
161
161
|
docs/sphinx/source/whatsnew/v0.13.0.rst
|
|
162
162
|
docs/sphinx/source/whatsnew/v0.13.1.rst
|
|
163
163
|
docs/sphinx/source/whatsnew/v0.14.0.rst
|
|
164
|
-
docs/sphinx/source/whatsnew/v0.
|
|
164
|
+
docs/sphinx/source/whatsnew/v0.15.0.rst
|
|
165
165
|
docs/sphinx/source/whatsnew/v0.2.0.txt
|
|
166
166
|
docs/sphinx/source/whatsnew/v0.2.1.txt
|
|
167
167
|
docs/sphinx/source/whatsnew/v0.2.2.txt
|
|
@@ -53,7 +53,7 @@ def expected_meta():
|
|
|
53
53
|
@pytest.fixture
|
|
54
54
|
def expected_meteonorm_index():
|
|
55
55
|
expected_meteonorm_index = \
|
|
56
|
-
pd.date_range('
|
|
56
|
+
pd.date_range('2025-01-01', '2025-12-31 23:59', freq='1h', tz='UTC') \
|
|
57
57
|
+ pd.Timedelta(minutes=30)
|
|
58
58
|
expected_meteonorm_index.freq = None
|
|
59
59
|
return expected_meteonorm_index
|
|
@@ -71,13 +71,13 @@ def expected_meteonorm_data():
|
|
|
71
71
|
[0.0, 0.0],
|
|
72
72
|
[0.0, 0.0],
|
|
73
73
|
[0.0, 0.0],
|
|
74
|
-
[
|
|
75
|
-
[
|
|
76
|
-
[
|
|
77
|
-
[
|
|
78
|
-
[
|
|
74
|
+
[3.75, 3.74],
|
|
75
|
+
[57.25, 57.20],
|
|
76
|
+
[149.0, 148.96],
|
|
77
|
+
[242.25, 242.24],
|
|
78
|
+
[228.0, 227.98],
|
|
79
79
|
]
|
|
80
|
-
index = pd.date_range('
|
|
80
|
+
index = pd.date_range('2025-01-01 00:30', periods=12, freq='1h', tz='UTC')
|
|
81
81
|
index.freq = None
|
|
82
82
|
expected = pd.DataFrame(expected, index=index, columns=columns)
|
|
83
83
|
return expected
|
|
@@ -116,7 +116,7 @@ def test_get_meteonorm_training(
|
|
|
116
116
|
expected_meteonorm_data):
|
|
117
117
|
data, meta = pvlib.iotools.get_meteonorm_observation_training(
|
|
118
118
|
latitude=50, longitude=10,
|
|
119
|
-
start='
|
|
119
|
+
start='2025-01-01', end='2026-01-01',
|
|
120
120
|
api_key=demo_api_key,
|
|
121
121
|
parameters=['ghi', 'global_horizontal_irradiance_with_shading'],
|
|
122
122
|
time_step='1h',
|
|
@@ -16,7 +16,6 @@ from .conftest import (
|
|
|
16
16
|
assert_series_equal,
|
|
17
17
|
requires_ephem,
|
|
18
18
|
requires_numba,
|
|
19
|
-
fail_on_pvlib_version,
|
|
20
19
|
)
|
|
21
20
|
|
|
22
21
|
from pvlib._deprecation import pvlibDeprecationWarning
|
|
@@ -1110,20 +1109,6 @@ def test_dirindex(times):
|
|
|
1110
1109
|
equal_nan=True)
|
|
1111
1110
|
|
|
1112
1111
|
|
|
1113
|
-
@fail_on_pvlib_version("0.14")
|
|
1114
|
-
def test_dirindex_ghi_clearsky_deprecation():
|
|
1115
|
-
times = pd.DatetimeIndex(['2014-06-24T18-1200'])
|
|
1116
|
-
ghi = pd.Series([1038.62], index=times)
|
|
1117
|
-
ghi_clearsky = pd.Series([1042.48031487], index=times)
|
|
1118
|
-
dni_clearsky = pd.Series([939.95469881], index=times)
|
|
1119
|
-
zenith = pd.Series([10.56413562], index=times)
|
|
1120
|
-
pressure, tdew = 93193, 10
|
|
1121
|
-
with pytest.warns(pvlibDeprecationWarning, match='ghi_clear'):
|
|
1122
|
-
irradiance.dirindex(
|
|
1123
|
-
ghi=ghi, ghi_clearsky=ghi_clearsky, dni_clear=dni_clearsky,
|
|
1124
|
-
zenith=zenith, times=times, pressure=pressure, temp_dew=tdew)
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
1112
|
def test_dirindex_min_cos_zenith_max_zenith():
|
|
1128
1113
|
# map out behavior under difficult conditions with various
|
|
1129
1114
|
# limiting kwargs settings
|
|
@@ -1155,19 +1140,6 @@ def test_dirindex_min_cos_zenith_max_zenith():
|
|
|
1155
1140
|
assert_series_equal(out, expected)
|
|
1156
1141
|
|
|
1157
1142
|
|
|
1158
|
-
@fail_on_pvlib_version("0.14")
|
|
1159
|
-
def test_dirindex_dni_clearsky_deprecation():
|
|
1160
|
-
times = pd.DatetimeIndex(['2014-06-24T12-0700', '2014-06-24T18-0700'])
|
|
1161
|
-
ghi = pd.Series([0, 1], index=times)
|
|
1162
|
-
ghi_clearsky = pd.Series([0, 1], index=times)
|
|
1163
|
-
dni_clear = pd.Series([0, 5], index=times)
|
|
1164
|
-
solar_zenith = pd.Series([90, 89.99], index=times)
|
|
1165
|
-
with pytest.warns(pvlibDeprecationWarning, match='dni_clear'):
|
|
1166
|
-
irradiance.dirindex(ghi, ghi_clearsky, dni_clearsky=dni_clear,
|
|
1167
|
-
zenith=solar_zenith, times=times,
|
|
1168
|
-
min_cos_zenith=0)
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
1143
|
def test_dni():
|
|
1172
1144
|
ghi = pd.Series([90, 100, 100, 100, 100])
|
|
1173
1145
|
dhi = pd.Series([100, 90, 50, 50, 50])
|
|
@@ -1186,17 +1158,6 @@ def test_dni():
|
|
|
1186
1158
|
146.190220008, 573.685662283]))
|
|
1187
1159
|
|
|
1188
1160
|
|
|
1189
|
-
@fail_on_pvlib_version("0.14")
|
|
1190
|
-
def test_dni_dni_clearsky_deprecation():
|
|
1191
|
-
ghi = pd.Series([90, 100, 100, 100, 100])
|
|
1192
|
-
dhi = pd.Series([100, 90, 50, 50, 50])
|
|
1193
|
-
zenith = pd.Series([80, 100, 85, 70, 85])
|
|
1194
|
-
dni_clear = pd.Series([50, 50, 200, 50, 300])
|
|
1195
|
-
with pytest.warns(pvlibDeprecationWarning, match='dni_clear'):
|
|
1196
|
-
irradiance.dni(ghi, dhi, zenith,
|
|
1197
|
-
clearsky_dni=dni_clear, clearsky_tolerance=2)
|
|
1198
|
-
|
|
1199
|
-
|
|
1200
1161
|
@pytest.mark.parametrize(
|
|
1201
1162
|
'surface_tilt,surface_azimuth,solar_zenith,' +
|
|
1202
1163
|
'solar_azimuth,aoi_expected,aoi_proj_expected',
|
|
@@ -1289,13 +1250,6 @@ def test_clearsky_index():
|
|
|
1289
1250
|
assert_series_equal(out, expected)
|
|
1290
1251
|
|
|
1291
1252
|
|
|
1292
|
-
@fail_on_pvlib_version("0.14")
|
|
1293
|
-
def test_clearsky_index_clearsky_ghi_deprecation():
|
|
1294
|
-
with pytest.warns(pvlibDeprecationWarning, match='ghi_clear'):
|
|
1295
|
-
ghi, clearsky_ghi = 200, 300
|
|
1296
|
-
irradiance.clearsky_index(ghi, clearsky_ghi=clearsky_ghi)
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
1253
|
def test_clearness_index():
|
|
1300
1254
|
ghi = np.array([-1, 0, 1, 1000])
|
|
1301
1255
|
solar_zenith = np.array([180, 90, 89.999, 0])
|
|
@@ -142,20 +142,15 @@ def test_spa_python_numpy_physical_dst(expected_solpos, golden):
|
|
|
142
142
|
|
|
143
143
|
@pytest.mark.parametrize('delta_t', [65.0, None, np.array([65, 65])])
|
|
144
144
|
def test_sun_rise_set_transit_spa(expected_rise_set_spa, golden, delta_t):
|
|
145
|
-
# solution from NREL
|
|
145
|
+
# solution from NREL SPA web calculator
|
|
146
146
|
south = Location(-35.0, 0.0, tz='UTC')
|
|
147
|
-
times = pd.
|
|
148
|
-
|
|
149
|
-
)
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
datetime.datetime(2004, 12, 4, 19, 2, 3)]
|
|
155
|
-
).tz_localize('UTC').tolist()
|
|
156
|
-
transit = pd.DatetimeIndex([datetime.datetime(1996, 7, 5, 12, 4, 36),
|
|
157
|
-
datetime.datetime(2004, 12, 4, 11, 50, 22)]
|
|
158
|
-
).tz_localize('UTC').tolist()
|
|
147
|
+
times = pd.to_datetime(["1996-07-05", "2004-12-04"], utc=True)
|
|
148
|
+
sunrise = pd.to_datetime(["1996-07-05 07:08:15", "2004-12-04 04:38:57"],
|
|
149
|
+
utc=True)
|
|
150
|
+
sunset = pd.to_datetime(["1996-07-05 17:01:04", "2004-12-04 19:02:03"],
|
|
151
|
+
utc=True)
|
|
152
|
+
transit = pd.to_datetime(["1996-07-05 12:04:36", "2004-12-04 11:50:22"],
|
|
153
|
+
utc=True)
|
|
159
154
|
frame = pd.DataFrame({'sunrise': sunrise,
|
|
160
155
|
'sunset': sunset,
|
|
161
156
|
'transit': transit}, index=times)
|
|
@@ -169,7 +164,9 @@ def test_sun_rise_set_transit_spa(expected_rise_set_spa, golden, delta_t):
|
|
|
169
164
|
for col, data in result.items():
|
|
170
165
|
result_rounded[col] = data.dt.round('1s')
|
|
171
166
|
|
|
172
|
-
assert_frame_equal(frame, result_rounded
|
|
167
|
+
assert_frame_equal(frame, result_rounded,
|
|
168
|
+
check_dtype=False # ignore us/ns dtypes
|
|
169
|
+
)
|
|
173
170
|
|
|
174
171
|
# test for Golden, CO compare to NREL SPA
|
|
175
172
|
result = solarposition.sun_rise_set_transit_spa(
|
|
@@ -182,7 +179,9 @@ def test_sun_rise_set_transit_spa(expected_rise_set_spa, golden, delta_t):
|
|
|
182
179
|
for col, data in result.items():
|
|
183
180
|
result_rounded[col] = data.dt.round('s').tz_convert('MST')
|
|
184
181
|
|
|
185
|
-
assert_frame_equal(expected_rise_set_spa, result_rounded
|
|
182
|
+
assert_frame_equal(expected_rise_set_spa, result_rounded,
|
|
183
|
+
check_dtype=False # ignore us/ns dtypes
|
|
184
|
+
)
|
|
186
185
|
|
|
187
186
|
|
|
188
187
|
@requires_ephem
|
|
@@ -726,7 +725,10 @@ def test_hour_angle_with_tricky_timezones():
|
|
|
726
725
|
'2014-09-07 02:00:00',
|
|
727
726
|
]).tz_localize('America/Santiago', nonexistent='shift_forward')
|
|
728
727
|
|
|
729
|
-
with pytest.raises(
|
|
728
|
+
with pytest.raises((
|
|
729
|
+
pytz.exceptions.NonExistentTimeError, # pandas 1.x, 2.x
|
|
730
|
+
ValueError, # pandas 3.x
|
|
731
|
+
)):
|
|
730
732
|
times.normalize()
|
|
731
733
|
|
|
732
734
|
# should not raise `pytz.exceptions.NonExistentTimeError`
|
|
@@ -740,7 +742,10 @@ def test_hour_angle_with_tricky_timezones():
|
|
|
740
742
|
'2014-11-02 02:00:00',
|
|
741
743
|
]).tz_localize('America/Havana', ambiguous=[True, True, False, False])
|
|
742
744
|
|
|
743
|
-
with pytest.raises(
|
|
745
|
+
with pytest.raises((
|
|
746
|
+
pytz.exceptions.AmbiguousTimeError, # pandas 1.x, 2.x
|
|
747
|
+
ValueError, # pandas 3.x
|
|
748
|
+
)):
|
|
744
749
|
solarposition.hour_angle(times, longitude, eot)
|
|
745
750
|
|
|
746
751
|
|
|
@@ -798,8 +803,13 @@ def test_sun_rise_set_transit_geometric(expected_rise_set_spa, golden_mst):
|
|
|
798
803
|
@pytest.mark.parametrize('tz', [None, 'utc', 'US/Eastern'])
|
|
799
804
|
def test__datetime_to_unixtime(tz):
|
|
800
805
|
# for pandas < 2.0 where "unit" doesn't exist in pd.date_range. note that
|
|
801
|
-
# unit of ns is the only option in pandas<2, and the default in pandas 2.x
|
|
802
|
-
|
|
806
|
+
# unit of ns is the only option in pandas<2, and the default in pandas 2.x,
|
|
807
|
+
# but the default is us in pandas 3.x
|
|
808
|
+
kwargs = dict(start='2019-01-01', freq='h', periods=3, tz=tz)
|
|
809
|
+
try:
|
|
810
|
+
times = pd.date_range(**kwargs, unit='ns') # pandas 2.x, 3.x
|
|
811
|
+
except TypeError:
|
|
812
|
+
times = pd.date_range(**kwargs) # pandas 1.x
|
|
803
813
|
expected = times.view(np.int64)/10**9
|
|
804
814
|
actual = solarposition._datetime_to_unixtime(times)
|
|
805
815
|
np.testing.assert_equal(expected, actual)
|
|
@@ -3,6 +3,7 @@ import datetime as dt
|
|
|
3
3
|
import warnings
|
|
4
4
|
import pytest
|
|
5
5
|
import pvlib
|
|
6
|
+
from pvlib.solarposition import _datetime_to_unixtime
|
|
6
7
|
|
|
7
8
|
try:
|
|
8
9
|
from importlib import reload
|
|
@@ -19,9 +20,13 @@ import pandas as pd
|
|
|
19
20
|
import unittest
|
|
20
21
|
from .conftest import requires_numba
|
|
21
22
|
|
|
23
|
+
kwargs = dict(start='2003-10-17 12:30:30', periods=1, freq='D')
|
|
24
|
+
try:
|
|
25
|
+
times = pd.date_range(**kwargs, unit='ns') # pandas 2.x, 3.x
|
|
26
|
+
except TypeError:
|
|
27
|
+
times = pd.date_range(**kwargs) # pandas 1.x
|
|
22
28
|
|
|
23
|
-
times =
|
|
24
|
-
.tz_localize('MST'))
|
|
29
|
+
times = times.tz_localize('MST')
|
|
25
30
|
unixtimes = np.array(times.tz_convert('UTC').view(np.int64)*1.0/10**9)
|
|
26
31
|
|
|
27
32
|
lat = 39.742476
|
|
@@ -258,35 +263,29 @@ class SpaBase:
|
|
|
258
263
|
# tests at greenwich
|
|
259
264
|
times = pd.DatetimeIndex([dt.datetime(1996, 7, 5, 0),
|
|
260
265
|
dt.datetime(2004, 12, 4, 0)]
|
|
261
|
-
).tz_localize(
|
|
262
|
-
'UTC').view(np.int64)*1.0/10**9
|
|
266
|
+
).tz_localize('UTC')
|
|
263
267
|
sunrise = pd.DatetimeIndex([dt.datetime(1996, 7, 5, 7, 8, 15),
|
|
264
268
|
dt.datetime(2004, 12, 4, 4, 38, 57)]
|
|
265
|
-
).tz_localize(
|
|
266
|
-
'UTC').view(np.int64)*1.0/10**9
|
|
269
|
+
).tz_localize('UTC')
|
|
267
270
|
sunset = pd.DatetimeIndex([dt.datetime(1996, 7, 5, 17, 1, 4),
|
|
268
271
|
dt.datetime(2004, 12, 4, 19, 2, 2)]
|
|
269
|
-
).tz_localize(
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
sunset = np.array(sunset)
|
|
272
|
+
).tz_localize('UTC')
|
|
273
|
+
times = _datetime_to_unixtime(times)
|
|
274
|
+
sunrise = _datetime_to_unixtime(sunrise)
|
|
275
|
+
sunset = _datetime_to_unixtime(sunset)
|
|
274
276
|
result = self.spa.transit_sunrise_sunset(times, -35.0, 0.0, 64.0, 1)
|
|
275
277
|
assert_almost_equal(sunrise/1e3, result[1]/1e3, 3)
|
|
276
278
|
assert_almost_equal(sunset/1e3, result[2]/1e3, 3)
|
|
277
279
|
|
|
278
280
|
times = pd.DatetimeIndex([dt.datetime(1994, 1, 2), ]
|
|
279
|
-
).tz_localize(
|
|
280
|
-
'UTC').view(np.int64)*1.0/10**9
|
|
281
|
+
).tz_localize('UTC')
|
|
281
282
|
sunset = pd.DatetimeIndex([dt.datetime(1994, 1, 2, 16, 59, 55), ]
|
|
282
|
-
).tz_localize(
|
|
283
|
-
'UTC').view(np.int64)*1.0/10**9
|
|
283
|
+
).tz_localize('UTC')
|
|
284
284
|
sunrise = pd.DatetimeIndex([dt.datetime(1994, 1, 2, 7, 8, 12), ]
|
|
285
|
-
).tz_localize(
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
sunset = np.array(sunset)
|
|
285
|
+
).tz_localize('UTC')
|
|
286
|
+
times = _datetime_to_unixtime(times)
|
|
287
|
+
sunrise = _datetime_to_unixtime(sunrise)
|
|
288
|
+
sunset = _datetime_to_unixtime(sunset)
|
|
290
289
|
result = self.spa.transit_sunrise_sunset(times, 35.0, 0.0, 64.0, 1)
|
|
291
290
|
assert_almost_equal(sunrise/1e3, result[1]/1e3, 3)
|
|
292
291
|
assert_almost_equal(sunset/1e3, result[2]/1e3, 3)
|
|
@@ -297,23 +296,20 @@ class SpaBase:
|
|
|
297
296
|
dt.datetime(2015, 4, 2),
|
|
298
297
|
dt.datetime(2015, 8, 2),
|
|
299
298
|
dt.datetime(2015, 12, 2)],
|
|
300
|
-
).tz_localize(
|
|
301
|
-
'UTC').view(np.int64)*1.0/10**9
|
|
299
|
+
).tz_localize('UTC')
|
|
302
300
|
sunrise = pd.DatetimeIndex([dt.datetime(2015, 1, 2, 7, 19),
|
|
303
301
|
dt.datetime(2015, 4, 2, 5, 43),
|
|
304
302
|
dt.datetime(2015, 8, 2, 5, 1),
|
|
305
303
|
dt.datetime(2015, 12, 2, 7, 1)],
|
|
306
|
-
).tz_localize(
|
|
307
|
-
'MST').view(np.int64)*1.0/10**9
|
|
304
|
+
).tz_localize('MST')
|
|
308
305
|
sunset = pd.DatetimeIndex([dt.datetime(2015, 1, 2, 16, 49),
|
|
309
306
|
dt.datetime(2015, 4, 2, 18, 24),
|
|
310
307
|
dt.datetime(2015, 8, 2, 19, 10),
|
|
311
308
|
dt.datetime(2015, 12, 2, 16, 38)],
|
|
312
|
-
).tz_localize(
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
sunset = np.array(sunset)
|
|
309
|
+
).tz_localize('MST')
|
|
310
|
+
times = _datetime_to_unixtime(times)
|
|
311
|
+
sunrise = _datetime_to_unixtime(sunrise)
|
|
312
|
+
sunset = _datetime_to_unixtime(sunset)
|
|
317
313
|
result = self.spa.transit_sunrise_sunset(times, 39.0, -105.0, 64.0, 1)
|
|
318
314
|
assert_almost_equal(sunrise/1e3, result[1]/1e3, 1)
|
|
319
315
|
assert_almost_equal(sunset/1e3, result[2]/1e3, 1)
|
|
@@ -323,33 +319,26 @@ class SpaBase:
|
|
|
323
319
|
dt.datetime(2015, 4, 2),
|
|
324
320
|
dt.datetime(2015, 8, 2),
|
|
325
321
|
dt.datetime(2015, 12, 2)],
|
|
326
|
-
).tz_localize(
|
|
327
|
-
'UTC').view(np.int64)*1.0/10**9
|
|
322
|
+
).tz_localize('UTC')
|
|
328
323
|
sunrise = pd.DatetimeIndex([dt.datetime(2015, 1, 2, 7, 36),
|
|
329
324
|
dt.datetime(2015, 4, 2, 5, 58),
|
|
330
325
|
dt.datetime(2015, 8, 2, 5, 13),
|
|
331
326
|
dt.datetime(2015, 12, 2, 7, 17)],
|
|
332
|
-
).tz_localize('Asia/Shanghai')
|
|
333
|
-
np.int64)*1.0/10**9
|
|
327
|
+
).tz_localize('Asia/Shanghai')
|
|
334
328
|
sunset = pd.DatetimeIndex([dt.datetime(2015, 1, 2, 17, 0),
|
|
335
329
|
dt.datetime(2015, 4, 2, 18, 39),
|
|
336
330
|
dt.datetime(2015, 8, 2, 19, 28),
|
|
337
331
|
dt.datetime(2015, 12, 2, 16, 50)],
|
|
338
|
-
).tz_localize('Asia/Shanghai')
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
sunset = np.array(sunset)
|
|
332
|
+
).tz_localize('Asia/Shanghai')
|
|
333
|
+
times = _datetime_to_unixtime(times)
|
|
334
|
+
sunrise = _datetime_to_unixtime(sunrise)
|
|
335
|
+
sunset = _datetime_to_unixtime(sunset)
|
|
343
336
|
result = self.spa.transit_sunrise_sunset(
|
|
344
337
|
times, 39.917, 116.383, 64.0, 1)
|
|
345
338
|
assert_almost_equal(sunrise/1e3, result[1]/1e3, 1)
|
|
346
339
|
assert_almost_equal(sunset/1e3, result[2]/1e3, 1)
|
|
347
340
|
|
|
348
341
|
def test_earthsun_distance(self):
|
|
349
|
-
times = (pd.date_range('2003-10-17 12:30:30', periods=1, freq='D')
|
|
350
|
-
.tz_localize('MST'))
|
|
351
|
-
unixtimes = times.tz_convert('UTC').view(np.int64)*1.0/10**9
|
|
352
|
-
unixtimes = np.array(unixtimes)
|
|
353
342
|
result = self.spa.earthsun_distance(unixtimes, 64.0, 1)
|
|
354
343
|
assert_almost_equal(R, result, 6)
|
|
355
344
|
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
.. _whatsnew_0_14_1:
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
v0.14.1 (Month XX, 20YY)
|
|
5
|
-
-----------------------
|
|
6
|
-
|
|
7
|
-
Breaking Changes
|
|
8
|
-
~~~~~~~~~~~~~~~~
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
Deprecations
|
|
12
|
-
~~~~~~~~~~~~
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
Bug fixes
|
|
16
|
-
~~~~~~~~~
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Enhancements
|
|
20
|
-
~~~~~~~~~~~~
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
Documentation
|
|
24
|
-
~~~~~~~~~~~~~
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
Testing
|
|
28
|
-
~~~~~~~
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
Benchmarking
|
|
32
|
-
~~~~~~~~~~~~
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Requirements
|
|
36
|
-
~~~~~~~~~~~~
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
Maintenance
|
|
40
|
-
~~~~~~~~~~~
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
Contributors
|
|
44
|
-
~~~~~~~~~~~~
|
|
45
|
-
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|