rdtools 2.2.0b2__tar.gz → 3.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. rdtools-3.0.0/PKG-INFO +83 -0
  2. {rdtools-2.2.0b2 → rdtools-3.0.0}/README.md +19 -16
  3. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/__init__.py +14 -6
  4. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/_version.py +4 -4
  5. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/aggregation.py +2 -2
  6. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/analysis_chains.py +602 -311
  7. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/availability.py +37 -24
  8. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/bootstrap.py +8 -3
  9. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/clearsky_temperature.py +7 -3
  10. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/degradation.py +7 -9
  11. rdtools-3.0.0/rdtools/filtering.py +1109 -0
  12. rdtools-3.0.0/rdtools/models/xgboost_clipping_model.json +1 -0
  13. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/normalization.py +14 -148
  14. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/plotting.py +6 -15
  15. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/soiling.py +31 -16
  16. rdtools-3.0.0/rdtools/utilities.py +79 -0
  17. rdtools-3.0.0/rdtools.egg-info/PKG-INFO +83 -0
  18. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools.egg-info/SOURCES.txt +1 -0
  19. rdtools-3.0.0/rdtools.egg-info/requires.txt +42 -0
  20. {rdtools-2.2.0b2 → rdtools-3.0.0}/setup.cfg +1 -1
  21. {rdtools-2.2.0b2 → rdtools-3.0.0}/setup.py +39 -39
  22. {rdtools-2.2.0b2 → rdtools-3.0.0}/versioneer.py +795 -340
  23. rdtools-2.2.0b2/PKG-INFO +0 -35
  24. rdtools-2.2.0b2/rdtools/filtering.py +0 -745
  25. rdtools-2.2.0b2/rdtools/models/xgboost_clipping_model.json +0 -1
  26. rdtools-2.2.0b2/rdtools.egg-info/PKG-INFO +0 -35
  27. rdtools-2.2.0b2/rdtools.egg-info/requires.txt +0 -40
  28. {rdtools-2.2.0b2 → rdtools-3.0.0}/LICENSE +0 -0
  29. {rdtools-2.2.0b2 → rdtools-3.0.0}/MANIFEST.in +0 -0
  30. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/_deprecation.py +0 -0
  31. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools/data/temperature.hdf5 +0 -0
  32. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools.egg-info/dependency_links.txt +0 -0
  33. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools.egg-info/not-zip-safe +0 -0
  34. {rdtools-2.2.0b2 → rdtools-3.0.0}/rdtools.egg-info/top_level.txt +0 -0
