pvdeg
Set of tools to calculate degradation responses and degradation related parameters for PV.
https://github.com/natlabrockies/pvdegradationtools
Category: Renewable Energy
Sub Category: Photovoltaics and Solar Energy
Keywords
degradation duramat photovoltaic-systems pv-modules python reliability
Keywords from Contributors
photovoltaics renewable-energy renewables bifacial radiance solar-energy
Last synced: about 6 hours ago
JSON representation
Repository metadata
Set of tools to calculate degradation responses and degradation related parameters for PV.
- Host: GitHub
- URL: https://github.com/natlabrockies/pvdegradationtools
- Owner: NatLabRockies
- License: other
- Created: 2020-06-03T20:26:52.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2026-02-06T23:50:33.000Z (2 days ago)
- Last Synced: 2026-02-07T10:41:00.756Z (2 days ago)
- Topics: degradation, duramat, photovoltaic-systems, pv-modules, python, reliability
- Language: Jupyter Notebook
- Homepage: https://pvdegradationtools.readthedocs.io/
- Size: 278 MB
- Stars: 43
- Watchers: 3
- Forks: 23
- Open Issues: 50
- Releases: 21
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Citation: CITATION.cff
- Zenodo: .zenodo.json
README.md
PVDeg: Python Package for Modeling Degradation in Photovoltaic Systems
PVDeg is an open-source Python package for modeling photovoltaic (PV)
degradation, developed at the National Laboratory of the Rockies
(NLR, formerly NREL) and supported by the Durable Module Materials (DuraMAT)
consortium. It provides modular functions, materials databases, and calculation
workflows for simulating degradation mechanisms (e.g., LeTID, hydrolysis, UV
exposure) using weather data from the National Solar Radiation Database (NSRDB)
and the Photovoltaic Geographical Information System (PVGIS). By integrating
Monte Carlo uncertainty propagation and geospatial processing, PVDeg enables
field-relevant predictions and uncertainty quantification of module reliability
and lifetime.
Key Features
- Core Degradation Functions: Dedicated functions for physical degradation mechanisms including moisture ingress, LeTID, UV exposure, and thermal stress
- Scenario Class: Simplified workflow interface for complex multi-parameter degradation studies
- Geospatial Analysis: Large-scale spatial analyses with parallel processing across geographic regions
- Monte Carlo Framework: Uncertainty quantification through parameter distribution sampling
- Material Databases: Curated degradation parameters, kinetic coefficients, and material properties
- Weather Data Integration: Seamless access to NSRDB and PVGIS meteorological data
- Standards Support: Contributions to IEC TS 63126 and other standardization efforts
Example Applications
PVDeg has been adopted in multiple studies across the PV reliability community:
- Thermal Stability and IEC TS 63126 Compliance: Calculate effective standoff distances and generate public maps supporting the IEC TS 63126 standard
- Light and Elevated Temperature Induced Degradation (LeTID): Integrated into international interlaboratory comparison studies and field-aged array analyses
- Geospatial Performance Modeling: Coupled with GeoGridFusion to streamline weather-data storage and spatial queries for large-scale degradation simulations
- Agrivoltaics and System-Level Modeling: Combined with PySAM to assess degradation-driven yield losses in dual-use agrivoltaic systems
- Material-Property Parameterization: Studies of UV-induced polymer degradation and moisture-related failures in encapsulants and backsheets
Documentation
Full documentation is available at ReadTheDocs including:
- 📚 API Reference - Complete function and class documentation
- 📖 User Guide - Installation, tutorials, and usage guides
- 🔧 Contributing Guide - Development setup and guidelines
- 📰 What's New - Release notes and changelogs
Installation
PVDeg releases may be installed using pip and conda tools. Compatible with Python 3.10 and above.
Quick Install:
pip install pvdeg
With optional dependencies:
| Group | Install Command | Purpose |
|---|---|---|
| sam | pip install pvdeg[sam] |
PySAM support for system modeling |
| docs | pip install pvdeg[docs] |
Sphinx documentation tools |
| test | pip install pvdeg[test] |
Testing and validation tools |
| books | pip install pvdeg[books] |
Jupyter Book publishing |
| all | pip install pvdeg[all] |
All optional dependencies |
Developer Installation:
git clone https://github.com/NatLabRockies/PVDegradationTools.git
cd PVDegradationTools
pip install -e .[all]
📖 For detailed installation instructions including conda environments, HPC setup, troubleshooting, and version compatibility, see the Installation Guide.
Tutorials
PVDeg provides comprehensive tutorials organized by topic. Choose your preferred environment:
Jupyter Book (Recommended)
Interactive tutorials with live execution: PVDeg Jupyter Book
- Click the 🚀 rocket icon to launch notebooks in Google Colab
- Development Preview: See latest changes at dev-preview
Binder
Run tutorials in your browser without installation:
Local Installation
-
Install PVDeg (see Installation)
-
Clone the repository to access tutorial notebooks:
git clone https://github.com/NatLabRockies/PVDegradationTools.git cd PVDegradationTools -
Start Jupyter:
jupyter notebook -
Navigate to tutorials organized by category:
01_basics/- Introduction to PVDeg fundamentals02_degradation/- Degradation mechanism modeling03_monte_carlo/- Monte Carlo uncertainty analysis04_geospatial/- Geospatial and HPC scenarios05_advanced/- Advanced topics and API access10_workshop_demos/- Workshop demonstrationstools/- Standalone analysis tools
📖 For more information on running and validating notebooks, see the documentation.
License
Contributing
We welcome contributions to this software! Please see
CONTRIBUTING.md for detailed instructions on:
- Setting up your development environment
- Installing and using pre-commit hooks
- Code style guidelines
- Testing and documentation requirements
- Contributing to material property and degradation parameter databases
- Submitting pull requests
Please read the copyright license agreement (cla-1.0.md), with instructions on
signing it in sign-CLA.md.
All code, documentation, and discussion contributors are acknowledged for their
contributions to the PVDeg project.
Getting support
If you suspect that you may have discovered a bug or if you'd like to
change something about PVDeg, then please make an issue on our
GitHub issues page.
Citing
If you use PVDeg in a published work, please cite both the software and the paper.
Software Citation:
Click the "Cite this repository" button in the right sidebar to get a formatted citation, or visit Zenodo for the DOI corresponding to your specific version:
On the Zenodo page, use the "Cite as" section in the right sidebar to copy the citation in your preferred format (BibTeX, APA, etc.).
JOSS Paper (In Review):
Daxini, R., Ovaitt, S., Springer, M., Ford, T., & Kempe, M. (2025). PVDeg: a python package for modeling degradation on solar photovoltaic systems. Journal of Open Source Software (In Review).
Acknowledgements
This work was authored in part by the National Laboratory of the Rockies
for the U.S. Department of Energy (DOE), operated under Contract No.
DE-AC36-08GO28308. Funding provided as part of the Durable Module Materials
Consortium 2 (DuraMAT 2) funded by the by U.S. DOE Office of Critical Minerals
and Energy Innovation (CMEI) Solar Energy Technologies Office (SETO), Agreement
38259. The views expressed in the article do not necessarily represent the
views of the DOE or the U.S. Government. The U.S. Government retains and the
publisher, by accepting the article for publication, acknowledges that the U.S.
Government retains a nonexclusive, paid-up, irrevocable, worldwide license to
publish or reproduce the published form of this work, or allow others to do so,
for U.S. Government purposes
HPC disclaimer: A portion of This research was performed using computational
resources sponsored by the U.S. Department of Energy's Office of Critical
Minerals and Energy Innovation and located at the National Laboratory of the
Rockies.
NLR Software Record: SWR-20-71 (Holsapple, Derek; Ayala Pelaez, Silvana; Kempe, Michael. "PV Degradation Tools", NLR Github 2020)
Citation (CITATION.cff)
cff-version: 1.2.0
message: "If you use this software, please cite both the software and the paper from preferred-citation."
title: "PVDeg: Photovoltaic Degradation Tools"
abstract: "PVDeg is an open-source Python package for modeling photovoltaic (PV) degradation, developed at the National Renewable Energy Laboratory (NREL) and supported by the Durable Module Materials (DuraMAT) consortium. It provides modular functions, materials databases, and calculation workflows for simulating degradation mechanisms (e.g., LeTID, hydrolysis, UV exposure) using weather data from the National Solar Radiation Database (NSRDB) and the Photovoltaic Geographical Information System (PVGIS). By integrating Monte Carlo uncertainty propagation and geospatial processing, PVDeg enables field-relevant predictions and uncertainty quantification of module reliability and lifetime."
authors:
- family-names: Springer
given-names: Martin
affiliation: National Renewable Energy Laboratory
orcid: "https://orcid.org/0000-0001-6803-108X"
- family-names: Brown
given-names: Matthew
affiliation: National Renewable Energy Laboratory
orcid: "https://orcid.org/0000-0002-0988-3431"
- family-names: Ovaitt
given-names: Silvana
affiliation: National Renewable Energy Laboratory
orcid: "https://orcid.org/0000-0003-0180-728X"
- family-names: Ford
given-names: Tobin
affiliation: National Renewable Energy Laboratory
orcid: "https://orcid.org/0009-0000-7428-5625"
- family-names: Daxini
given-names: Rajiv
affiliation: National Renewable Energy Laboratory
orcid: "https://orcid.org/0000-0003-1993-9408"
- family-names: Holsapple
given-names: Derek
affiliation: National Renewable Energy Laboratory
- family-names: Kempe
given-names: Michael
affiliation: National Renewable Energy Laboratory
orcid: "https://orcid.org/0000-0003-3312-0482"
keywords:
- photovoltaic
- solar energy
- degradation
- reliability
- module lifetime
- LeTID
- Monte Carlo
- geospatial analysis
- NSRDB
- PVGIS
- DuraMAT
license: BSD-3-Clause
repository-code: "https://github.com/NREL/PVDegradationTools"
url: "https://pvdegradationtools.readthedocs.io"
type: software
version: 0.7.1
date-released: 2026-02-06
Owner metadata
- Name: National Laboratory of the Rockies
- Login: NatLabRockies
- Email:
- Kind: organization
- Description:
- Website: http://www.nrel.gov
- Location: Golden, CO
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/1906800?v=4
- Repositories: 599
- Last ynced at: 2026-01-22T09:57:55.744Z
- Profile URL: https://github.com/NatLabRockies
GitHub Events
Total
- Release event: 1
- Delete event: 3
- Pull request event: 5
- Issue comment event: 2
- Push event: 41
- Pull request review event: 2
- Pull request review comment event: 1
- Create event: 2
Last Year
- Release event: 1
- Delete event: 3
- Pull request event: 5
- Issue comment event: 2
- Push event: 41
- Pull request review event: 2
- Pull request review comment event: 1
- Create event: 2
Committers metadata
Last synced: about 22 hours ago
Total Commits: 2,064
Total Committers: 25
Avg Commits per committer: 82.56
Development Distribution Score (DDS): 0.611
Commits in past year: 1,136
Committers in past year: 11
Avg Commits per committer in past year: 103.273
Development Distribution Score (DDS) in past year: 0.293
| Name | Commits | |
|---|---|---|
| RDaxini | R****i@n****v | 803 |
| martin-springer | m****s@g****m | 354 |
| tobin-ford | t****d@n****v | 261 |
| Brown | m****o@g****m | 127 |
| MDKempe | 5****e | 120 |
| Silvana Ovaitt | s****a@n****v | 106 |
| Kempe | m****e@n****v | 90 |
| github-actions[bot] | g****] | 70 |
| tobin-ford | t****d@n****v | 40 |
| Matthew Brown | m****2@e****v | 13 |
| martin-springer | m****s@g****m | 11 |
| AidanWesley | a****y@n****v | 10 |
| Joe Karas | j****s@g****m | 10 |
| Mark Campanelli | m****i@g****m | 8 |
| Derek M Holsapple | d****1@g****m | 8 |
| Maxx Millstein | m****m@g****m | 7 |
| Matt Prilliman | 5****n | 5 |
| Brown | m****2@n****v | 5 |
| dependabot[bot] | 4****] | 4 |
| Matthew Brown | m****2@e****v | 4 |
| Trenton-Wells | t****s@n****v | 3 |
| Matthew Brown | m****2@e****v | 2 |
| Brown | M****n@n****v | 1 |
| Brown | m****2 | 1 |
| Kevin Anderson | k****o@g****m | 1 |
Committer domains:
Issue and Pull Request metadata
Last synced: 2 days ago
Total issues: 0
Total pull requests: 4
Average time to close issues: N/A
Average time to close pull requests: about 3 hours
Total issue authors: 0
Total pull request authors: 1
Average comments per issue: 0
Average comments per pull request: 0.75
Merged pull request: 0
Bot issues: 0
Bot pull requests: 0
Past year issues: 0
Past year pull requests: 4
Past year average time to close issues: N/A
Past year average time to close pull requests: about 3 hours
Past year issue authors: 0
Past year pull request authors: 1
Past year average comments per issue: 0
Past year average comments per pull request: 0.75
Past year merged pull request: 0
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
Top Pull Request Authors
- RDaxini (4)
Top Issue Labels
Top Pull Request Labels
- documentation (2)
- enhancement (2)
- Clarity for users (1)
- bug (1)
- api (1)
- testing (1)
Dependencies
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-python v3 composite
- aiohttp ==3.12.14
- bokeh *
- cartopy *
- dask [dataframe]
- dask-jobqueue *
- geopy *
- h5netcdf *
- h5py <=3.14.0
- jupyterlab *
- jupytext *
- matplotlib *
- netcdf4 *
- notebook *
- nrel-rex *
- numba *
- numpy >=1.19.3
- openpyxl *
- pandas *
- photovoltaic *
- pre-commit *
- pvlib >=0.12.0
- python-dateutil *
- pytz *
- scipy >1.6.0
- seaborn *
- sympy *
- tables *
- tqdm *
- xarray *
- zarr *
- actions/cache v3 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- peaceiris/actions-gh-pages v3 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- 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
- actions/cache v4 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- jupyter-book *
- matplotlib *
- numpy *
- actions/checkout v4 composite
- actions/setup-python v5 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- actions/checkout v4 composite
Score: 7.751475318021457