Introduction

GitHub badge License badge C++ badge CICD badge Docker pulls badge GCC badge CMake badge Release date badge Release tag badge DOI badge Publication bage

About

The command-line tool BiasAdjustCXX is the subject of a publication that provides an insight into the architecture, possible applications and new scientific questions. This publication referencing BiasAdjustCXX v1.8.1 was published in the journal SoftwareX in March 2023 and is available at https://doi.org/10.1016/j.softx.2023.101379.

This tool and the provided data structures are designed to help minimize discrepancies between modeled and observed climate data of different time periods. Data from past periods are used to adjust variables from current and future time series so that their distributional properties approximate possible actual values.

Schematic representation of a bias adjustment procedure

Fig 1: Schematic representation of a bias adjustment procedure

In this way, for example, modeled data, which on average represent values that are too cold, can be bias-corrected by applying an adjustment procedure. The following figure shows the observed, the modeled, and the bias-corrected values. It is directly visible that the delta adjusted time series (\(T^{*DM}_{sim,p}\)) are much more similar to the observed data (\(T_{obs,p}\)) than the raw modeled data (\(T_{sim,p}\)).

Temperature per day of year in modeled, observed and bias-adjusted climate data

Fig 2: Temperature per day of year in modeled, observed and bias-adjusted climate data

In addition - most of these methods available here have also been implemented in Python. This can be found in the python-cmethods package.

If you have any inquiries, remarks, requests for assistance, ideas, or potential collaborations, you can always create an issue on BiasAdjustCXX/issues, utilize the discussion area on BiasAdjustCXX/discussions, or directly contact me at contact@b-schwertfeger.de.

Available bias correction methods

The following bias correction techniques are available:
Scaling-based techniques:
Distribution-based techniques:

All of these mathematical methods are intended to be applied on 1-dimensional time-series climate data. This module also provides the possibility that enables the application of the desired bias correction method on 3-dimensional data sets.

General Notes

  • Except for the variance scaling, all methods can be applied on stochastic and non-stochastic climate variables. Variance scaling can only be applied on non-stochastic climate variables.

    • Non-stochastic climate variables are those that can be predicted with relative certainty based on factors such as location, elevation, and season. Examples of non-stochastic climate variables include air temperature, air pressure, and solar radiation.

    • Stochastic climate variables, on the other hand, are those that exhibit a high degree of variability and unpredictability, making them difficult to forecast accurately. Precipitation is an example of a stochastic climate variable because it can vary greatly in timing, intensity, and location due to complex atmospheric and meteorological processes.

  • The Delta Method requires that the time series of the control period have the

  • same length as the time series to be adjusted.

  • Examples can be found in the BiasAdjustCXX repository and of course within this documentation.

  • Speed/Performance tests and comparison to other tools can be found here: tool comparison

  • References can be found in the References section.

Notes regarding the scaling-based techniques

  • All data sets must exclude the 29th February and every year must have 365 entries. This is not required when using the --no-group flag which can be used to apply the scaling techniques in such a way that the scaling factors are based on the whole time series at once. This enables the possibility to apply the BiasAdjustCXX tool to data sets with custom time scales for example to adjust monthly separated time series individually to match the techniques described by Teutschbein et al. (2012) and Beyer et al. (2020). On the other hand the long-term 31-day interval procedures are customized variations and prevent disproportionately high differences in the long-term mean values at the monthly transitions. Thats why the long-term 31-day interval variant is the preferred method and is enabled by default for all scaling-based techniques.