RdTools Change Log¶
v2.1.3 (January 6, 2022)¶
Bug fixes¶
Fixed a plotting issue in
rdtools.plotting.availability_summary_plots()
with newer matplotlib versions, as well as an axis labeling error (GH #302)
Requirements¶
Added support for python 3.10 and dropped support for python 3.6 (which reached end of life on Dec 23, 2021) (GH #302)
Bumped several minimum package versions (GH #302):
h5py increased to 2.8.0 (released June 4, 2018)
pandas increased to 0.23.2 (released July 6, 2018)
scipy increased to 1.1.0 (released May 5, 2018)
statsmodels increased to 0.9.0 (released May 14, 2018)
Update pinned versions of several dependencies in
requirements.txt
(GH #302)
v2.1.1 (November 30, 2021)¶
This patch release temporarily requires xgboost < 1.5.0
. A future update
will allow a wider version range. (GH #301, GH #297)
v2.1.0 (September 17, 2021)¶
API Changes¶
The calculations internal to the soiling SRR algorithm have changed such that consecutive cleaning events are no longer removed. (GH #199, GH #189)
The calculations internal to the soiling SRR algorithm have changed such that "invalid" intervals are retained at the beginning and end of the dataset for the purposes of the SRR Monte Carlo. Invalid intervals are those that do not qualify to be fit as soiling intervals based on
min_interval_length
,max_relative_slope_error
, andmax_negative_step
. (GH #199, GH #272)The default
day_scale
parameter in soiling functions and methods was changed from 14 to 13. A recommendation to use an odd value along with a warning for even values was also added. (GH #199, GH #189)The default
min_interval_length
in soiling functions and methods was changed from 2 to 7. (GH #199)
Enhancements¶
New object oriented end-to-end analysis API introduced with the
TrendAnalysis
class. Note the behavior has been adjusted since its original introduction in v2.1.0-beta.0. (GH #117, GH #232, GH #233, GH #263, GH #278, GH #285, GH #281)Add
sensor_filter_components
andclearsky_filter_components
toTrendAnalysis
(GH #236, GH #263)A new parameter
outlier_factor
was added to soiling functions and methods to enable better control of cleaning event detection. (GH #199)Boolean input kwarg
detailed
has been added todegradation_summary_plots
to color-code degradation plots by the number of times data points are used in the degradation distribution. (GH #269, GH #282)degradation_year_on_year
adds a newusage_of_points
entry in thecalc_info
return dictionary. (GH #269, GH #282)clip_filter()
updated to allow for different methods of clipping detection with themodel
parameter (GH #200)Add new function
quantile_clip_filter()
(GH #200).Add new function
logic_clip_filter()
(GH #200).Add new function
xgboost_clip_filter()
(GH #200).Add new function
tune_filter_plot()
(GH #200).
Bug fixes¶
Unexpected recoveries when using
method=random_clean
in the soiling module have been fixed. (GH #199, GH #234)Improved NaN pixel handling in
get_clearsky_tamb()
(GH #274).
Documentation¶
Corrected a typo in the
TrendAnalysis
docstring (GH #264)Enabled intersphinx so that function parameter types are linked to external documentation (GH #258)
Requirements¶
Example Updates¶
TrendAnalysis_example_pvdaq4.ipynb
addeddegradation_and_soiling_example_pvdaq_4.ipynb
updated to use the same artificial soiling signal imposed in new notebookTrendAnalysis_example_pvdaq4.ipynb
throughout the analysis.degradation_and_soiling_example_pvdaq_4.ipynb
updated to illustrate new clipping models and filter-tuning plots.
Contributors¶
Mark Mikofski (@mikofski)
Kevin Anderson (@kanderso-nrel)
Michael Deceglie (@mdeceglie)
Matthew Muller (@matt14muller)
Kirsten Perry (@kperrynrel)
Chris Deline (@cdeline)
v2.0.6 (July 16, 2021)¶
Bug Fixes¶
Fix a failure of
get_clearsky_tamb()
with pandas 1.3.0 (GH #284)Change internal casting of timestamps into integers to use
.view()
instead of pandas deprecated.astype()
method (GH #284)
Requirements¶
Update specified versions of bleach in
docs/notebook_requirements.txt
and matplotlib inrequirements.txt
(GH #261)
Contributors¶
Kevin Anderson (@kanderso-nrel)
Michael Deceglie (@mdeceglie)
v2.0.5 (2020-12-30) and v2.1.0-beta.2 (2021-01-29)¶
Testing¶
Add a flake8 code style check to the continuous integration checks (GH #231)
Moved several pytest fixtures from
soiling_test.py
andavailability_test.py
toconftest.py
so that they are shared across test files (GH #231)Add Python 3.9 to CI testing (GH #249)
Fix test suite error raised when using pandas 1.2.0 (GH #251)
Requirements¶
Contributors¶
Kevin Anderson (@kanderso-nrel)
Michael Deceglie (@mdeceglie)
Chris Deline (@cdeline)
v2.0.4 and v2.1.0-beta.1 (December 4, 2020)¶
Bug Fixes¶
Fix bug related to leading NaN values with
energy_from_power()
. This fixed a small normalization error indegradation_and_soiling_example.ipynb
and slightly changed the clear-sky degradation results (GH #244, GH #245)
Contributors¶
Kevin Anderson (@kanderso-nrel)
v2.1.0-beta.0 (November 20, 2020)¶
Enhancements¶
Add new
analysis_chains
module to focus on objected-oriented analysis workflows combining other RdTools modules. IncludesTrendAnalysis
class for sensor- and clear-sky-based soiling and degradation analyses (GH #117).
Example Updates¶
New example notebook based on PVDAQ system #4 for the new
TrendAnalysis
analysis work flow (GH #196 and GH #117).Update
degradation_and_soiling_example_pvdaq_4.ipynb
example to match best practice, includingpvlib.get_total_irradiance()
in rdtools.interpolate (GH #196 and GH #117).Update
degradation_and_soiling_example_pvdaq_4.ipynb
example to use a singlesoiling * ac_power
signal (GH #196).
Contributors¶
Mike Deceglie (@mdeceglie)
Kevin Anderson (@kanderso-nrel)
Chris Deline (@cdeline)
v2.0.3 (November 20, 2020)¶
Requirements¶
Change to
docs/notebook_requirements.txt
: notebook version from 5.7.8 to 6.1.5 and terminado version from 0.8.1 to 0.8.3 (GH #239)
Contributors¶
Mike Deceglie (@mdeceglie)
v2.0.2 (November 17, 2020)¶
Examples¶
degradation_and_soiling_example.ipynb modified to not use
max_timedelta
parameter ininterpolate()
andenergy_from_power()
in Step 0 (GH #237)
Contributors¶
Mike Deceglie (@mdeceglie)
v2.0.1 (October 30, 2020)¶
Deprecations¶
The deprecation of
pvwatts_dc_power()
andnormalize_with_pvwatts()
has been reversed. (GH #227)
Contributors¶
Mike Deceglie (@mdeceglie)
Kevin Anderson (@kanderso-nrel)
v2.0.0 (October 20, 2020)¶
Version 2.0.0 adds experimental soiling and availability modules, plotting capability, and includes updates to normalization work flow. This major release introduces some breaking changes to the API. Details below.
API Changes¶
The calculations internal to
normalize_with_pvwatts()
andnormalize_with_sapm()
have changed. Generally, when working with raw power data it should be converted to right-labeled energy withenergy_from_power()
before being used with these normalization functions (GH #105, GH #108).Remove
low_power_cutoff
parameter inclip_filter()
(GH #84).Many kwargs have changed name (but not input order) to bring nomenclature into closer alignment with the DuraMAT pv-terms project: (GH #185)
aggregation_insol()
first kwarg is nowenergy_normalized
.degradation_year_on_year()
,degradation_ols()
anddegradation_classical_decomposition()
first kwarg is nowenergy_normalized
.normalized_filter()
input kwargs are nowenergy_normalized
,energy_normalized_low
andenergy_normalized_high
.poa_filter()
input kwargs are nowpoa_global
,poa_global_low
andpoa_global_high
.tcell_filter()
input kwargs are nowtemperature_cell
,temperature_cell_low
andtemperature_cell_high
.clip_filter()
input kwargs are nowpower_ac
andquantile
.csi_filter()
first two kwargs are nowpoa_global_measured
,poa_global_clearsky
.normalize_with_pvwatts()
pvwatts_kws dictionary keys have been renamed.pvwatts_dc_power()
input kwargs are nowpoa_global
,power_dc_rated
,temperature_cell
,poa_global_ref
,temperature_cell_ref
,gamma_pdc
.irradiance_rescale()
second kwarg is nowirrad_sim
Deprecations¶
The functions
pvwatts_dc_power()
,sapm_dc_power()
,normalize_with_pvwatts()
, andnormalize_with_sapm()
have been deprecated in favor ofnormalize_with_expected_power()
. (GH #215)
Enhancements¶
Add new
soiling
module to implement the stochastic rate and recovery method:Create new class
SRRAnalysis
and helper functionsoiling_srr()
(GH #112, GH #168, GH #169, GH #176, GH #208, GH #213)Create functions
monthly_soiling_rates()
andannual_soiling_ratios()
(GH #193, GH #207)
Create new module
availability
with the classAvailabilityAnalysis
for estimating timeseries system availability (GH #131)Add new function
normalize_with_expected_power()
(GH #173).Add new functions
energy_from_power()
andinterpolate()
(GH #105, GH #108, GH #182, GH #212).Add new function
normalized_filter()
(GH #139)Add new
plotting
module for generating standard plots (GH #138, GH #131)Add parameter
convergence_threshold
toirradiance_rescale()
(GH #152).
Bug fixes¶
Allow
max_iterations=0
inirradiance_rescale()
(GH #152).
Testing¶
Documentation¶
Requirements¶
Drop support for Python 2.7, minimum supported version is now 3.6 (GH #135).
Increase minimum pvlib version to 0.7.0 (GH #170)
Update requirements.txt and notebook_requirements.txt to avoid conflicting specifications. Taken together, they represent the complete environment for the notebook example (GH #164).
Add minimum matplotlib requirement of 3.0.0 (released September 18, 2018) (GH #197)
Increase minimum numpy version from 1.12 (released January 15, 2017) to 1.15 (released July 23, 2018) (GH #197)
Example Updates¶
Seed
numpy.random
to ensure repeatable results (GH #164).Use
normalized_filter()
instead of manually filtering the normalized energy timeseries. Also updated the associated mask variable names (GH #139).Add soiling section to the original example notebook.
Add a new example notebook that analyzes data from a PV system located at NREL's South Table Mountain campus (PVDAQ system #4) (GH #171).
Explicitly register pandas datetime converters which were deprecated.
Add new
system_availability_example.ipynb
notebook (GH #131)
Contributors¶
Mike Deceglie (@mdeceglie)
Kevin Anderson (@kanderso-nrel)
Chris Deline (@cdeline)
Will Vining (@wfvining)
v1.2.3 (April 12, 2020)¶
Updates dependencies
Versioneer bug fix
Licence update
Contributors¶
Mike Deceglie (@mdeceglie)
v1.2.2 (October 12, 2018)¶
Patch that adds author email to enable pypi deployment
Contributors¶
Mike Deceglie (@mdeceglie)
v1.2.1 (October 12, 2018)¶
This update includes automated testing and deployment to support development along with some bug fixes to the library itself, a documented environment for the example notebook, and new example results to reflect changes in the example dataset. It addresses GH #49, GH #76, GH #78, GH #79, GH #80, GH #85, GH #86, and GH #92.
Contributors¶
Mike Deceglie (@mdeceglie)
Adam Shinn (@abshinn)
Chris Deline (@cdeline)
nb137 (@nb137)
v1.2.0 (March 30, 2018)¶
This incorporates changes including:
Enables users to control confidence intervals reported in degradation calculations (GH #59)
Improvements/typo fixes to docstrings
Fixes error in check for two years of data in degradation_year_on_year
Improves the calculations underlying irradiance_rescale
Contributors¶
Mike Deceglie (@mdeceglie)
Ambarish Nag (@ambarishnag)
Gregory Kimball (@GregoryKimball)
Chris Deline (@cdeline)
Mark Mikofski (@mikofski)
v1.1.3 (December 6, 2017)¶
This patch includes the following changes:
Update the notebook for improved plotting with Pandas v.0.21.0
Fix installation bug related to package data
Contributors¶
Mike Deceglie (@mdeceglie)
Chris Deline (@cdeline)
v1.1.2 (November 6, 2017)¶
This patch includes the following changes:
Fix bugs in installation
Update requirements
Notebook plots made compatible with pandas v.0.21.0
Contributors¶
Mike Deceglie (@mdeceglie)
v1.1.1 (November 1, 2017)¶
This patch:
Improves documentation
Fixes installation requirements
Contributors¶
Mike Deceglie (@mdeceglie)
Adam Shinn (@abshinn)
Chris Deline (@cdeline)
v1.1.0 (September 30, 2017)¶
This update includes the addition of filters, functions to support a clear-sky workflow, and updates to the example notebook.
Contributors¶
Mike Deceglie (@mdeceglie)
Adam Shinn (@abshinn)
Ambarish Nag (@ambarishnag)
Gregory Kimball (@GregoryKimball)
Chris Deline (@cdeline)
Jiyang Yan (@yjy1663)