diff --git a/docs/sphinx/source/whatsnew.rst b/docs/sphinx/source/whatsnew.rst index 4abbae8098..4a91218e1b 100644 --- a/docs/sphinx/source/whatsnew.rst +++ b/docs/sphinx/source/whatsnew.rst @@ -6,7 +6,7 @@ What's New These are new features and improvements of note in each release. -.. include:: whatsnew/v0.9.6.rst +.. include:: whatsnew/v0.10.0.rst .. include:: whatsnew/v0.9.5.rst .. include:: whatsnew/v0.9.4.rst .. include:: whatsnew/v0.9.3.rst diff --git a/docs/sphinx/source/whatsnew/v0.10.0.rst b/docs/sphinx/source/whatsnew/v0.10.0.rst index 1e04c54bb0..e7816020bd 100644 --- a/docs/sphinx/source/whatsnew/v0.10.0.rst +++ b/docs/sphinx/source/whatsnew/v0.10.0.rst @@ -1,19 +1,32 @@ .. _whatsnew_01000: -v0.10.0 -------- +v0.10.0 (June 30, 2023) +----------------------- Breaking changes ~~~~~~~~~~~~~~~~ +* After being deprecated for over a year, the :py:mod:`pvlib.forecast` module + is now removed entirely. (:pull:`1766`) +* The following, originally deprecated in :ref:`whatsnew_0900`, is now removed: (:pull:`1770`) + + - The :py:class:`pvlib.tracking.SingleAxisTracker` class + - The various model-specific :py:class:`~pvlib.pvsystem.PVSystem` inverter + and cell temperature methods + - Attribute "pass-through" from :py:class:`~pvlib.modelchain.ModelChain` + to :py:class:`~pvlib.modelchain.ModelChainResult` + - Attribute "pass-through" from :py:class:`~pvlib.pvsystem.PVSystem` + to :py:class:`~pvlib.pvsystem.Array` + - The ``eta_m`` parameter in :py:func:`pvlib.temperature.pvsyst_cell` + * Reorder arguments of :py:func:`pvlib.pvsystem.PVSystem.i_from_v`, :py:func:`pvlib.pvsystem.i_from_v`, :py:func:`pvlib.pvsystem.v_from_i`, :py:func:`pvlib.singlediode._lambertw_i_from_v`, and :py:func:`pvlib.singlediode._lambertw_v_from_i` to match :py:func:`pvlib.pvsystem.singlediode`. (:issue:`1718`, :pull:`1719`) -* Map wind direction to `wind_direction` instead of `wind_dir` in +* Map wind direction to ``'wind_direction'`` instead of ``'wind_dir'`` in :py:func:`pvlib.iotools.read_srml` and :py:func:`pvlib.iotools.read_srml_month_from_solardat` (:pull:`1773`) * :func:`~pvlib.iotools.get_pvgis_tmy` and :func:`~pvlib.iotools.read_pvgis_tmy` @@ -21,6 +34,17 @@ Breaking changes (:pull:`1772`) * In :py:func:`~pvlib.iotools.get_pvgis_tmy`, the ``map_variables`` keyword parameter now comes before the ``url`` keyword parameter. (:pull:`1795`) +* Modified the ``surface_azimuth`` parameter in :py:func:`pvlib.iotools.get_pvgis_hourly` to conform to the + pvlib azimuth convention (counterclockwise from north). Previously 0 degrees represented south. + (:issue:`1724`, :pull:`1739`) +* For consistency with the rest of pvlib, the ``pw`` parameters are renamed to + ``precipitable_water`` in :py:func:`pvlib.spectrum.spectral_factor_firstsolar`. + (:pull:`1768`) +* For consistency with the rest of pvlib, the ``tilt`` parameter is renamed + to ``surface_tilt`` in :py:func:`pvlib.soiling.hsu`. (:issue:`1717`, :pull:`1738`) +* Several undocumented functions in :py:mod:`pvlib.iotools.midc`, + :py:mod:`pvlib.iotools.srml`, and :py:mod:`pvlib.iotools.surfrad` + are now private. (:issue:`1756`, :pull:`1769`) Deprecations @@ -28,20 +52,37 @@ Deprecations * The ``ivcurve_pnts`` parameter of :py:func:`pvlib.pvsystem.singlediode` is deprecated. Use :py:func:`pvlib.pvsystem.v_from_i` and :py:func:`pvlib.pvsystem.i_from_v` instead. (:issue:`1626`, :pull:`1743`) +* Functions for calculating spectral modifiers have been moved to :py:mod:`pvlib.spectrum`: + :py:func:`pvlib.atmosphere.first_solar_spectral_correction` is deprecated and + replaced by :py:func:`~pvlib.spectrum.spectral_factor_firstsolar`, and + :py:func:`pvlib.pvsystem.sapm_spectral_loss` is deprecated and replaced by + :py:func:`~pvlib.spectrum.spectral_factor_sapm`. (:pull:`1628`) +* Removed the ``get_ecmwf_macc`` and ``read_ecmwf_macc`` iotools functions as the + MACC dataset has been `removed by ECMWF `_ + (data period 2003-2012). Instead, ECMWF recommends to use CAMS global + reanalysis (EAC4) from the Atmosphere Data Store (ADS). See also :py:func:`pvlib.iotools.get_cams`. + (:issue:`1691`, :pull:`1654`) +* The ``recolumn`` parameter in :py:func:`pvlib.iotools.read_tmy3`, which maps + TMY3 column names to nonstandard alternatives, is now deprecated. + We encourage using ``map_variables`` (which produces standard pvlib names) instead. + (:issue:`1517`, :pull:`1623`) +* :py:func:`pvlib.iotools.read_srml_month_from_solardat` is deprecated and replaced by + :py:func:`pvlib.iotools.get_srml`. (:pull:`1779`) Enhancements ~~~~~~~~~~~~ -* Added a new irradiance decomposition model :py:func:`pvlib.irradiance.orgill_hollands`. (:pull:`1730`) +* Added two new irradiance decomposition models: :py:func:`pvlib.irradiance.orgill_hollands` (:pull:`1730`) + and :py:func:`pvlib.irradiance.louche` (:pull:`1705`). * The return values of :py:func:`pvlib.pvsystem.calcparams_desoto`, :py:func:`pvlib.pvsystem.calcparams_cec`, and :py:func:`pvlib.pvsystem.calcparams_pvsyst` are all numeric types and have - the same Python type as the `effective_irradiance` and `temp_cell` parameters. (:issue:`1626`, :pull:`1700`) -* Added `map_variables` parameter to :py:func:`pvlib.iotools.read_srml` - and :py:func:`pvlib.iotools.read_srml_month_from_solardat` (:pull:`1773`) + the same Python type as the ``effective_irradiance`` and ``temp_cell`` parameters. (:issue:`1626`, :pull:`1700`) +* Added ``map_variables`` parameter to :py:func:`pvlib.iotools.read_tmy3` (:issue:`1517`, :pull:`1623`), + :py:func:`pvlib.iotools.read_srml`, and :py:func:`pvlib.iotools.read_srml_month_from_solardat` (:pull:`1773`). * Added :func:`pvlib.iotools.get_srml` that is similar to :func:`pvlib.iotools.read_srml_month_from_solardat` but is able to fetch multiple months - of data using the `start` and `end` parameters. + of data using the ``start`` and ``end`` parameters. (:pull:`1779`) * Allow passing keyword arguments to :py:func:`scipy:scipy.optimize.brentq` and :py:func:`scipy:scipy.optimize.newton` solvers in @@ -50,28 +91,70 @@ Enhancements :py:func:`~pvlib.singlediode.bishop88_v_from_i`. Among others, tolerance and number of iterations can be set. (:issue:`1249`, :pull:`1764`) -* Improved `ModelChainResult.__repr__` (:pull:`1236`) +* Improved ``ModelChainResult.__repr__`` (:pull:`1236`) +* Exposes several functions useful for bifacial and shading calculations (:pull:`1666`): + + * :py:func:`pvlib.bifacial.utils.vf_row_sky_2d` + * :py:func:`pvlib.bifacial.utils.vf_row_sky_2d_integ` + * :py:func:`pvlib.bifacial.utils.vf_row_ground_2d` + * :py:func:`pvlib.bifacial.utils.vf_row_ground_2d_integ` + * :py:func:`pvlib.bifacial.utils.vf_ground_sky_2d` + * :py:func:`pvlib.bifacial.utils.vf_ground_sky_2d_integ` + * :py:func:`pvlib.shading.ground_angle` + +* Added a function :py:func:`pvlib.spectrum.spectral_factor_caballero` + to estimate spectral mismatch modifiers from atmospheric conditions. (:pull:`1296`) +* Add optional ``encoding`` parameter to :py:func:`pvlib.iotools.read_tmy3`. (:issue:`1732`, :pull:`1737`) +* Added function to retrieve horizon data from PVGIS + :py:func:`pvlib.iotools.get_pvgis_horizon`. (:issue:`1290`, :pull:`1395`) +* Update the URL used in the :py:func:`pvlib.iotools.get_cams` function. The new URL supports load-balancing + and redirects to the fastest server. (:issue:`1688`, :pull:`1740`) +* :py:func:`pvlib.iotools.get_psm3` now has a ``url`` parameter to give the user + the option of controlling what NSRDB endpoint is used. (:pull:`1736`) +* :py:func:`pvlib.iotools.get_psm3` now uses the new NSRDB 3.2.2 endpoint for + hourly and half-hourly single-year datasets. (:issue:`1591`, :pull:`1736`) +* The default solar position algorithm (NREL SPA) is now 50-100% faster. (:pull:`1748`) +* Added functions to retrieve daily precipitation, temperature, and snowfall data + from the NOAA's ACIS service: :py:func:`~pvlib.iotools.get_acis_prism`, + :py:func:`~pvlib.iotools.get_acis_nrcc`, :py:func:`~pvlib.iotools.get_acis_mpe`, + :py:func:`~pvlib.iotools.get_acis_station_data`, and + :py:func:`~pvlib.iotools.get_acis_available_stations`. (:issue:`1293`, :pull:`1767`) + Bug fixes ~~~~~~~~~ - -* Prevent small negative values of `v_oc` in :py:func:`pvlib.singlediode._lambertw` +* Prevent small negative values of ``v_oc`` in :py:func:`pvlib.singlediode._lambertw` which result from accumulated roundoff error. (:issue:`1780`, :issue:`1673`, :pull:`1782`) +* Corrects an error in view factor calculations which are part of + :py:func:`pvlib.bifacial.infinite_sheds.get_irradiance`. The error + affects rear surface irradiance by a few W/m2. As part of the correction, + average view factors are now computed by exact formulas rather than by + numerical integration. (:issue:`1665`, :pull:`1666`) +* ``data`` can no longer be left unspecified in + :py:meth:`pvlib.modelchain.ModelChain.run_model_from_effective_irradiance`. (:issue:`1713`, :pull:`1720`) +* ``d2mutau`` and ``NsVbi`` are now correctly passed through :py:func:`pvlib.pvsystem.max_power_point` + instead of being hardcoded. (:pull:`1733`) +* :py:func:`pvlib.iam.physical` no longer returns NaN when ``n=1`` and ``aoi>90``. + This bug was introduced in v0.9.5. (:issue:`1706`, :pull:`1707`) Testing ~~~~~~~ +* Migrated to mamba-org/setup-micromamba. (:issue:`1746`, :pull:`1758`) Documentation ~~~~~~~~~~~~~ - -Benchmarking -~~~~~~~~~~~~~ +* Updated the description of the interval parameter in + :py:func:`pvlib.iotools.get_psm3`. (:issue:`1702`, :pull:`1712`) +* Fixed outdated nbviewer links. (:issue:`1721`, :pull:`1726`) Requirements ~~~~~~~~~~~~ +* With the removal of :py:mod:`pvlib.forecast`, the following packages are no + longer listed as (optional) dependencies: ``netCDF4``, ``cftime``, and ``siphon``. + (:pull:`1766`) Contributors @@ -83,3 +166,21 @@ Contributors * Cliff Hansen (:ghuser:`cwhanse`) * Cédric Leroy (:ghuser:`cedricleroy`) * Jean-Baptiste Pasquier (:ghuser:`pasquierjb`) +* Mark Mikofski (:ghuser:`mikofski`) +* Lakshya Garg (:ghuser:`Lakshyadevelops`) +* Ben Pierce (:ghuser:`bgpierc`) +* Joseph Palakapilly (:ghuser:`JPalakapillyKWH`) +* Anton Driesse (:ghuser:`adriesse`) +* Will Holmgren (:ghuser:`wholmgren`) +* Karel De Brabandere (:ghuser:`kdebrab`) +* Josh Stein (:ghuser:`jsstein`) +* Kevin Anderson (:ghuser:`kandersolar`) +* Siddharth Kaul (:ghuser:`k10blogger`) +* Kshitiz Gupta (:ghuser:`kshitiz305`) +* Stefan de Lange (:ghuser:`langestefan`) +* Jose Antonio Caballero (:ghuser:`Jacc0027`) +* Andy Lam (:ghuser:`andylam598`) +* :ghuser:`ooprathamm` +* Devon Watt (:ghuser:`d-watt`) +* Todd Karin (:ghuser:`toddkarin`) +* Corey Pullium (:ghuser:`cpullium`) diff --git a/docs/sphinx/source/whatsnew/v0.10.1.rst b/docs/sphinx/source/whatsnew/v0.10.1.rst new file mode 100644 index 0000000000..fda67c7465 --- /dev/null +++ b/docs/sphinx/source/whatsnew/v0.10.1.rst @@ -0,0 +1,34 @@ +.. _whatsnew_01010: + + +v0.10.1 (Anticipated September, 2023) +------------------------------------- + + +Deprecations +~~~~~~~~~~~~ + + +Enhancements +~~~~~~~~~~~~ + + +Bug fixes +~~~~~~~~~ + + +Testing +~~~~~~~ + + +Documentation +~~~~~~~~~~~~~ + + +Requirements +~~~~~~~~~~~~ + + +Contributors +~~~~~~~~~~~~ + diff --git a/docs/sphinx/source/whatsnew/v0.9.6.rst b/docs/sphinx/source/whatsnew/v0.9.6.rst deleted file mode 100644 index b3450fbc6f..0000000000 --- a/docs/sphinx/source/whatsnew/v0.9.6.rst +++ /dev/null @@ -1,149 +0,0 @@ -.. _whatsnew_0960: - - -v0.9.6 (Anticipated June 2023) ------------------------------- - - -Breaking Changes -~~~~~~~~~~~~~~~~ -* After being deprecated for over a year, the :py:mod:`pvlib.forecast` module - is now removed entirely. (:pull:`1766`) -* Modified the ``surface_azimuth`` parameter in :py:func:`pvlib.iotools.get_pvgis_hourly` to conform to the - pvlib azimuth convention (counterclockwise from north). Previously 0 degrees represented south. - (:issue:`1724`, :pull:`1739`) -* For consistency with the rest of pvlib, the ``pw`` parameters are renamed to - ``precipitable_water`` in :py:func:`pvlib.spectrum.spectral_factor_firstsolar`. - (:pull:`1768`) -* For consistency with the rest of pvlib, the ``tilt`` parameter is renamed - to ``surface_tilt`` in :py:func:`pvlib.soiling.hsu`. (:issue:`1717`, :pull:`1738`) -* Several undocumented functions in :py:mod:`pvlib.iotools.midc`, - :py:mod:`pvlib.iotools.srml`, and :py:mod:`pvlib.iotools.surfrad` - are now private. (:issue:`1756`, :pull:`1769`) -* The following, originally deprecated in :ref:`whatsnew_0900`, is now removed: (:pull:`1770`) - - - The :py:class:`pvlib.tracking.SingleAxisTracker` class - - The various model-specific :py:class:`~pvlib.pvsystem.PVSystem` inverter - and cell temperature methods - - Attribute "pass-through" from :py:class:`~pvlib.modelchain.ModelChain` - to :py:class:`~pvlib.modelchain.ModelChainResult` - - Attribute "pass-through" from :py:class:`~pvlib.pvsystem.PVSystem` - to :py:class:`~pvlib.pvsystem.Array` - - The ``eta_m`` parameter in :py:func:`pvlib.temperature.pvsyst_cell` - - -Deprecations -~~~~~~~~~~~~ -* Functions for calculating spectral modifiers have been moved to :py:mod:`pvlib.spectrum`: - :py:func:`pvlib.atmosphere.first_solar_spectral_correction` is deprecated and - replaced by :py:func:`~pvlib.spectrum.spectral_factor_firstsolar`, and - :py:func:`pvlib.pvsystem.sapm_spectral_loss` is deprecated and replaced by - :py:func:`~pvlib.spectrum.spectral_factor_sapm`. (:pull:`1628`) -* Removed the ``get_ecmwf_macc`` and ``read_ecmwf_macc`` iotools functions as the - MACC dataset has been `removed by ECMWF `_ - (data period 2003-2012). Instead, ECMWF recommends to use CAMS global - reanalysis (EAC4) from the Atmosphere Data Store (ADS). See also :py:func:`pvlib.iotools.get_cams`. - (:issue:`1691`, :pull:`1654`) -* The ``recolumn`` parameter in :py:func:`pvlib.iotools.read_tmy3`, which maps - TMY3 column names to nonstandard alternatives, is now deprecated. - We encourage using ``map_variables`` (which produces standard pvlib names) instead. - (:issue:`1517`, :pull:`1623`) -* :py:func:`pvlib.iotools.read_srml_month_from_solardat` is deprecated and replaced by - :py:func:`pvlib.iotools.get_srml`. (:pull:`1779`) - - -Enhancements -~~~~~~~~~~~~ -* Exposes several functions useful for bifacial and shading calculations (:pull:`1666`): - - * :py:func:`pvlib.bifacial.utils.vf_row_sky_2d` - * :py:func:`pvlib.bifacial.utils.vf_row_sky_2d_integ` - * :py:func:`pvlib.bifacial.utils.vf_row_ground_2d` - * :py:func:`pvlib.bifacial.utils.vf_row_ground_2d_integ` - * :py:func:`pvlib.bifacial.utils.vf_ground_sky_2d` - * :py:func:`pvlib.bifacial.utils.vf_ground_sky_2d_integ` - * :py:func:`pvlib.shading.ground_angle` - -* Added a function :py:func:`pvlib.spectrum.spectral_factor_caballero` - to estimate spectral mismatch modifiers from atmospheric conditions. (:pull:`1296`) -* Added a new irradiance decomposition model :py:func:`pvlib.irradiance.louche`. (:pull:`1705`) -* Add optional encoding parameter to :py:func:`pvlib.iotools.read_tmy3`. - (:issue:`1732`, :pull:`1737`) -* Added function to retrieve horizon data from PVGIS - :py:func:`pvlib.iotools.get_pvgis_horizon`. (:issue:`1290`, :pull:`1395`) -* Added ``map_variables`` argument to the :py:func:`pvlib.iotools.read_tmy3` in - order to offer the option of mapping column names to standard pvlib names. - (:issue:`1517`, :pull:`1623`) -* Update the URL used in the :py:func:`pvlib.iotools.get_cams` function. The new URL supports load-balancing - and redirects to the fastest server. (:issue:`1688`, :pull:`1740`) -* :py:func:`pvlib.iotools.get_psm3` now has a ``url`` parameter to give the user - the option of controlling what NSRDB endpoint is used. (:pull:`1736`) -* :py:func:`pvlib.iotools.get_psm3` now uses the new NSRDB 3.2.2 endpoint for - hourly and half-hourly single-year datasets. (:issue:`1591`, :pull:`1736`) -* The default solar position algorithm (NREL SPA) is now 50-100% faster. (:pull:`1748`) -* Added functions to retrieve daily precipitation, temperature, and snowfall data - from the NOAA's ACIS service: :py:func:`~pvlib.iotools.get_acis_prism`, - :py:func:`~pvlib.iotools.get_acis_nrcc`, :py:func:`~pvlib.iotools.get_acis_mpe`, - :py:func:`~pvlib.iotools.get_acis_station_data`, and - :py:func:`~pvlib.iotools.get_acis_available_stations`. (:issue:`1293`, :pull:`1767`) - -Bug fixes -~~~~~~~~~ -* Corrects an error in view factor calculations which are part of - :py:func:`pvlib.bifacial.infinite_sheds.get_irradiance`. The error - affects rear surface irradiance by a few W/m2. As part of the correction, - average view factors are now computed by exact formulas rather than by - numerical integration. (:issue:`1665`, :pull:`1666`) -* `data` can no longer be left unspecified in - :py:meth:`pvlib.modelchain.ModelChain.run_model_from_effective_irradiance`. (:issue:`1713`, :pull:`1720`) -* ``d2mutau`` and ``NsVbi`` were hardcoded in :py:func:`pvlib.pvsystem.max_power_point` instead of - passing through the arguments to the function. (:pull:`1733`) -* :py:func:`pvlib.iam.physical` no longer returns NaN when ``n=1`` and ``aoi>90``. - This bug was introduced in v0.9.5. (:issue:`1706`, :pull:`1707`) - - -Testing -~~~~~~~ -* Migrated to mamba-org/setup-micromamba. (:issue:`1746`, :pull:`1758`) - -Documentation -~~~~~~~~~~~~~ -* Updated the description of the interval parameter in - :py:func:`pvlib.iotools.get_psm3`. (:issue:`1702`, :pull:`1712`) -* Fixed outdated nbviewer links. (:issue:`1721`, :pull:`1726`) - -Benchmarking -~~~~~~~~~~~~~ - - -Requirements -~~~~~~~~~~~~ -* With the removal of :py:mod:`pvlib.forecast`, the following packages are no - longer listed as (optional) dependencies: ``netCDF4``, ``cftime``, and ``siphon``. - (:pull:`1766`) - - -Contributors -~~~~~~~~~~~~ -* Mark Mikofski (:ghuser:`mikofski`) -* Cliff Hansen (:ghuser:`cwhanse`) -* Lakshya Garg (:ghuser:`Lakshyadevelops`) -* Adam R. Jensen (:ghuser:`adamrjensen`) -* Ben Pierce (:ghuser:`bgpierc`) -* Joseph Palakapilly (:ghuser:`JPalakapillyKWH`) -* Cliff Hansen (:ghuser:`cwhanse`) -* Anton Driesse (:ghuser:`adriesse`) -* Will Holmgren (:ghuser:`wholmgren`) -* Mark Mikofski (:ghuser:`mikofski`) -* Karel De Brabandere (:ghuser:`kdebrab`) -* Josh Stein (:ghuser:`jsstein`) -* Kevin Anderson (:ghuser:`kandersolar`) -* Siddharth Kaul (:ghuser:`k10blogger`) -* Kshitiz Gupta (:ghuser:`kshitiz305`) -* Stefan de Lange (:ghuser:`langestefan`) -* Jose Antonio Caballero (:ghuser:`Jacc0027`) -* Andy Lam (:ghuser:`@andylam598`) -* :ghuser:`ooprathamm` -* Kevin Anderson (:ghuser:`kandersolar`) -* Devon Watt (:ghuser:`d-watt`) - diff --git a/pvlib/modelchain.py b/pvlib/modelchain.py index 154c29e738..3d2404689f 100644 --- a/pvlib/modelchain.py +++ b/pvlib/modelchain.py @@ -586,7 +586,7 @@ def with_pvwatts(cls, system, location, Examples -------- >>> module_parameters = dict(gamma_pdc=-0.003, pdc0=4500) - >>> inverter_parameters = dict(pac0=4000) + >>> inverter_parameters = dict(pdc0=4000) >>> tparams = TEMPERATURE_MODEL_PARAMETERS['sapm']['open_rack_glass_glass'] >>> system = PVSystem(surface_tilt=30, surface_azimuth=180, ... module_parameters=module_parameters,