Skip to content

Commit

Permalink
Finalize 0.10.0 (#1793)
Browse files Browse the repository at this point in the history
* move 0.9.6 whatsnew content to 0.10.0

* cleanup

* Add missing contributors

* fix #1731

* create blank 0.10.1 whatsnew

* fix contributor gh handle
  • Loading branch information
kandersolar committed Jun 30, 2023
1 parent 4ac847f commit 6bf9e07
Show file tree
Hide file tree
Showing 5 changed files with 151 additions and 165 deletions.
2 changes: 1 addition & 1 deletion docs/sphinx/source/whatsnew.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
129 changes: 115 additions & 14 deletions docs/sphinx/source/whatsnew/v0.10.0.rst
Original file line number Diff line number Diff line change
@@ -1,47 +1,88 @@
.. _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`
now rename columns to standard pvlib names by default (``map_variables=True``)
(: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
~~~~~~~~~~~~
* 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 <https://confluence.ecmwf.int/display/DAC/Decommissioning+of+ECMWF+Public+Datasets+Service>`_
(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
Expand All @@ -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
Expand All @@ -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`)
34 changes: 34 additions & 0 deletions docs/sphinx/source/whatsnew/v0.10.1.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
.. _whatsnew_01010:


v0.10.1 (Anticipated September, 2023)
-------------------------------------


Deprecations
~~~~~~~~~~~~


Enhancements
~~~~~~~~~~~~


Bug fixes
~~~~~~~~~


Testing
~~~~~~~


Documentation
~~~~~~~~~~~~~


Requirements
~~~~~~~~~~~~


Contributors
~~~~~~~~~~~~

149 changes: 0 additions & 149 deletions docs/sphinx/source/whatsnew/v0.9.6.rst

This file was deleted.

2 changes: 1 addition & 1 deletion pvlib/modelchain.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down

0 comments on commit 6bf9e07

Please sign in to comment.