rdtools

An open source library to support reproducible technical analysis of time series data from photovoltaic energy systems.
https://github.com/natlabrockies/rdtools

Category: Renewable Energy
Sub Category: Photovoltaics and Solar Energy

Keywords from Contributors

photovoltaic renewable-energy renewables solar-energy bifacial solar pvlib pv solar-power convolutional-neural-networks

Last synced: about 20 hours ago
JSON representation

Repository metadata

PV Analysis Tools in Python

README.md

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.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use this software, please cite it as below."
authors:
- family-names: "Deceglie"
  given-names: "Michael G."
  orcid: "https://orcid.org/0000-0001-7063-9676"
- family-names: "Anderson"
  given-names: "Kevin"
- family-names: "Shinn"
  given-names: "Adam"
- family-names: "Ambarish"
  given-names: "Nag"
- family-names: "Mikofski"
  given-names: "Mark"
  orcid: "https://orcid.org/0000-0001-8001-8582"
- family-names: "Springer"
  given-names: "Martin"
  orcid: "https://orcid.org/0000-0001-6803-108X"
- family-names: "Yan"
  given-names: "Jiyang"
- family-names: "Perry"
  given-names: "Kirsten"
- family-names: "Villamar"
  given-names: "Sandra"
- family-names: "Vining"
  given-names: "Will"
- family-names: "Kimball"
  given-names: "Gregory M."
  orcid: "https://orcid.org/0000-0003-1075-1417"
- family-names: "Ruth"
  given-names: "Daniel"
- family-names: "Moyer"
  given-names: "Noah"
- family-names: "Nguyen"
  given-names: "Quyen"
- family-names: "Jordan"
  given-names: "Dirk"
  orcid: "https://orcid.org/0000-0002-2183-7489"
- family-names: "Muller"
  given-names: "Matthew"
- family-names: "Deline"
  given-names: "Chris"
  orcid: "https://orcid.org/0000-0002-9867-8930"
title: "RdTools"
doi: 10.5281/zenodo.1210316
url: "https://github.com/NatLabRockies/rdtools"

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 4 days ago

Total Commits: 980
Total Committers: 27
Avg Commits per committer: 36.296
Development Distribution Score (DDS): 0.618

Commits in past year: 24
Committers in past year: 5
Avg Commits per committer in past year: 4.8
Development Distribution Score (DDS) in past year: 0.25

Name Email Commits
Michael Deceglie M****e@n****v 374
martin-springer m****s@g****m 203
Adam Shinn a****n@g****m 65
Kevin Anderson 5****l 56
Kevin Anderson k****n@n****v 51
Michael Deceglie m****i@m****l 42
dependabot[bot] 4****] 31
Michael Deceglie m****i@m****v 30
Chris Deline c****e@n****v 29
Perry, Kirsten K****y@n****v 23
Ambarish Nag a****g@n****v 21
GregoryKimball g****l@s****m 12
Perry k****y@n****v 11
Mark Mikofski b****o@y****m 7
Michael Deceglie m****i@s****v 6
Jiyang Yan j****1@u****u 4
Michael Deceglie m****i@s****v 4
Michael Deceglie m****i@s****v 2
Åsmund Skomedal 4****s 1
Michael Deceglie m****i@s****v 1
Traveler t****r@M****l 1
martin-springer m****s@g****m 1
nb137 n****7 1
Will Vining w****g@g****m 1
Silvana Ovaitt s****t@n****v 1
Sandra Villamar 1****r 1
Copilot 1****t 1

Committer domains:


Issue and Pull Request metadata

Last synced: 14 days ago

Total issues: 4
Total pull requests: 29
Average time to close issues: N/A
Average time to close pull requests: about 2 months
Total issue authors: 3
Total pull request authors: 4
Average comments per issue: 0.0
Average comments per pull request: 2.45
Merged pull request: 9
Bot issues: 0
Bot pull requests: 13

Past year issues: 4
Past year pull requests: 29
Past year average time to close issues: N/A
Past year average time to close pull requests: about 2 months
Past year issue authors: 3
Past year pull request authors: 4
Past year average comments per issue: 0.0
Past year average comments per pull request: 2.45
Past year merged pull request: 9
Past year bot issues: 0
Past year bot pull requests: 13

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/natlabrockies/rdtools

Top Issue Authors

  • martin-springer (2)
  • mdeceglie (1)
  • chrismaes87 (1)

Top Pull Request Authors

  • martin-springer (13)
  • dependabot[bot] (13)
  • cdeline (2)
  • bmeyers (1)

