Recent Releases of ibicus
ibicus - v1.2.0
Major and breaking changes:
- Added a running window mode over the future period to most bias adjustment methods: QuantileMapping, QuantileDeltaMapping, ECDFM, ScaledDistributionMapping, CDFt. This allows to account for temporally evolving climate change trends. It is not necessary for ISIMIP and LinearScaling. The running window is activated by default for QDM, CDFt and SDM. It comes with a new
SeasonalAndFutureRunningWindowDebiaserparent class to implement new debiasers. - Added a nonparametric distribution mapping to
QuantileDeltaMapping. This is active by default for all variables. It makes the method more robust, particularly for precipitation. - Made a number of breaking changes to default arguments for variables, in order to improve performance and ensure close correspondence with the reference papers:
- Activated the seasonal running window by default for QuantileMapping, LinearScaling, DeltaChange, ScaledDistributionMapping. It was already active by default for all other methods, except ECDFM.
- Activated the running window over the future by default for ScaledDistributionMapping, following the method specification in the paper.
- Bugfix for
ScaledDistributionMapping: for relative SDM the bias adjusted values were inserted into wet days by filtering. This was replaced through linear interpolation as the former led to performance issues. - Added censoring for the
ECDFMprecipitation model. This censors values under a threshold to zero before and after applying the bias adjustment thus accounting for drizzle effects.
Smaller changes:
- Added shuffling of (zero) precipitation values below the censoring threshold for
QuantileDeltaMapping. This can help improve performance, particularly for parametric QDM. - Removed deprecated
np.in1d. - Removed unused
apply_by_monthattribute for CDFt. - Updates to test suite.
- Documentation updates and refactoring.
Full Changelog: https://github.com/ecmwf-projects/ibicus/compare/v1.1.3...v1.2.0
Climate Change - Climate Data Processing and Analysis
- Jupyter Notebook
Published by jakobwes 6 months ago
ibicus - v1.1.3
Improvements:
- Changes to ScaledDistributionMapping (SDM) debiaser. In some situations this was found not to be trend preserving in the mean. To remedy that an additional scaling is applied at the end of the SDM implementation. This follows the reference implementation indicated in Switanek et al., 2017, whilst diverging from the algorithm documented within the paper itself. Thanks for @mo-DanCubbon for highlighting this.
- Changes to the experimental default distribution for tasmin and tasmax for the QuantileMapping and QuantileDeltaMapping debiasers. The previously used four parameter beta distribution was found to give unstable fits in some situations, particularly for small running windows. Therefore, we replaced it by a normal distribution.
Full Changelog: https://github.com/ecmwf-projects/ibicus/compare/v1.1.2...v1.1.3
Climate Change - Climate Data Processing and Analysis
- Jupyter Notebook
Published by jakobwes 9 months ago
ibicus - v1.1.2
Bugfix: Fix to the CDF randomization of the precipitation hurdle model. Pass size to np.random.uniform so it does not return a single value. Special thanks to @garciampred for the pull request.
Full Changelog: https://github.com/ecmwf-projects/ibicus/compare/v1.1.1...v1.1.2
Climate Change - Climate Data Processing and Analysis
- Jupyter Notebook
Published by jakobwes about 1 year ago
ibicus - v1.1.1
Bugfix: Fixed behaviour of nonparametric quantile mapping: 1) attrs validator would disallow initializing quantile mapping with mapping_type = "nonparametric" and the distribution parameter set to None and 2) the CDF concatenation for quantile mapping was in the wrong direction.
Full Changelog: https://github.com/ecmwf-projects/ibicus/compare/v1.1.0...v1.1.1
Climate Change - Climate Data Processing and Analysis
- Jupyter Notebook
Published by jakobwes about 2 years ago
ibicus - v1.1.0
Improvements:
- Added a common running window mode for all debiasers through the
RunningWindowDebiaserclass that inherits fromDebiaserclass. - Some fixes on the existing running window implementation in ISIMIP and other methods which only allowed for data to start on Jan-01 and end on Dec-31 (#21).
- Improved documentation and added instructions for implementing a new bias adjustment method using ibicus in the tutorial notebook ‘04 - Parallelization and Advanced Topics’. This follows reviewer comments to Spuler et al. 2023.
- Added new option
mapping_typeto QuantileMapping for users to apply QM based on nonparametric CDFs (“empirical quantile mapping”).
Full Changelog: https://github.com/ecmwf-projects/ibicus/compare/v1.0.4...v1.1.0
Climate Change - Climate Data Processing and Analysis
- Jupyter Notebook
Published by fiona511 about 2 years ago
ibicus - v1.0.4
Bugfix: Fixed behaviour of _unpack_df_of_numpy_arraysthat would previously lead to not all locations being shown in boxplots in the ibicus.marginal module.
Full Changelog: https://github.com/ecmwf-projects/ibicus/compare/v1.0.3...v1.0.4
Climate Change - Climate Data Processing and Analysis
- Jupyter Notebook
Published by jakobwes over 2 years ago
ibicus - v1.0.3
Improvements: some changes in warnings generated by the package (warnings.warn --> logger.warning as many warnings are non-avoidable by user interventions). Improved robustness of ISIMIP step 6 by defaulting to nonparametric quantile mapping should the parametric CDF fit fail with an error (necessitated due to some changes in the behaviour of scipy).
Full Changelog: https://github.com/ecmwf-projects/ibicus/compare/v1.0.2...v1.0.3
Climate Change - Climate Data Processing and Analysis
- Jupyter Notebook
Published by jakobwes over 2 years ago
ibicus - v1.0.2
Smaller bugfix: changed the behaviour of ISIMIP when not enough future climate model values or pseudo-future observations exist for a stable parametric CDF fit. In this case apply a non-parametric mapping.
Full Changelog: https://github.com/ecmwf-projects/ibicus/compare/v1.0.1...v1.0.2
Climate Change - Climate Data Processing and Analysis
- Jupyter Notebook
Published by jakobwes over 2 years ago
ibicus - v1.0.1
First stable release of ibicus: v1.0.1
Meta
Changes include improvements in code robustness, as well as new features and syntax simplifications. There has also been a substantial review of the documentation.
ibicus.debias
Debiaser.apply
paralleloption is now stable.verbosityargument has been removed. Instead warnings relevant for the user are generated with the warnings.warning interface and logging is per default now done onto the library logger (“ibicus”) whose behavior can be controlled with the standard logging tools or set_verbosity_library_logger() in utils.progressbar = Trueoption has been added to activate and deactivate the progressbar.failsafeoption has been added to continue execution if an error is encountered at a location.- Seamless integration with dask as shown in a new notebook.
Debiasers:
- DeltaChange: interface to initialize and apply debiaser now consistent with the other methods.
- QuantileMapping, SDM & ECDFM: Added CDF thresholding and reduced the threshold in SDM.
- CDFt: previously failed when there was no rain event in the running window, this has been fixed.
- ISIMIP: previously inconsistent results for weibull and rice distribution (tasrange) in parallelization, this has been fixed.
ibicus.evaluate
Extension of the ThresholdMetrics class:
- Thresholds can now be defined location-wise, with respect to certain months, seasons, days of year, and be initialized from quantiles in the observational period (for example a threshold defined as the 95th percentile of the season for this gridcell is now possible).
evaluate.marginal bias calculation:
- Added option to calculate the absolute location-wise bias (in [physical unit] for statistics and [days / year] for threshold metrics), compared to previous default of percentage bias.
Visualizations in evaluate.marginal, evaluate.trend, evaluate.metrics and evaluate.multivariate
- Plots that show distribution of biases across location improved - boxplots instead of violin plots, horizontal line at zero added and title fonts improved.
- Bug in manual title setting corrected.
- Outlier removal option removed from calculation function and added to plot function, serves the sole purpose of making plots more readable.
- New visualization option for spatiotemporal clusters as empirical CDFs added, compared to the previous violin plots.
- Spatial plots of conditional threshold exceedance added.
Climate Change - Climate Data Processing and Analysis
- Jupyter Notebook
Published by jakobwes almost 3 years ago