• Stars
    star
    153
  • Rank 243,368 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created about 8 years ago
  • Updated about 1 month ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

PV Analysis Tools in Python

RdTools logo

Master branch: Build Status

Development branch: Build Status

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

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

RdTools currently is tested on Python 3.7+.

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, Ambarish Nag, Adam Shinn, Gregory Kimball, Daniel Ruth, Dirk Jordan, Jiyang Yan, Kevin Anderson, Kirsten Perry, Mark Mikofski, Matthew Muller, Will Vining, 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

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

More Repositories

1

api-umbrella

Open source API management platform
Ruby
1,944
star
2

EnergyPlus

EnergyPlusâ„¢ is a whole building energy simulation program that engineers, architects, and researchers use to model both energy consumption and water use in buildings.
C++
1,117
star
3

OpenStudio

OpenStudio is a cross-platform collection of software tools to support whole building energy modeling using EnergyPlus and advanced daylight analysis using Radiance.
C++
502
star
4

SAM

System Advisor Model (SAM)
C++
338
star
5

floris

A controls-oriented engineering wake model.
Python
208
star
6

OpenOA

This library provides a framework for assessing wind plant performance using operational assessment (OA) methodologies that consume time series data from wind plants. The goal of the project is to provide an open source implementation of common data structures, analysis methods, and utility functions relevant to wind plant OA.
Jupyter Notebook
185
star
7

Radiance

This repo has been archived. Please refer to https://github.com/LBNL-ETA/Radiance/tree/master for the latest updates.
C
156
star
8

vagrant-boxes

Shell
146
star
9

SOWFA

Roff
133
star
10

ReEDS-2.0

Python
125
star
11

pysam

Python Wrapper for the System Advisor Model
C
108
star
12

HPC

A collection of various resources, examples, and executables for the general NREL HPC user community's benefit. Use the following website for accessing documentation.
Jupyter Notebook
107
star
13

resstock

Highly granular modeling of residential building stocks at national, regional, and local scales using OpenStudio/EnergyPlus.
Ruby
105
star
14

ROSCO

A Reference Open Source Controller for Wind Turbines
Python
105
star
15

PowerGridworld

PowerGridworld provides users with a lightweight, modular, and customizable framework for creating power-systems-focused, multi-agent Gym environments that readily integrate with existing training frameworks for reinforcement learning (RL). https://arxiv.org/abs/2111.05969
Python
102
star
16

reV

Renewable Energy Potential (reV) Model
Python
101
star
17

hsds-examples

Examples of using the HSDS Service to Access NREL WIND Toolkit data
Jupyter Notebook
100
star
18

REopt_API

