|
1 | | -************************* |
2 | | -v3.2.0 (X, X, 2026) |
3 | | -************************* |
4 | | - |
5 | | -Enhancements |
6 | | ------------- |
7 | | -* :py:func:`~rdtools.degradation.degradation_year_on_year` has new parameter ``label=`` |
8 | | - to return the calc_info['YoY_values'] as either right labeled (default), left or |
9 | | - center labeled. (:issue:`459`) |
10 | | -* :py:func:`~rdtools.plotting.degradation_timeseries_plot` now defaults to rolling |
11 | | - median, centered on the timestamp (pd.rolling(center=True)), and reduces |
12 | | - ``min_periods`` from ``rolling_days//2`` to ``rolling_days//4``. |
13 | | - (:issue:`455`) |
14 | | -* :py:func:`~rdtools.degradation.degradation_year_on_year` has new parameter ``multi_yoy`` |
15 | | - (default False) to trigger multiple YoY degradation calculations similar to Hugo Quest et |
16 | | - al 2023. In this mode, instead of a series of 1-year duration slopes, 2-year, 3-year etc |
17 | | - slopes are also included. calc_info['YoY_values'] returns a non-monotonic index |
18 | | - in this mode due to multiple overlapping annual slopes. (:issue:`394`) |
19 | | -* :py:func:`~rdtools.plotting.degradation_timeseries_plot` now supports ``multi_yoy=True`` |
20 | | - data by resampling overlapping YoY values to their mean. A warning is issued when this |
21 | | - resampling occurs. (:issue:`394`) |
22 | | -* :py:func:`~rdtools.plotting.degradation_summary_plots` ``detailed=True`` mode now |
23 | | - properly handles points used odd vs even number of times (not just 0, 1, 2). |
24 | | - (:issue:`394`) |
25 | | -* :py:func:`~rdtools.degradation.degradation_year_on_year` now returns |
26 | | - ``calc_info['YoY_times']`` DataFrame with ``dt_right``, ``dt_center``, and ``dt_left`` |
27 | | - columns for each YoY slope. (:issue:`459`) |
28 | | -* Added new example notebook ``docs/Multi-year_on_year_example.ipynb`` demonstrating the |
29 | | - ``label='center'`` and ``multi_yoy=True`` features of |
30 | | - :py:func:`~rdtools.degradation.degradation_year_on_year`. (:issue:`394`) |
31 | | -* :py:meth:`~rdtools.analysis_chains.TrendAnalysis.sensor_analysis` and |
32 | | - :py:meth:`~rdtools.analysis_chains.TrendAnalysis.clearsky_analysis` now |
33 | | - explicitly default ``yoy_kwargs={"label": "right"}``. |
34 | | - |
35 | | -Bug Fixes |
36 | | ---------- |
37 | | -* Fixed ``usage_of_points`` calculation in :py:func:`~rdtools.degradation.degradation_year_on_year` |
38 | | - to properly handle ``multi_yoy=True`` mode with overlapping slopes. (:issue:`394`) |
39 | | - |
40 | | - |
41 | | -Maintenance |
42 | | ------------ |
43 | | -* Added ``_avg_timestamp_old_Pandas`` helper function for pandas <2.0 compatibility |
44 | | - when calculating center labels. |
45 | | -* Fixed nbval workflow command syntax (``--sanitize-with`` to ``--nbval-sanitize-with``). |
46 | | -* Improved pandas 3.0 compatibility with datetime resolution handling. |
47 | | -* Updated ``docs/notebook_requirements.txt`` to require ``numexpr>=2.10.2`` and |
48 | | - ``tabulate>=0.9.0`` to satisfy pandas' optional dependency minimum versions and |
49 | | - avoid related warnings/errors. |
50 | | -* Removed trailing semicolons in example notebooks. |
51 | | -* Added ``.coverage.*`` pattern to ``.gitignore``. |
52 | | - |
53 | | -Testing |
54 | | -------- |
55 | | -* Added tests for error handling paths in :py:mod:`~rdtools.analysis_chains`: |
56 | | - ``filter_params`` and ``filter_params_aggregated`` setter validation, |
57 | | - ``clearsky_rescale_index_mismatch``, ``poa_filter_without_poa``, |
58 | | - ``tcell_filter_without_temperature``, ``hour_angle_filter_without_location``, |
59 | | - ``clearsky_filter_without_poa``, and ``degradation_timeseries_plot_invalid_case``. |
60 | | -* Added tests for error handling paths in :py:mod:`~rdtools.degradation`: |
61 | | - ``classical_decomposition`` missing/irregular data, ``year_on_year`` circular block |
62 | | - validation, no valid pairs error, and ``_mk_test`` edge cases (no trend, ties, |
63 | | - decreasing). |
64 | | -* Added test for ``multi_yoy=True`` parameter in ``degradation_year_on_year``. |
65 | | -* Added tests for :py:func:`~rdtools.plotting.degradation_timeseries_plot` |
66 | | - covering ``label='center'``, ``label='left'``, multi-YoY duplicate index |
67 | | - handling, and ``KeyError`` path. |
68 | | -* Set matplotlib backend to ``Agg`` in test ``conftest.py`` to avoid tkinter issues. |
69 | | - |
70 | | - |
71 | | -Contributors |
72 | | ------------- |
73 | | -* Chris Deline (:ghuser:`cdeline`) |
74 | | -* Martin Springer (:ghuser:`martin-springer`) |
75 | | - |
0 commit comments