rdtools-3.0.0/PKG-INFO ADDED
@@ -0,0 +1,83 @@
1
+ Metadata-Version: 2.2
2
+ Name: rdtools
3
+ Version: 3.0.0
4
+ Summary: Functions for reproducible timeseries analysis of photovoltaic systems.
5
+ Home-page: https://github.com/NREL/rdtools
6
+ Author: Rdtools Python Developers
7
+ Author-email: RdTools@nrel.gov
8
+ Maintainer-email: RdTools@nrel.gov
9
+ License: MIT
10
+ Project-URL: Bug Tracker, https://github.com/NREL/rdtools/issues
11
+ Project-URL: Documentation, https://rdtools.readthedocs.io/
12
+ Project-URL: Source Code, https://github.com/NREL/rdtools
13
+ Keywords: photovoltaic,solar,analytics,analysis,performance,degradation,PV
14
+ Classifier: Development Status :: 5 - Production/Stable
15
+ Classifier: License :: OSI Approved :: MIT License
16
+ Classifier: Operating System :: OS Independent
17
+ Classifier: Intended Audience :: Science/Research
18
+ Classifier: Programming Language :: Python
19
+ Classifier: Programming Language :: Python :: 3
20
+ Classifier: Programming Language :: Python :: 3.9
21
+ Classifier: Programming Language :: Python :: 3.10
22
+ Classifier: Programming Language :: Python :: 3.11
23
+ Classifier: Programming Language :: Python :: 3.12
24
+ Classifier: Topic :: Scientific/Engineering
25
+ License-File: LICENSE
26
+ Requires-Dist: matplotlib>=3.5.3
27
+ Requires-Dist: numpy>=1.22.4
28
+ Requires-Dist: pandas>=1.4.4
29
+ Requires-Dist: statsmodels>=0.13.5
30
+ Requires-Dist: scipy>=1.8.1
31
+ Requires-Dist: h5py>=3.7.0
32
+ Requires-Dist: plotly>=4.0.0
33
+ Requires-Dist: xgboost>=1.6.0
34
+ Requires-Dist: pvlib<0.12.0,>=0.11.0
35
+ Requires-Dist: scikit-learn<1.6.0,>=1.1.3
36
+ Requires-Dist: arch>=5.0
37
+ Requires-Dist: filterpy>=1.4.2
38
+ Provides-Extra: doc
39
+ Requires-Dist: sphinx==7.4.7; extra == "doc"
40
+ Requires-Dist: nbsphinx==0.9.5; extra == "doc"
41
+ Requires-Dist: nbsphinx-link==1.3.1; extra == "doc"
42
+ Requires-Dist: sphinx_rtd_theme==3.0.1; extra == "doc"
43
+ Requires-Dist: ipython; extra == "doc"
44
+ Requires-Dist: sphinx-gallery==0.18.0; extra == "doc"
45
+ Provides-Extra: test
46
+ Requires-Dist: pytest>=3.6.3; extra == "test"
47
+ Requires-Dist: pytest-cov; extra == "test"
48
+ Requires-Dist: coverage; extra == "test"
49
+ Requires-Dist: flake8; extra == "test"
50
+ Requires-Dist: nbval<=0.9.6; extra == "test"
51
+ Requires-Dist: pytest-mock; extra == "test"
52
+ Provides-Extra: all
53
+ Requires-Dist: coverage; extra == "all"
54
+ Requires-Dist: flake8; extra == "all"
55
+ Requires-Dist: ipython; extra == "all"
56
+ Requires-Dist: nbsphinx-link==1.3.1; extra == "all"
57
+ Requires-Dist: nbsphinx==0.9.5; extra == "all"
58
+ Requires-Dist: nbval<=0.9.6; extra == "all"
59
+ Requires-Dist: pytest>=3.6.3; extra == "all"
60
+ Requires-Dist: pytest-cov; extra == "all"
61
+ Requires-Dist: pytest-mock; extra == "all"
62
+ Requires-Dist: sphinx-gallery==0.18.0; extra == "all"
63
+ Requires-Dist: sphinx==7.4.7; extra == "all"
64
+ Requires-Dist: sphinx_rtd_theme==3.0.1; extra == "all"
65
+ Dynamic: author
66
+ Dynamic: author-email
67
+ Dynamic: classifier
68
+ Dynamic: description
69
+ Dynamic: home-page
70
+ Dynamic: keywords
71
+ Dynamic: license
72
+ Dynamic: maintainer-email
73
+ Dynamic: project-url
74
+ Dynamic: provides-extra
75
+ Dynamic: requires-dist
76
+ Dynamic: summary
77
+
78
+
79
+ RdTools is an open-source library to support reproducible technical analysis of
80
+ PV time series data. The library aims to provide best practice analysis
81
+ routines along with the building blocks for users to tailor their own analyses.
82
+
83
+ Source code: https://github.com/NREL/rdtools
@@ -1,19 +1,22 @@
1
1
  <img src="./docs/sphinx/source/_images/logo_horizontal_highres.png" width="500" alt="RdTools logo"/>
2
2
 