The model for the REopt API, which is used as the back-end for the REopt Webtool (reopt.nrel.gov/tool), and can be accessed directly via the NREL Developer Network (https://developer.nrel.gov/docs/energy-optimization/reopt)
Python
89
star
19

bifacial_radiance

Toolkit for working with RADIANCE for the ray-trace modeling of Bifacial Photovoltaics
Python
89
star
20

openstudio-standards

Ruby
81
star
21

sup3r

The Super-Resolution for Renewable Resource Data (sup3r) software uses generative adversarial networks to create synthetic high-resolution wind and solar spatiotemporal data from coarse low-resolution inputs.
Python
80
star
22

ssc

SAM Simulation Core (SSC) contains the underlying performance and financial models for SAM
C++
79
star
23

phygnn

physics-guided neural networks (phygnn)
Python
74
star
24

ditto

DiTTo is a Distribution Transformation Tool that aims at providing an open source framework to convert various distribution systems modeling formats.
Python
69
star
25

floorspace.js

JavaScript
68
star
26

mappymatch

Pure-python package for map matching
Python
66
star
27

EvoProtGrad

Directed evolution of proteins in sequence space with gradients
Jupyter Notebook
60
star
28

PhIRE

Python
58
star
29

dgen

The Distributed Generation Market Demand (dGen) model simulates customer adoption of distributed energy resources (DERs) for residential, commercial, and industrial entities in the United States and other countries.
Python
58
star
30

BuildingsBench

Large-scale pretraining and benchmarking for short-term load forecasting.
Jupyter Notebook
55
star
31

wex

WEX, which is short for WxWidgets Extensions, is a cross-platform library of graphical user interface tools that extends the popular open-source project WxWidgets. WEX includes many features including the powerful DView program (https://github.com/NREL/wex/wiki/DView), which provides an easy-to-use way to visualize complex time series data.
C
55
star
32

turbine-models

Documentation for the turbine models in this repository is available below.
Python
54
star
33

nfp

Keras layers for end-to-end learning with rdkit and pymatgen
Python
52
star
34

alfabet

Machine learning predictions of bond dissociation energy
Python
52
star
35

WindSE

Python
51
star
36

ParaEMT_public

Python
50
star
37

BuildingMOTIF

Building Metadata OnTology Interoperability Framework (BuildingMOTIF). For models, see https://models.open223.info/
Jupyter Notebook
49
star
38

SolarPILOT

SolarPILOT power tower layout and optimization tool
C++
46
star
39

dynamo

A modular MATLAB toolkit for Dynamic programming (DP) and Approximate Dynamic Programming (ADP) for Adaptive Modeling and Optimization
MATLAB
45
star
40

OpenStudio-server

The OpenStudio Server is a docker or Helm deployable instance which allows for large-scale parametric analyses of building energy models using the OpenStudio or URBANopt CLIs.
Ruby
45
star
41

PRAS

NREL's Probabilistic Resource Adequacy Suite (PRAS)
Julia
44
star
42

developer.nrel.gov

An issue tracker for NREL's APIs available at https://developer.nrel.gov
HTML
43
star
43

gdx-pandas

Python interface to read and write GAMS GDX files using pandas.DataFrames as the intermediate data format.
Python
43
star
44

alfalfa

Alfalfa is a web service that enables runtime interaction with building energy models (OpenStudio/EnergyPlus and FMUs compiled from Modelica or Spawn) over REST APIs.
Python
42
star
45

OpenStudio-HPXML

Modeling of residential buildings in EnergyPlus using OpenStudio/HPXML.
Ruby
41
star
46

OCHRE

A Python-based building energy modeling (BEM) tool designed to model flexible loads in residential buildings
Python
40
star
47

graph-env

Reinforcement learning for combinatorial optimization over directed graphs
Python
38
star
48

elm

ELM is a collection of utilities to apply Large Language Models (LLMs) to energy research.
Python
37
star
49

OPFLearn.jl

A Julia package that efficiently creates representative datasets for machine learning approaches to AC optimal power flow
Julia
37
star
50

PyPSCAD

36
star
51

PV_ICE

An open-source tool to quantify Solar Photovoltaics (PV) Energy and Mass Flows in the Circular Economy, from a Reliability and Lifetime approach
HTML
34
star
52

windtools

Python tools for wind simulation setup, data processing, and analysis
Python
34
star
53

PyDSS

Python
33
star
54

SolTrace

SolTrace
C++
33
star
55

MATBOX_Microstructure_analysis_toolbox

MATBOX is an open-source MATLAB toolbox dedicated to microstructure analsyis of porous/heterogeneous materials
MATLAB
32
star
56

REopt-Analysis-Scripts

Jupyter Notebook
32
star
57

OpenStudio-analysis-spreadsheet

The OpenStudio Analysis Spreadsheet is a front-end for the OpenStudio Server, allowing for users to create large-scale cloud analyses using OpenStudio measures.
Ruby
31
star
58

flasc

A rich floris-driven suite for SCADA analysis
Jupyter Notebook
31
star
59

SOWFA-6

31
star
60

lk

LK (Language Kit) is a simple but powerful scripting language that is designed to be small, fast, and easily embedded in other applications. The core LK engine, including lexical analyzer, parser, compiler, and virtual machine is only dependent on the Standard C++ Library (STL), making it extremely lightweight and portable.
C
31
star
61

rlmolecule

A reinforcement learning library for material and molecule optimization
Python
30
star
62

GEOPHIRES-v2

GEOPHIRES v2.0: a free and open-source geothermal techno-economic simulator
Python
30
star
63

bifacialvf

Bifacial PV View Factor model for system performance calculation
Python
29
star
64

openfast-turbine-models

A repository of OpenFAST turbine models developed by NREL researchers.
Jupyter Notebook
29
star
65

ATB-calc

Python files and Jupyter notebooks for processing the Annual Technology Baseline (ATB) electricity data and determining LCOE and other metrics.
Python
29
star
66

MoorPy

Python
28
star
67

EnergyPlusRelease

Fortran
27
star
68

ComStock

National scale modeling of the U.S. commercial building stock supported by U.S. DOE, LADWP, and others and maintained by NREL
Ruby
27
star
69

PVDegradationTools

Set of tools to calculate degradation responses and degradation related parameters for PV.
Jupyter Notebook
27
star
70

OpenStudio-PAT

The Parametric Analysis Tool (PAT) is part of the OpenStudio collection of software tools.
Ruby
27
star
71

m2p

Python
26
star
72

DSS-SimPy-RL

This repository is an Reinforcement Learning Platform for learning agents to control cyber-physical Power Distribution Systems resiliently. The cyber environment in based on SimPy Discrete Event Simulator, while the distribution system is backened by Open-DSS.
Python
25
star
73

BACnet

Java
24
star
74

REopt.jl

Julia
24
star
75

api-umbrella-gatekeeper

See the https://github.com/NREL/api-umbrella repository instead.
JavaScript
23
star
76

HOPP

Jupyter Notebook
22
star
77

api-umbrella-web

See the https://github.com/NREL/api-umbrella repository instead.
Ruby
22
star
78

OpenWARP

Please visit http://nrel.github.io/OpenWARP/ for more information.
Python
22
star
79

ROSCO_toolbox

A repository for generating ROSCO controller input files and more.
Python
22
star
80

hive

HIVEâ„¢ is a mobility services research platform
Python
22
star
81

buildstockbatch

Python
21
star
82

PyPSSE

Python
21
star
83

Panel-Segmentation

This open-source package provides a framework for automatically detecting and extracting metadata from solar array installations in satellite images.
Jupyter Notebook
21
star
84

reVX

The Renewable Energy Potential(V) eXchange Tool: reVX
Python
21
star
85

OpenStudio-Prototype-Buildings

Ruby
20
star
86

HydroChrono

A hydrodynamics extension for Project Chrono, enabling simulations of wave energy converters, floating offshore wind turbines, and more.
C++
20
star
87

docker-openstudio

Repository for managing the builds of OpenStudio Docker images.
Dockerfile
20
star
88

fastsim

Python
20
star
89

electrolyzer

Python
20
star
90

ProgressiveHedging.jl

Basic progressive hedging implementation in Julia
Julia
20
star
91

rex

REsource eXtraction Tool (rex)
Python
20
star
92

powerscenarios

Realistic renewable energy scenarios for stochastic grid optimization problems
MATLAB
20
star
93

hescore-hpxml

HPXML to Home Energy Score Translator
Python
18
star
94

OpenStudio-fault-measure-gem

OpenStudio measures for modeling building faults
Ruby
18
star
95

CampusEnergyModeling

MATLAB
18
star
96

latex_editing

TeX
18
star
97

OpenStudio-resources

HTML
18
star
98

OpenStudio-ERI

Energy Rating Index (ERI) calculation via OpenStudio/EnergyPlus.
Ruby
18
star
99

NRWAL

The National Renewable Energy Laboratory Wind Analysis Libray (NRWAL)
Python
17
star
100

altrios

Rust
17
star