RdTools Change Log

v3.0.0-beta.0 (October 28, 2024)

Breaking changes

These changes have the potential to change answers in existing scripts when compared with older versions of RdTools

  • Use the pvlib method for clear sky detection by default in TrendAnalysis() (GH #412)

  • Change default clipping filter model to logic (GH #425)

  • Turn on the two_way_window_filter by default in TrendAnalysis (GH #425)

  • Upgrade pvlib 0.9.0 to 0.11.0 (GH #428)

Enhancements

  • Added a new wrapper function for clearsky filters (GH #412)

  • Improve test coverage, especially for the newly added filter capabilities (GH #413)

  • Added codecov.yml configuration file (GH #420)

  • Availability module no longer considered experimental (GH #429)

  • Add capability to seed the CircularBlockBootstrap (GH #429)

  • Allow sub-daily aggregation in degradation_year_on_year() (GH #390)

Bug fixes

  • Fix typos in citation section of the readme file (GH #414, GH #421)

  • Fix deploy workflow to pypi (GH #416, GH #427)

  • Deploy workflow was replaced with trusted publisher workflow for pypi (GH #427)

  • Fix pandas 2.0.0 deprications and update syntax changes (GH #428)

  • Fix numpy 2.0.0 deprications and update syntax changes (GH #428)

Tests

  • Testing matrix was updated to include python = [3.9, 3.10, 3.11, 3.12] (GH #428)

  • nbval sanitization rules were added for date and time stamp (GH #428)

Documentation

  • External link syntax updated to avoid warnings with new versions (GH #428)

Requirements

  • Specified versions in requirements.txt, requirements_min.txt and docs/notebook_requirements.txt have been updated (GH #412, GH #428, GH #429)

    • Updated certifi==2024.7.4 in requirements.txt (GH #428)

    • Updated chardet==5.2.0 in requirements.txt (GH #428)

    • Updated cycler==0.12.1 in requirements.txt (GH #428)

    • Updated fonttools==4.53.1 in requirements.txt (GH #428)

    • Updated h5py==3.11.0 in requirements.txt (GH #428)

    • Updated idna==3.7 in requirements.txt (GH #428)

    • Updated joblib==1.4.2 in requirements.txt (GH #428)

    • Updated kiwisolver==1.4.5 in requirements.txt (GH #428)

    • Updated matplotlib==3.9.2 in requirements.txt (GH #428)

    • Updated numpy==2.1.1 in requirements.txt (GH #428)

    • Updated packaging==24.1 in requirements.txt (GH #428)

    • Updated pandas==2.2.2 in requirements.txt (GH #428)

    • Updated patsy==0.5.6 in requirements.txt (GH #428)

    • Updated Pillow==10.4.0 in requirements.txt (GH #428)

    • Updated plotly==5.23.0 in requirements.txt (GH #428)

    • Updated pvlib==0.11.0 in requirements.txt (GH #428)

    • Updated pyparsing==3.1.2 in requirements.txt (GH #428)

    • Updated python-dateutil==2.9.0 in requirements.txt (GH #428)

    • Updated pytz==2024.1 in requirements.txt (GH #428)

    • Added arch==7.0.0 in requirements.txt (GH #428)

    • Added filterpy==1.4.5 in requirements.txt (GH #428)

    • Updated requests==2.32.3 in requirements.txt (GH #428)

    • Updated retrying==1.3.4 in requirements.txt (GH #428)

    • Updated scikit-learn==1.5.1 in requirements.txt (GH #428)

    • Updated scipy==1.13.1 in requirements.txt (GH #428)

    • Updated setuptools-scm==8.1.0 in requirements.txt (GH #428)

    • Updated six==1.16.0 in requirements.txt (GH #428)

    • Updated statsmodels==0.14.2 in requirements.txt (GH #428)

    • Updated threadpoolctl==3.5.0 in requirements.txt (GH #428)

    • Updated typing_extensions==4.12.2 in requirements.txt (GH #428)

    • Updated urllib3==2.2.2 in requirements.txt (GH #428)

    • Updated xgboost==2.1.1 in requirements.txt (GH #428)

    • Updated matplotlib==3.5.3 in requirements_min.txt (GH #428)

    • Updated numpy==1.22.4 in requirements_min.txt (GH #428)

    • Updated pandas==1.4.4 in requirements_min.txt (GH #428)

    • Updated statsmodels==0.13.5 in requirements_min.txt (GH #428)

    • Updated scipy==1.8.1 in requirements_min.txt (GH #428)

    • Updated h5py==3.7.0 in requirements_min.txt (GH #428)

    • Updated pvlib==0.11.0 in requirements_min.txt (GH #428)

    • Updated scikit-learn==1.1.3 in requirements_min.txt (GH #428)

    • Updated arch==5.0 in requirements_min.txt (GH #429)

    • Updated filterpy==1.4.5 in requirements_min.txt (GH #428)

    • Updated xgboost==1.6.0 in requirements_min.txt (GH #431)

    • Updated appnope==0.1.4 in notebook_requirements.txt (GH #428)

    • Updated argon2-cffi==23.1.0 in notebook_requirements.txt (GH #428)

    • Updated backcall==0.2.0 in notebook_requirements.txt (GH #428)

    • Updated beautifulsoup4==4.12.3 in notebook_requirements.txt (GH #428)

    • Updated bleach==6.1.0 in notebook_requirements.txt (GH #428)

    • Updated cffi==1.17.0 in notebook_requirements.txt (GH #428)

    • Updated colorama==0.4.6 in notebook_requirements.txt (GH #428)

    • Updated decorator==5.1.1 in notebook_requirements.txt (GH #428)

    • Updated entrypoints==0.4 in notebook_requirements.txt (GH #428)

    • Updated html5lib==1.1 in notebook_requirements.txt (GH #428)

    • Updated ipykernel==6.29.5 in notebook_requirements.txt (GH #428)

    • Updated ipython==8.26.0 in notebook_requirements.txt (GH #428)

    • Updated ipywidgets==8.1.3 in notebook_requirements.txt (GH #428)

    • Updated jedi==0.19.1 in notebook_requirements.txt (GH #428)

    • Updated Jinja2==3.1.4 in notebook_requirements.txt (GH #428)

    • Updated jsonschema==4.23.0 in notebook_requirements.txt (GH #428)

    • Updated jupyter-client==8.6.2 in notebook_requirements.txt (GH #428)

    • Updated jupyter-console==6.6.3 in notebook_requirements.txt (GH #428)

    • Updated jupyter-core==5.7.2 in notebook_requirements.txt (GH #428)

    • Updated jupyterlab-pygments==0.3.0 in notebook_requirements.txt (GH #428)

    • Updated lxml==5.3.0 in notebook_requirements.txt (GH #428)

    • Updated MarkupSafe==2.1.5 in notebook_requirements.txt (GH #428)

    • Updated mistune==3.0.2 in notebook_requirements.txt (GH #428)

    • Updated nbclient==0.10.0 in notebook_requirements.txt (GH #428)

    • Updated nbconvert==7.16.4 in notebook_requirements.txt (GH #428)

    • Updated nbformat==5.10.4 in notebook_requirements.txt (GH #428)

    • Updated nest-asyncio==1.6.0 in notebook_requirements.txt (GH #428)

    • Updated notebook==7.2.1 in notebook_requirements.txt (GH #428)

    • Updated numexpr==2.10.1 in notebook_requirements.txt (GH #428)

    • Updated pandocfilters==1.5.1 in notebook_requirements.txt (GH #428)

    • Updated parso==0.8.4 in notebook_requirements.txt (GH #428)

    • Updated pexpect==4.9.0 in notebook_requirements.txt (GH #428)

    • Updated prometheus-client==0.20.0 in notebook_requirements.txt (GH #428)

    • Updated prompt-toolkit==3.0.47 in notebook_requirements.txt (GH #428)

    • Updated ptyprocess==0.7.0 in notebook_requirements.txt (GH #428)

    • Updated pycparser==2.22 in notebook_requirements.txt (GH #428)

    • Updated Pygments==2.18.0 in notebook_requirements.txt (GH #428)

    • Updated pyzmq==26.1.1 in notebook_requirements.txt (GH #428)

    • Updated qtconsole==5.5.2 in notebook_requirements.txt (GH #428)

    • Updated Send2Trash==1.8.3 in notebook_requirements.txt (GH #428)

    • Updated soupsieve==2.6 in notebook_requirements.txt (GH #428)

    • Updated terminado==0.18.1 in notebook_requirements.txt (GH #428)

    • Updated testpath==0.6.0 in notebook_requirements.txt (GH #428)

    • Updated tinycss2==1.3.0 in notebook_requirements.txt (GH #428)

    • Updated tornado==6.4.1 in notebook_requirements.txt (GH #428)

    • Updated traitlets==5.14.3 in notebook_requirements.txt (GH #428)

    • Updated wcwidth==0.2.13 in notebook_requirements.txt (GH #428)

    • Updated widgetsnbextension==4.0.11 in notebook_requirements.txt (GH #428)

  • Update requirements in setup.py
    • Increase maximum version of pvlib to <0.12 (GH #423)

    • Updated classifiers to accomodate new python versions (GH #428)

    • Add pytest-cov to TESTS_REQUIRE (GH #420)

    • Add arch >= 5.0 to INSTALL_REQUIRES (GH #429)

    • Add filterpy >= 1.4.2 to INSTALL_REQUIRES (GH #428)

    • Updated matplotlib >= 3.5.3 in INSTALL_REQUIRES (GH #428)

    • Updated numpy >= 1.22.4 in INSTALL_REQUIRES (GH #428)

    • Updated pandas >= 1.4.4 in INSTALL_REQUIRES (GH #428)

    • Updated statsmodels >= 0.13.5 in INSTALL_REQUIRES (GH #428)

    • Updated scipy >= 1.8.1 in INSTALL_REQUIRES (GH #428)

    • Updated h5py >= 3.7.0 in INSTALL_REQUIRES (GH #428)

    • Updated plotly>=4.0.0 in INSTALL_REQUIRES (GH #428)

    • Updated xgboost >= 1.6.0 in INSTALL_REQUIRES (GH #431)

    • Updated pvlib >= 0.9.0, <0.12.0 in INSTALL_REQUIRES (GH #428)

    • Updated scikit-learn >= 1.1.3 in INSTALL_REQUIRES (GH #428)

    • Updated sphinx==7.4.7 in EXTRAS_REQUIRE (GH #390)

    • Updated nbsphinx==0.9.5 in EXTRAS_REQUIRE (GH #428)

    • Updated nbsphinx-link==1.3.1 in EXTRAS_REQUIRE (GH #428)

    • Updated sphinx_rtd_theme==3.0.1 in EXTRAS_REQUIRE (GH #428)

    • Updated sphinx==8.0.2 in EXTRAS_REQUIRE (GH #428)

    • Updated nbsphinx==0.9.5 in EXTRAS_REQUIRE (GH #428)

    • Updated nbsphinx-link==1.3.1 in EXTRAS_REQUIRE (GH #428)

    • Updated sphinx_rtd_theme==3.0.1 in EXTRAS_REQUIRE (GH #428)

    • Updated sphinx-gallery==0.18.0 in EXTRAS_REQUIRE (GH #428)

  • Updated Github actions in workflows (GH #428)

  • Updated versioneer to 0.29 (GH #428)

  • Updated os to ubuntu-24.04 and python to 3.12 in .readthedocs.yml (GH #428)

Deprecations

  • Removed sapm_dc_power() (GH #419)

  • Removed normalize_with_sapm() (GH #419)

  • Removed fail_on_rdtools_version() (GH #428)

Contributors

v2.2.0-beta.2 (December 1, 2023)

Enhancements

  • Return CODS results without bootstrapping when soiling signal is small but raise warning soiling.py (GH #367 GH #400)

Bug fixes

  • Fix flake8 missing whitespaces bootstrap_test.py, soiling_cods_test.py (GH #400)

  • Specify dtype for seasonal samples soiling.py (GH #400)

  • Update deprecated check_less_precise to rtol soiling_cods_test.py (GH #400)

Requirements

  • Bump arch to 5.6.0 in requirements.txt

Contributors

v2.2.0-beta.1 (December 7, 2022)

Enhancements

  • Added framework for running aggregated filters in analysis_chains.py (GH #348)

v2.1.8 (November 17, 2023)

Bug fixes

Contributors

v2.1.7 (November 3, 2023)

Requirements

  • Limit pandas version to <2.1 (GH #395)

  • Several packages updated in``requirements.txt`` and docs/notebook_requirements.txt (GH #398)

Documentation

  • Update ReadTheDocs configuration (GH #395)

Contributors

v2.1.6 (July 31, 2023)

Bug Fixes

Enhancements

Requirements

  • Increased the minimum versions of several dependencies: (GH #371)

    • pandas increased to 1.3.0 (released July 2, 2021)

    • numpy to 1.17.3 (released October 17, 2019)

    • statsmodels to 0.11.0 (released February 21, 2020)

    • scipy to 1.2.0 (released December 17, 2018)

  • Add support for pvlib 0.10 (GH #378)

  • Updated notebook requirements (GH #360)

  • Bumps certifi from 2020.12.5 to 2022.12.7 (GH #357)

Testing

  • Extended pip timeout (GH #360)

  • Updated example notebooks with new figure sizes (GH #360)

Contributors

v2.1.5 (May 16, 2023)

Bug Fixes

Contributors

v2.1.4 (December 1, 2022)

Bug Fixes

Testing

  • Added a CI notebook check (GH #270)

Requirements

  • Upgrade the notebook environment from python 3.7 to python 3.10. Several dependency versions in docs/notebook_requirements.txt are updated as well. (GH #319, GH #326)

  • Bump ipython==7.16.3, jupyter-console==6.4.0, and prompt-toolkit==3.0.27 in docs/notebook_requirements.txt and bump Pillow==9.3.0 in requirements.txt (GH #314, GH #349)

  • Bump jupyter-core==4.11.2 in docs\notebook_requirements.txt (GH #350)

  • Bump sphinx version from 3.2 to 4.5 and nbsphinx version from 0.8.5 to 0.8.8 in the optional [doc] requirements (GH #317, GH #325)

  • A number of other requirements updates (GH #337)

Contributors

v2.2.0-beta.0 (September 14, 2022)

Enhancements

Testing

  • Added a CI notebook check (GH #270)

Requirements

  • Upgrade the notebook environment from python 3.7 to python 3.10. (GH #319, GH #326)

  • Bump sphinx version from 3.2 to 4.5 and nbsphinx version from 0.8.5 to 0.8.8 in the optional [doc] requirements (GH #317, GH #325)

  • arch and filterpy added as dependencies (GH #150)

  • minimum version of numpy increased to 1.16 and minimum version of statsmodels increased to 0.11.1 (GH #150)

  • A number of updates to the environments specified in requirements.txt, requirements-min.txt, and docs/notebook_requirements.txt (GH #326, GH #314, GH #337)

v2.1.3 (January 6, 2022)

Bug fixes

Requirements

  • Added support for python 3.10 and dropped support for python 3.6 (which reached end of life on Dec 23, 2021) (GH #302)

  • Bumped several minimum package versions (GH #302):

    • h5py increased to 2.8.0 (released June 4, 2018)

    • pandas increased to 0.23.2 (released July 6, 2018)

    • scipy increased to 1.1.0 (released May 5, 2018)

    • statsmodels increased to 0.9.0 (released May 14, 2018)

  • Update pinned versions of several dependencies in requirements.txt (GH #302)

Testing

  • Drop python 3.6 and add 3.10 to the CI configuration (GH #302)

  • Add new assert_warnings helper function to conftest.py (GH #302)

v2.1.2 (December 22, 2021)

Bug fixes

  • XGBoost model saved in a version-stable json. Removes the xgboost version restriction of version 2.1.1. (GH #301, GH #304)

Requirements

  • joblib removed as requirement (GH #304)

  • XGBoost version in requirements.txt updated to 1.5.1 (GH #304)

Documentation

v2.1.1 (November 30, 2021)

This patch release temporarily requires xgboost < 1.5.0. A future update will allow a wider version range. (GH #301, GH #297)

v2.1.0 (September 17, 2021)

API Changes

  • The calculations internal to the soiling SRR algorithm have changed such that consecutive cleaning events are no longer removed. (GH #199, GH #189)

  • The calculations internal to the soiling SRR algorithm have changed such that "invalid" intervals are retained at the beginning and end of the dataset for the purposes of the SRR Monte Carlo. Invalid intervals are those that do not qualify to be fit as soiling intervals based on min_interval_length, max_relative_slope_error, and max_negative_step. (GH #199, GH #272)

  • The default day_scale parameter in soiling functions and methods was changed from 14 to 13. A recommendation to use an odd value along with a warning for even values was also added. (GH #199, GH #189)

  • The default min_interval_length in soiling functions and methods was changed from 2 to 7. (GH #199)

Enhancements

Bug fixes

Documentation

  • Corrected a typo in the TrendAnalysis docstring (GH #264)

  • Enabled intersphinx so that function parameter types are linked to external documentation (GH #258)

Requirements

  • Installation (setup.py) now requires plotly, joblib, xgboost, and scikit-learn

  • Update pinned versions of several dependencies in requirements.txt and docs/notebook_requirements.txt (GH #289, GH #295)

  • Add support for pvlib 0.9 and remove the tables dependency added in v2.1.0b0 (GH #290)

Example Updates

  • TrendAnalysis_example_pvdaq4.ipynb added

  • degradation_and_soiling_example_pvdaq_4.ipynb updated to use the same artificial soiling signal imposed in new notebook TrendAnalysis_example_pvdaq4.ipynb throughout the analysis.

  • degradation_and_soiling_example_pvdaq_4.ipynb updated to illustrate new clipping models and filter-tuning plots.

Contributors

v2.0.6 (July 16, 2021)

Bug Fixes

  • Fix a failure of get_clearsky_tamb() with pandas 1.3.0 (GH #284)

  • Change internal casting of timestamps into integers to use .view() instead of pandas deprecated .astype() method (GH #284)

Requirements

  • Update specified versions of bleach in docs/notebook_requirements.txt and matplotlib in requirements.txt (GH #261)

Contributors

v2.0.5 (2020-12-30) and v2.1.0-beta.2 (2021-01-29)

Testing

  • Add a flake8 code style check to the continuous integration checks (GH #231)

  • Moved several pytest fixtures from soiling_test.py and availability_test.py to conftest.py so that they are shared across test files (GH #231)

  • Add Python 3.9 to CI testing (GH #249)

  • Fix test suite error raised when using pandas 1.2.0 (GH #251)

Documentation

  • Organized example notebooks into a sphinx gallery (GH #240)

Requirements

  • Add support for python 3.9 (GH #249)

  • Update requirements.txt versions for numpy, scipy, pandas, h5py and statsmodels to versions that have wheels available for python 3.6-3.9. Note that the minimum versions are unchanged. (GH #249).

Contributors

v2.0.4 and v2.1.0-beta.1 (December 4, 2020)

Bug Fixes

  • Fix bug related to leading NaN values with energy_from_power(). This fixed a small normalization error in degradation_and_soiling_example.ipynb and slightly changed the clear-sky degradation results (GH #244, GH #245)

Contributors

v2.1.0-beta.0 (November 20, 2020)

Enhancements

  • Add new analysis_chains module to focus on objected-oriented analysis workflows combining other RdTools modules. Includes TrendAnalysis class for sensor- and clear-sky-based soiling and degradation analyses (GH #117).

Requirements

  • tables added as a requirement (GH #196).

Example Updates

  • New example notebook based on PVDAQ system #4 for the new TrendAnalysis analysis work flow (GH #196 and GH #117).

  • Update degradation_and_soiling_example_pvdaq_4.ipynb example to match best practice, including pvlib.get_total_irradiance() in rdtools.interpolate (GH #196 and GH #117).

  • Update degradation_and_soiling_example_pvdaq_4.ipynb example to use a single soiling * ac_power signal (GH #196).

Contributors

v2.0.3 (November 20, 2020)

Requirements

  • Change to docs/notebook_requirements.txt: notebook version from 5.7.8 to 6.1.5 and terminado version from 0.8.1 to 0.8.3 (GH #239)

Contributors

v2.0.2 (November 17, 2020)

Examples

Contributors

v2.0.1 (October 30, 2020)

Deprecations

Contributors

v2.0.0 (October 20, 2020)

Version 2.0.0 adds experimental soiling and availability modules, plotting capability, and includes updates to normalization work flow. This major release introduces some breaking changes to the API. Details below.

API Changes

Deprecations

Enhancements

Bug fixes

Testing

  • Add Python 3.7 and 3.8 to CI testing (GH #135).

  • Add CI configuration based on the minimum dependency versions (GH #197)

Documentation

  • Create sphinx documentation and set up ReadTheDocs (GH #125).

  • Add guides on running tests and building sphinx docs (GH #136).

  • Improve module-level docstrings (GH #137).

  • Update landing page and add new "Inverter Downtime" documentation page based on the availability notebook (GH #131)

Requirements

  • Drop support for Python 2.7, minimum supported version is now 3.6 (GH #135).

  • Increase minimum pvlib version to 0.7.0 (GH #170)

  • Update requirements.txt and notebook_requirements.txt to avoid conflicting specifications. Taken together, they represent the complete environment for the notebook example (GH #164).

  • Add minimum matplotlib requirement of 3.0.0 (released September 18, 2018) (GH #197)

  • Increase minimum numpy version from 1.12 (released January 15, 2017) to 1.15 (released July 23, 2018) (GH #197)

Example Updates

  • Seed numpy.random to ensure repeatable results (GH #164).

  • Use normalized_filter() instead of manually filtering the normalized energy timeseries. Also updated the associated mask variable names (GH #139).

  • Add soiling section to the original example notebook.

  • Add a new example notebook that analyzes data from a PV system located at NREL's South Table Mountain campus (PVDAQ system #4) (GH #171).

  • Explicitly register pandas datetime converters which were deprecated.

  • Add new system_availability_example.ipynb notebook (GH #131)

Contributors

v1.2.3 (April 12, 2020)

  • Updates dependencies

  • Versioneer bug fix

  • Licence update

Contributors

v1.2.2 (October 12, 2018)

Patch that adds author email to enable pypi deployment

Contributors

v1.2.1 (October 12, 2018)

This update includes automated testing and deployment to support development along with some bug fixes to the library itself, a documented environment for the example notebook, and new example results to reflect changes in the example dataset. It addresses GH #49, GH #76, GH #78, GH #79, GH #80, GH #85, GH #86, and GH #92.

Contributors

v1.2.0 (March 30, 2018)

This incorporates changes including:

  • Enables users to control confidence intervals reported in degradation calculations (GH #59)

  • Adds python 3 support (GH #56 and GH #67)

  • Fixes bugs (GH #61 GH #57)

  • Improvements/typo fixes to docstrings

  • Fixes error in check for two years of data in degradation_year_on_year

  • Improves the calculations underlying irradiance_rescale

Contributors

v1.1.3 (December 6, 2017)

This patch includes the following changes:

  1. Update the notebook for improved plotting with Pandas v.0.21.0

  2. Fix installation bug related to package data

Contributors

v1.1.2 (November 6, 2017)

This patch includes the following changes:

  1. Fix bugs in installation

  2. Update requirements

  3. Notebook plots made compatible with pandas v.0.21.0

Contributors

v1.1.1 (November 1, 2017)

This patch:

  1. Improves documentation

  2. Fixes installation requirements

Contributors

v1.1.0 (September 30, 2017)

This update includes the addition of filters, functions to support a clear-sky workflow, and updates to the example notebook.

Contributors