Skip to main content
RdTools logo

Master branch: Build Status

Development branch: Build Status

Code coverage: codecov

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. RdTools can handle both high frequency (hourly or better) or low frequency (daily, weekly, etc.) datasets. Best results are obtained with higher frequency data.

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

pip install rdtools

Optional extras are available:

pip install rdtools[notebooks]  # Jupyter and notebook dependencies
pip install rdtools[test]       # pytest, coverage, flake8
pip install rdtools[dev]        # notebooks + test combined

Alternatively, RdTools uses pixi for reproducible environment management. To get started with pixi, first install pixi, then clone this repository and run pixi install from its root:

git clone https://github.com/NatLabRockies/rdtools.git
cd rdtools
pixi install          # default environment (rdtools + notebooks)
pixi run lab          # launch Jupyter Lab

For development, use the dev environment which includes both notebook and test dependencies:

pixi shell -e dev     # activate the dev environment
pixi run -e dev test  # run pytest with coverage
pixi run -e dev nbval # validate notebooks
pixi run -e dev lab   # launch Jupyter Lab

For API documentation and full examples, please see the documentation.

RdTools currently is tested on Python 3.10+.

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, Martin Springer, Kevin Anderson, Adam Shinn, Kirsten Perry, Ambarish Nag, Mark Mikofski, Jiyang Yan, Sandra Villamar, Will Vining, Gregory Kimball, Daniel Ruth, Noah Moyer, Quyen Nguyen, Dirk Jordan, Matthew Muller, and Chris Deline, RdTools, version {insert version}, Computer Software, https://github.com/NatLabRockies/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

  • 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), pp. 1638-1643 2021, DOI: 10.1109/PVSC43889.2021.9518733.

References

The clear sky temperature calculation, clearsky_temperature.get_clearsky_tamb(), uses data from images created by Jesse Allen, NASA’s Earth Observatory using data courtesy of the MODIS Land Group. https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MOD_LSTD_CLIM_M https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MOD_LSTN_CLIM_M

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.
  • 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.

Further Instructions and Updates

Check out the wiki for additional usage documentation, and for information on development goals and framework.

Metadata

Release files for rdtools 3.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for rdtools 3.2.1
File Size Uploaded
rdtools-3.2.1.tar.gz 7.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for rdtools 3.2.1
File Interpreter ABI Platform
rdtools-3.2.1-py3-none-any.whl Python 3 none any Details

Total release size: 8.2 MB

Release files / rdtools-3.2.1.tar.gz

Download URL rdtools-3.2.1.tar.gz
Size 7.1 MB
Tags Source
SHA-256 checksum
How to use checksums
a3b19e8bd1c669404a0422d68515c3ca4479760494369a15bd22fb0662773110
BLAKE2b-256 checksum
How to use checksums
266ddf9e1a83c339583e7a5fadb021e3a7a7d64776fabf51a5ee98c63d43244f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 8, 2026.

Transparency log

Release files / rdtools-3.2.1-py3-none-any.whl

Download URL rdtools-3.2.1-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
19f73e72a00cd82ddf1d83b0151e6e4378f4774bc9430a2fd4f8dc30ca555ca9
BLAKE2b-256 checksum
How to use checksums
d1d418a82e3eecf04d3ad44cb90f7c89bcb26a5da08632b5c6f8cd57a70ce4a0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

3.2.1 This release

2 release files

3.2.0

2 release files

3.1.1

2 release files

3.1.0

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.1.8

2 release files

2.1.7

2 release files

2.1.5

2 release files

2.1.4

2 release files

2.1.3

2 release files

2.1.2

2 release files

2.1.1

2 release files

2.1.0

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

1 release file

1.2.3

2 release files

1.2.2

2 release files

1.2.0

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page