RdTools Change Log¶
v2.1.4 (December 1, 2022)¶
Bug Fixes¶
degradation_year_on_year()no longer raises an error for inputs exactly two years long (GH #339)soiling_interval_plot()no longer ignores the optionalpoint_color,profile_color,point_alpha, andprofile_alphaparameters. (GH #343, GH #345)
Requirements¶
Upgrade the notebook environment from python 3.7 to python 3.10. Several dependency versions in
docs/notebook_requirements.txtare updated as well. (GH #319, GH #326)Bump
ipython==7.16.3,jupyter-console==6.4.0, andprompt-toolkit==3.0.27indocs/notebook_requirements.txtand bumpPillow==9.3.0inrequirements.txt(GH #314, GH #349)Bump
jupyter-core==4.11.2indocs\notebook_requirements.txt(GH #350)Bump
sphinxversion from 3.2 to 4.5 andnbsphinxversion from 0.8.5 to 0.8.8 in the optional[doc]requirements (GH #317, GH #325)A number of other requirements updates (GH #337)
Contributors¶
Sandra Villamar (@SandraVillamar)
Michael Deceglie (@mdeceglie)
Chris Deline (@cdeline)
Kevin Anderson (@kanderso-nrel)
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_scaleparameter 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_lengthin soiling functions and methods was changed from 2 to 7. (GH #199)
Enhancements¶
New object oriented end-to-end analysis API introduced with the
TrendAnalysisclass. 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_componentsandclearsky_filter_componentstoTrendAnalysis(GH #236, GH #263)A new parameter
outlier_factorwas added to soiling functions and methods to enable better control of cleaning event detection. (GH #199)Boolean input kwarg
detailedhas been added todegradation_summary_plotsto color-code degradation plots by the number of times data points are used in the degradation distribution. (GH #269, GH #282)degradation_year_on_yearadds a newusage_of_pointsentry in thecalc_inforeturn dictionary. (GH #269, GH #282)clip_filter()updated to allow for different methods of clipping detection with themodelparameter (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_cleanin 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
TrendAnalysisdocstring (GH #264)Enabled intersphinx so that function parameter types are linked to external documentation (GH #258)
Requirements¶
Example Updates¶
TrendAnalysis_example_pvdaq4.ipynbaddeddegradation_and_soiling_example_pvdaq_4.ipynbupdated to use the same artificial soiling signal imposed in new notebookTrendAnalysis_example_pvdaq4.ipynbthroughout the analysis.degradation_and_soiling_example_pvdaq_4.ipynbupdated 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.txtand 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.pyandavailability_test.pytoconftest.pyso 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.ipynband 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_chainsmodule to focus on objected-oriented analysis workflows combining other RdTools modules. IncludesTrendAnalysisclass 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
TrendAnalysisanalysis work flow (GH #196 and GH #117).Update
degradation_and_soiling_example_pvdaq_4.ipynbexample to match best practice, includingpvlib.get_total_irradiance()in rdtools.interpolate (GH #196 and GH #117).Update
degradation_and_soiling_example_pvdaq_4.ipynbexample to use a singlesoiling * ac_powersignal (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_timedeltaparameter 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_cutoffparameter 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_lowandenergy_normalized_high.poa_filter()input kwargs are nowpoa_global,poa_global_lowandpoa_global_high.tcell_filter()input kwargs are nowtemperature_cell,temperature_cell_lowandtemperature_cell_high.clip_filter()input kwargs are nowpower_acandquantile.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
soilingmodule to implement the stochastic rate and recovery method:Create new class
SRRAnalysisand 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
availabilitywith the classAvailabilityAnalysisfor 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
plottingmodule for generating standard plots (GH #138, GH #131)Add parameter
convergence_thresholdtoirradiance_rescale()(GH #152).
Bug fixes¶
Allow
max_iterations=0inirradiance_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.randomto 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.ipynbnotebook (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)