7-2-pvanalytics-pvpmc-kirsten-perry
PVAnalytics: A Python Package for Automated Procesing of Solar Tie Series Data Kirsten Pery (NREL), Wiliam Vining (Sandia), Kevin Anderson (NREL), Mathew Muler (NREL), Clif Hansen (Sandia) PV Performance Modeling and Monitoring Workshop Salt Lake City, Aug 24, 202 2021 pvanalyticsv0.1.0 2022 2020 pvanalyticsv0.1.1 pvanalyticsv0.1.2 https:/github.com/pvlib/pvanalytics NREL | 2 1 2 3 4 5 6 7 Contents PVAnalyticsBackground Package Features Automated testing Community growth PVAnalyticsv0.1.3 and Beyond Algorithm Validation Documentation Updates NREL | 3 PVAnalyticsBackground •Solar time series data can vary significantly in quality or lack critical metadata •Several solar metrics dependent on data cleaning/filtering [1] •Performance los rate (PLR) •Power production forecasting •Soiling los •PVAnalyticsPython library: automated procesing of solar time series data, including QA/QC •Data quality control and filtering •Identifying system characteristics, such as mounting configuration, tilt, and azimuth •Feature identification: cliping, day-night masking, clearskydetection •https:/pvanalytics.readthedocs.io/en/stable/ [1] Lindiget. al. International colaboration framework for the calculation of performance los rates: Data quality, benchmarks, and trends (towards a uniform ethodology). Progres in Photovoltaics, 2021. NREL | 4 PVAnalyticsBackground (Continued) •Design Principles behind PVAnalytics: •Open-source: tested, documented, and re- usable •Independent of analysis workflow •Colection point for code which implements published algorithms •Colaboration betwen Sandia and NREL •Started as DuraMATproject: DOE-led consortium for PV module reliability and durability •Functions adapted from Solar Forecast Arbiter [1] and NREL PV Flets Initiative [2] [1] https:/solarforecastarbiter-core.readthedocs.io/en/latest/ [2] D. Jordan et. al. Photovoltaic flet degradation insights. Progres in Photovoltaics, 202. PLR distribution from the PV Fleets Initiative [2] NREL | 5 Package Features: Basic Time Series Filtering Interpolated data detection and filtering Outlier detection and filtering: Hampel, Z- score, and Tukey filters Stale data detection and filtering: Looks for consecutive repeating data NREL | 6 Package Features: Advanced Time Series Filtering Data shift detection and filtering: Uses changepoint detection to find masive, abrupt capacity changes. Described further in [1] Detected data shift here Filtering days based on daily “completenes” score [1] K. Pery, M. Muler. Automated Shift Detection in Sensor-Based PV Power and Irradiance Time Series. 202 PVSC. Detecting mising data periods: Assign daily data a “completenes” score NREL | 7 Package Features: Feature Detection •Day-night masking •Logic-based routine for masking day periods from night periods •Cliping detection and filtering •Adapted from logic-based filter described in [1] •Shading detection •Uses morphological image procesing methods to identify shadows in GHI data [2] Day-night masking on an AC power time series Masked cliping periods in time series data [1] K. Pery, et. al. Performance comparison of cliping detection techniques in AC power time series. 2021 PVSC. [2] Martin, C. E., Hansen, C. W., An Image Procesing Algorithm to Identify Near-Field Shading in Irradiance Measurements, preprint 2016 NREL | 8 Package Features: Iradiance Checks Irradiance quality checks: consistency and physical limits of GHI, DNI, and DHI using QCradcriteria Clearskyperiod filtering: Reno clearsky method (1) Clearskyday filtering: Compare GHI sensor-based data to clearskydata. Filter where GHI is within daily insolation limit [1] Reno, M.J. and C.W. Hansen, “Identification of periods of clear sky iradiance in time series of GHI measurements” Renewable Energy, v90, p. 520-531, 2016. NREL | 9 Package Features: System Characteristics •Mounting configuration •Fixed-tilt or single-axis tracking •Uses daily power profile to clasify time series stream •Azimuth and tilt •Estimate using AC power time series •Work in progres: multiple methods in package are currently being validated Daily power profile of a single- axis tracking system NREL | 10 Algorithm Validation •Continued validation of each algorithm •How el does each algorithm perform on labeled data sets? •Quantifiable metrics: acuracy and F1-score •Labeled data sets to encourage further development •Technical documentation/publications benchmarking each algorithm’s performance Publicly available, labeled data sets on the DuraMATDataHub https:/datahub.duramat.org/project/example-data NREL | 11 Documentation: Example Galery •Example galery for majority of the package functions (v0.1.2) •Example data for running each algorithm •Plots illustrating algorithm results https:/pvanalytics.readthedocs.io/en/stable/generated/galery/index.html NREL | 12 Apply PVAnalyticsto Your Own Data How can you easily implement PVAnalyticsfunctions to your own data? https:/pvanalytics.readthedocs.io/en/stable/generated/galery/index.html CSV containing data streams (power, irradiance, temperature) Import CSV into our example documentation, and change any metadata parameters (lat-long coordinates, data frequency, etc) Run asociated example! Analyze outputs NREL | 13 Documentation: Function Descriptions •Page for each model function containing: •Brief description •Input parameters: data type, description •Outputs: data type, description •Published reference for the function, if applicable •Additional notes as needed •Examples in the galery using the function https:/pvanalytics.readthedocs.io/en/stable/api.html Function description for pvanalytics.quality.stale_values_dif NREL | 14 Automated Testing •Comprehensive unit-testing for al package functions •~10% test coverage •Uses Pytestand Coveralls •Since package is in its infancy, no speed benchmarks have been taken (yet!) Package checks required to pas before merging PR Curent test coverage NREL | 15 Comunity growth Githubstars over time Special thanks to all our contributors! •Github •88 completed pul requests •Code contributions from 6 people (se lower right) •Lots of oportunity to increase comunity growth as PVAnalyticsis still in its infancy •You can contribute! •Generate isues for features you’d like to see, add code via our PR process, etc. NREL | 16 PVAnalyticsv0.1.3 and Beyond •No expected ETA for next release but we’re actively working on new functions/documentation •Future version features: •Daylight savings time (DST) and time-drift detection algorithms for time series •Adding ploting module to easily validate time-series data visually www.nrel.gov Thank you! ThisworkwasauthoredinpartbyAllianceforSustainableEnergy,LLC,themanagerandoperatorof theNationalRenewableEnergyLaboratoryfortheU.S.DepartmentofEnergy(DOE)underContract No.DE-AC36-08GO28308.FundingprovidedbytheU.S.DepartmentofEnergy’sOfficeofEnergy EfficiencyandRenewableEnergy(EERE)underSolarEnergyTechnologiesOffice(SETO)Agrement Number38258.TheviewsexpresedinthearticledonotnecesarilyrepresenttheviewsoftheDOE ortheU.S.Government.TheU.S.Governmentretainsandthepublisher,byacceptingthearticlefor publication,acknowledgesthattheU.S.Governmentretainsanonexclusive,paid-up,irrevocable, worldwidelicensetopublishorreproducethepublishedformofthiswork,orallowotherstodoso, forU.S.Governmentpurposes. kirsten.pery@nrel.gov