PVAnalytics¶
PVAnalytics is a python library that supports analytics for PV systems. It provides functions for quality control, filtering, and feature labeling and other tools supporting the analysis of PV system-level data.
The source code for PVAnalytics is hosted on github.
Contents¶
API Reference¶
Quality¶
Irradiance¶
The check_*_limits_qcrad
functions use the QCRad algorithm 1 to
identify irradiance measurements that are beyond physical limits.
Test for physical limits on GHI using the QCRad criteria. |
|
Test for physical limits on DHI using the QCRad criteria. |
|
Test for physical limits on DNI using the QCRad criteria. |
All three checks can be combined into a single function call.
Test for physical limits on GHI, DHI or DNI using the QCRad criteria. |
Irradiance measurements can also be checked for consistency.
Check consistency of GHI, DHI and DNI using QCRad criteria. |
GHI and POA irradiance can be validated against clearsky values to eliminate data that is unrealistically high.
|
Identify irradiance values which do not exceed clearsky values. |
Gaps¶
Identify gaps in the data.
|
Identify sequences which appear to be linear. |
|
Identify stale values in the data. |
The following functions identify days with incomplete data.
|
Calculate a data completeness score for each day. |
|
Select data points that are part of days with complete data. |
Many data sets may have leading and trailing periods of days with sporadic or no data. The following functions can be used to remove those periods.
|
Get the start and end of data excluding leading and trailing gaps. |
|
Mask the beginning and end of the data if not all True. |
|
Trim the series based on the completeness score. |
Outliers¶
Functions for detecting outliers.
|
Identify outliers based on the interquartile range. |
|
Identify outliers using the z-score. |
|
Identify outliers by the Hampel identifier. |
Time¶
Quality control related to time. This includes things like time-stamp spacing, time-shifts, and time zone validation.
|
Check that the spacing between times conforms to freq. |
Weather¶
Quality checks for weather data.
Identify relative humidity values that are within limits. |
|
|
Identify temperature values that are within limits. |
|
Identify wind speed values that are within limits. |
Features¶
Functions for detecting features in the data.
Clipping¶
Functions for identifying inverter clipping
|
Label clipping in AC power data based on levels in the data. |
Clearsky¶
|
Identify times when GHI is consistent with clearsky conditions. |
Time¶
The following functions can be used to differentiate night-time and
day-time based on power or irradiance data. This is useful if you do
not know the timezone of the index for your data or for verifying
that the timezone is correct. Both functions identify the same
feature, but in slightly different ways.
features.daylight.frequency()
is useful if your data has
substantial outliers or other excessively large values; however, it
may fail if substantial portions of the night-time data is greater
than 0. features.daylight.level()
can handle positive
night-time data (so long as night-time values are substantially lower than
day-time data) but may be more suceptible to large outliers.
|
Identify daytime periods based on frequency of positive data. |
|
Identify daytime periods based on a minimum power/irradiance threshold. |
References
- 1
C. N. Long and Y. Shi, An Automated Quality Assessment and Control Algorithm for Surface Radiation Measurements, The Open Atmospheric Science Journal 2, pp. 23-37, 2008.