3
- Master branch:
4
- [![Build Status](https://github.com/NREL/rdtools/workflows/pytest/badge.svg?branch=master)](https://github.com/NREL/rdtools/actions?query=branch%3Amaster)
3
+ Master branch:
4
+ [![Build Status](https://github.com/NREL/rdtools/workflows/pytest/badge.svg?branch=master)](https://github.com/NREL/rdtools/actions?query=branch%3Amaster)
5
5
 
6
- Development branch:
6
+ Development branch:
7
7
  [![Build Status](https://github.com/NREL/rdtools/workflows/pytest/badge.svg?branch=development)](https://github.com/NREL/rdtools/actions?query=branch%3Adevelopment)
8
8
 
9
+ Code coverage:
10
+ [![codecov](https://codecov.io/gh/NREL/rdtools/graph/badge.svg?token=K2HDjFkBws)](https://codecov.io/gh/NREL/rdtools)
11
+
9
12
  RdTools is an open-source library to support reproducible technical analysis of
10
13
  time series data from photovoltaic energy systems. The library aims to provide
11
14
  best practice analysis routines along with the building blocks for users to
12
- tailor their own analyses.
13
- Current applications include the evaluation of PV production over several years to obtain
14
- rates of performance degradation and soiling loss. RdTools can handle
15
- both high frequency (hourly or better) or low frequency (daily, weekly,
16
- etc.) datasets. Best results are obtained with higher frequency data.
15
+ tailor their own analyses. Current applications include the evaluation of PV
16
+ production over several years to obtain rates of performance degradation and
17
+ soiling loss. RdTools can handle both high frequency (hourly or better) or low
18
+ frequency (daily, weekly, etc.) datasets. Best results are obtained with higher
19
+ frequency data.
17
20
 
18
21
  RdTools can be installed automatically into Python from PyPI using the
19
22
  command line:
@@ -24,17 +27,17 @@ pip install rdtools
24
27
 
25
28
  For API documentation and full examples, please see the [documentation](https://rdtools.readthedocs.io).
26
29
 
27
- RdTools currently is tested on Python 3.7+.
30
+ RdTools currently is tested on Python 3.9+.
28
31
 
29
32
  ## Citing RdTools
30
33
 
31
34
  To cite RdTools, please use the following along with the version number
32
35
  and the specific DOI coresponding to that version from [Zenodo](https://doi.org/10.5281/zenodo.1210316):
33
36
 
34
- - Michael G. Deceglie, Ambarish Nag, Adam Shinn, Gregory Kimball,
35
- Daniel Ruth, Dirk Jordan, Jiyang Yan, Kevin Anderson, Kirsten Perry,
36
- Mark Mikofski, Matthew Muller, Will Vining, and Chris Deline
37
- RdTools, version {insert version}, Compuer Software,
37
+ - Michael G. Deceglie, Kevin Anderson, Adam Shinn, Ambarish Nag, Mark Mikofski,
38
+ Martin Springer, Jiyang Yan, Kirsten Perry, Sandra Villamar, Will Vining,
39
+ Gregory Kimball, Daniel Ruth, Noah Moyer, Quyen Nguyen, Dirk Jordan,
40
+ Matthew Muller, and Chris Deline, RdTools, version {insert version}, Computer Software,
38
41
  https://github.com/NREL/rdtools. DOI:{insert DOI}
39
42
 
40
43
  The underlying workflow of RdTools has been published in several places.
@@ -57,11 +60,11 @@ appropriate:
57
60
  Detection Techniques in AC Power Time Series," 2021 IEEE 48th Photovoltaic
58
61
  Specialists Conference (PVSC), pp. 1638-1643 2021, DOI: [10.1109/PVSC43889.2021.9518733](https://doi.org/10.1109/PVSC43889.2021.9518733).
59
62
 
60
-
63
+
61
64
  ## References
62
65
  The clear sky temperature calculation, `clearsky_temperature.get_clearsky_tamb()`, uses data
63
- from images created by Jesse Allen, NASA’s Earth Observatory using data courtesy of the MODIS Land Group.
64
- https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MOD_LSTD_CLIM_M
66
+ from images created by Jesse Allen, NASA’s Earth Observatory using data courtesy of the MODIS Land Group.
67
+ https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MOD_LSTD_CLIM_M
65
68
  https://neo.sci.gsfc.nasa.gov/view.php?datasetId=MOD_LSTN_CLIM_M
66
69
 
67
70
  Other useful references which may also be consulted for degradation rate methodology include:
@@ -1,4 +1,3 @@
1
- from rdtools.normalization import normalize_with_sapm
2
1
  from rdtools.normalization import normalize_with_pvwatts
3
2
  from rdtools.normalization import irradiance_rescale
4
3
  from rdtools.normalization import energy_from_power
@@ -9,7 +8,9 @@ from rdtools.degradation import degradation_classical_decomposition
9
8
  from rdtools.degradation import degradation_year_on_year
10
9
  from rdtools.aggregation import aggregation_insol
11
10
  from rdtools.clearsky_temperature import get_clearsky_tamb
11
+ from rdtools.filtering import clearsky_filter
12
12
  from rdtools.filtering import csi_filter
13
+ from rdtools.filtering import pvlib_clearsky_filter
13
14
  from rdtools.filtering import poa_filter
14
15
  from rdtools.filtering import tcell_filter
15
16
  from rdtools.filtering import clip_filter
@@ -17,6 +18,11 @@ from rdtools.filtering import quantile_clip_filter
17
18
  from rdtools.filtering import logic_clip_filter
18
19
  from rdtools.filtering import xgboost_clip_filter
19
20
  from rdtools.filtering import normalized_filter
21
+ from rdtools.filtering import two_way_window_filter
22
+ from rdtools.filtering import insolation_filter
23
+ from rdtools.filtering import hampel_filter
24
+ from rdtools.filtering import hour_angle_filter
25
+ from rdtools.filtering import directional_tukey_filter
20
26
  # from rdtools.soiling import soiling_srr
21
27
  # from rdtools.soiling import soiling_cods
22
28
  # from rdtools.soiling import monthly_soiling_rates
@@ -28,9 +34,11 @@ from rdtools.plotting import degradation_timeseries_plot
28
34
  # from rdtools.plotting import soiling_monte_carlo_plot
29
35
  # from rdtools.plotting import soiling_interval_plot
30
36
  # from rdtools.plotting import soiling_rate_histogram
31
- # from rdtools.plotting import availability_summary_plots
32
- # from rdtools.availability import AvailabilityAnalysis
37
+ from rdtools.plotting import availability_summary_plots
38
+ from rdtools.availability import AvailabilityAnalysis
39
+ from rdtools.utilities import robust_quantile
40
+ from rdtools.utilities import robust_median
41
+ from rdtools.utilities import robust_mean
33
42
 
34
- from ._version import get_versions
35
- __version__ = get_versions()['version']
36
- del get_versions
43
+ from . import _version
44
+ __version__ = _version.get_versions()['version']
@@ -1,5 +1,5 @@
1
1
 
2
- # This file was generated by 'versioneer.py' (0.18) from
2
+ # This file was generated by 'versioneer.py' (0.29) from
3
3
  # revision-control system data, or from the parent directory name of an
4
4
  # unpacked source archive. Distribution tarballs contain a pre-generated copy
5
5
  # of this file.
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2023-12-01T15:24:38-0700",
11
+ "date": "2025-01-22T17:42:14-0700",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "250e412bda8199491d8dc45673752374913b9c65",
15
- "version": "2.2.0-beta.2"
14
+ "full-revisionid": "569177fd18992f4ffe0133c5ce2dbcee1833c1f0",
15
+ "version": "3.0.0"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -22,7 +22,7 @@ def aggregation_insol(energy_normalized, insolation, frequency='D'):
22
22
  aggregated : pandas.Series
23
23
  Insolation weighted average, aggregated at frequency
24
24
  '''
25
- aggregated = (insolation * energy_normalized).resample(frequency).sum() / \
26
- insolation.resample(frequency).sum()
25
+ aggregated = (insolation * energy_normalized).resample(frequency, origin='start_day').sum() / \
26
+ insolation.resample(frequency, origin='start_day').sum()
27
27
 
28
28
  return aggregated