_images/logo_horizontal_highres.png

RdTools Overview

RdTools is an open-source library to support reproducible technical analysis of time series data from photovoltaic energy systems. The library aims to provide best practice analysis routines along with the building blocks for users to tailor their own analyses. Current applications include the evaluation of PV production over several years to obtain rates of performance degradation and soiling loss. They also include the capability to analyze systems for system- and subsystem-level availability. RdTools can handle both high frequency (hourly or better) or low frequency (daily, weekly, etc.) datasets. Best results are obtained with higher frequency data.

Full examples are worked out in the notebooks shown in Examples.

To report issues, contribute code, or suggest improvements to this documentation, visit the RdTools development repository on github.

Availability

Evaluating system availability can be confounded by data loss from interrupted datalogger or system communications. RdTools implements two methods (Anderson & Blumenthal 2020) of distinguishing nuisance communication interruptions from true production outages with the availability.AvailabilityAnalysis class. In addition to classifying data outages, it estimates lost production and calculates energy-weighted system availability.

RdTools availability analysis plot

Install RdTools using pip

RdTools can be installed automatically into Python from PyPI using the command line:

pip install rdtools

Alternatively it can be installed manually using the command line:

  1. Download a release (Or to work with a development version, clone or download the rdtools repository).

  2. Navigate to the repository: cd rdtools

  3. Install via pip: pip install .

On some systems, installation with pip can fail due to problems installing requirements. If this occurs, the requirements specified in setup.py may need to be separately installed (for example by using conda) before installing rdtools.

For more detailed instructions, see the Developer Notes page.

RdTools currently is tested on Python 3.9+.

Usage and examples

Full workflow examples are found in the notebooks in Examples. The examples are designed to work with python 3.12. For a consistent experience, we recommend installing the packages and versions documented in docs/notebook_requirements.txt. This can be achieved in your environment by first installing RdTools as described above, then running pip install -r docs/notebook_requirements.txt from the base directory.

Documentation

Some RdTools function parameters can take one of several types. For example, the albedo parameter of TrendAnalysis can be a static value like 0.2 or a time-varying pandas.Series. To indicate that a parameter can take one of several types, we document them using the type alises listed below:

numeric

scalar or pandas.Series. Typically int or float dtype.

Citing RdTools

To cite RdTools, please use the following along with the version number and the specific DOI coresponding to that version from Zenodo:

  • Michael G. Deceglie, Kevin Anderson, Adam Shinn, Ambarish Nag, Mark Mikofski, Martin Springer, Jiyang Yan, Kirsten Perry, Sandra Villamar, Will Vining, Gregory Kimball, Daniel Ruth, Noah Moyer, Quyen Nguyen, Dirk Jordan, Matthew Muller, and Chris Deline, RdTools, version {insert version}, Compuer Software, https://github.com/NREL/rdtools. DOI:{insert DOI}

The underlying workflow of RdTools has been published in several places. If you use RdTools in a published work, you may also wish to cite the following as appropriate:

  • Dirk Jordan, Chris Deline, Sarah Kurtz, Gregory Kimball, Michael Anderson, "Robust PV Degradation Methodology and Application", IEEE Journal of Photovoltaics, 8(2) pp. 525-531, 2018 DOI: 10.1109/JPHOTOV.2017.2779779

  • Michael G. Deceglie, Leonardo Micheli and Matthew Muller, "Quantifying Soiling Loss Directly From PV Yield," in IEEE Journal of Photovoltaics, 8(2), pp. 547-551, 2018 DOI: 10.1109/JPHOTOV.2017.2784682

  • Åsmund Skomedal and Michael G. Deceglie, "Combined Estimation of Degradation and Soiling Losses in Photovoltaic Systems," in IEEE Journal of Photovoltaics, 10(6) pp. 1788-1796, 2020. DOI: 10.1109/JPHOTOV.2020.3018219

  • Kevin Anderson and Ryan Blumenthal, "Overcoming Communications Outages in Inverter Downtime Analysis", 2020 IEEE 47th Photovoltaic Specialists Conference (PVSC). DOI: 10.1109/PVSC45281.2020.9300635

  • Kirsten Perry, Matthew Muller and Kevin Anderson, "Performance Comparison of Clipping Detection Techniques in AC Power Time Series," 2021 IEEE 48th Photovoltaic Specialists Conference (PVSC), 2021, pp. 1638-1643, DOI: 10.1109/PVSC43889.2021.9518733

References

Other useful references which may also be consulted for degradation rate methodology include:

  • D. C. Jordan, M. G. Deceglie, S. R. Kurtz, "PV degradation methodology comparison — A basis for a standard", in 43rd IEEE Photovoltaic Specialists Conference, Portland, OR, USA, 2016, DOI: 10.1109/PVSC.2016.7749593.

  • M. G. Deceglie, K. Anderson, D. Fregosi, W.B. Hobbs, M.A. Mikofski, M. Theristis, and B. E. Meyers, "Perspective: Performance Loss Rate in Photovoltaic Systems", Sol. RRL, 7: 2300196. DOI: 10.1002/solr.202300196

  • Jordan DC, Kurtz SR, VanSant KT, Newmiller J, Compendium of Photovoltaic Degradation Rates, Progress in Photovoltaics: Research and Application, 2016, 24(7), 978 - 989.

  • D. Jordan, S. Kurtz, PV Degradation Rates – an Analytical Review, Progress in Photovoltaics: Research and Application, 2013, 21(1), 12 - 29.

  • E. Hasselbrink, M. Anderson, Z. Defreitas, M. Mikofski, Y.-C.Shen, S. Caldwell, A. Terao, D. Kavulak, Z. Campeau, D. DeGraaff, "Validation of the PVLife model using 3 million module-years of live site data", 39th IEEE Photovoltaic Specialists Conference, Tampa, FL, USA, 2013, p. 7 – 13, DOI: 10.1109/PVSC.2013.6744087.

Documentation Contents

Indices and tables