Top Issue Labels

  • 4.0 Release (1)

Top Pull Request Labels

  • dependencies (13)
  • python (13)

Package metadata

pypi.org: rdtools

Functions for reproducible timeseries analysis of photovoltaic systems.

  • Homepage: https://github.com/NatLabRockies/rdtools
  • Documentation: https://rdtools.readthedocs.io/
  • Licenses: MIT
  • Latest release: 3.2.1 (published 26 days ago)
  • Last Synced: 2026-07-30T21:02:17.778Z (4 days ago)
  • Versions: 40
  • Dependent Packages: 1
  • Dependent Repositories: 3
  • Downloads: 2,980 Last month
  • Rankings:
    • Downloads: 2.091%
    • Forks count: 5.481%
    • Average: 6.04%
    • Stargazers count: 6.18%
    • Dependent packages count: 7.306%
    • Dependent repos count: 9.139%
  • Maintainers (1)

Dependencies

docs/notebook_requirements.txt pypi
  • Jinja2 ==2.11.3
  • MarkupSafe ==1.1.1
  • Pygments ==2.7.4
  • Send2Trash ==1.5.0
  • appnope ==0.1.0
  • argon2-cffi ==21.2.0
  • backcall ==0.1.0
  • bleach ==3.3.0
  • cffi ==1.15.0
  • colorama ==0.4.4
  • decorator ==4.3.0
  • entrypoints ==0.2.3
  • html5lib ==1.0.1
  • ipykernel ==4.8.2
  • ipython ==7.16.3
  • ipython-genutils ==0.2.0
  • ipywidgets ==7.3.0
  • jedi ==0.12.1
  • jsonschema ==2.6.0
  • jupyter ==1.0.0
  • jupyter-client ==6.1.7
  • jupyter-console ==6.4.0
  • jupyter-core ==4.6.3
  • mistune ==0.8.3
  • nbconvert ==6.1.0
  • nbformat ==5.0.7
  • notebook ==6.4.1
  • numexpr ==2.8.0
  • packaging ==20.9
  • pandocfilters ==1.4.2
  • parso ==0.3.1
  • pexpect ==4.6.0
  • pickleshare ==0.7.5
  • prometheus-client ==0.3.0
  • prompt-toolkit ==3.0.27
  • ptyprocess ==0.6.0
  • pycparser ==2.20
  • pyzmq ==22.2.1
  • qtconsole ==4.3.1
  • simplegeneric ==0.8.1
  • terminado ==0.8.3
  • testpath ==0.3.1
  • tornado ==6.1
  • traitlets ==5.0
  • wcwidth ==0.1.7
  • webencodings ==0.5.1
  • widgetsnbextension ==3.3.0
requirements-min.txt pypi
  • h5py ==2.8.0
  • matplotlib ==3.0.0
  • numpy ==1.15
  • pandas ==0.23.2
  • plotly ==4.0.0
  • pvlib ==0.7.0
  • scikit-learn ==0.22.0
  • scipy ==1.1.0
  • statsmodels ==0.9.0
  • tables ==3.5.1
  • xgboost ==1.3.3
requirements.txt pypi
  • Pillow ==9.0.1
  • cached-property ==1.5.2
  • certifi ==2020.12.5
  • chardet ==4.0.0
  • cycler ==0.10.0
  • h5py ==3.6.0
  • idna ==2.10
  • kiwisolver ==1.3.2
  • matplotlib ==3.5.0
  • numpy ==1.21.3
  • pandas ==1.3.4
  • patsy ==0.5.2
  • plotly ==4.10.0
  • pvlib ==0.9.0
  • pyparsing ==2.4.7
  • python-dateutil ==2.8.1
  • pytz ==2019.3
  • requests ==2.25.1
  • scikit-learn ==1.0.2
  • scipy ==1.7.2
  • six ==1.14.0
  • statsmodels ==0.13.1
  • urllib3 ==1.26.5
  • xgboost ==1.5.1
.github/workflows/publish-to-pypi.yaml actions
  • actions/checkout v4 composite
  • actions/download-artifact v4 composite
  • actions/setup-python v5 composite
  • actions/upload-artifact v4 composite
  • pypa/gh-action-pypi-publish release/v1 composite
.github/workflows/flake8.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/nbval.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • actions/upload-artifact v2 composite
.github/workflows/pytest.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
.github/workflows/requirements.yaml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
setup.py pypi

Score: 16.672470299515197