(C) Crown Copyright, Met Office. All rights reserved. See LICENCE.txt in the root of the repository for full licensing details.
This repository contains the analysis code used in the manuscript:
A new fast multivariate bias correction technique: a case study for compound events in Hunan Province, China, using the UNSEEN approach
The code applies the EMBCCA‑UNSEEN bias correction method to DePreSys4 initialised hindcasts, using ERA5‑Land as the observational reference, and evaluates fidelity using:
- Multivariate statistical feature consistency (SFC) testing
- Support Vector Machine (SVM)-based separability testing
---
Multi-DePreSys4-Paper-area_avg_final_multiscatter.py
→ Hunan Province (area-mean) analysis
→ Reproduces main manuscript figuresMulti-DePreSys4-Paper-area_full_final_China.py
→ China-wide spatial analysis
→ Produces correlation maps and comparison of time taken for the different multivariate methods when applied China-widefidelity_test_cube.py
→ Helper module for UNSEEN-style fidelity testing
---
conda env create -f environment.yml
conda activate embcca-unseenTested with:
- Python 3.12.10
- SBCK 1.4.2 (https://github.com/yrobink/SBCK-python)
---
This code is designed to be run by editing constants at the top of each script.
Each script contains:
# =============================================================================
# USER SETTINGS (edit these to run the workflow)
# =============================================================================You must edit:
DATA_DIROUTDIR
---
python Multi-DePreSys4-Paper-area_avg_final_multiscatter.pyProduces:
- Line plots (not shown in manuscript)
- Scatter plots comparing joint distributions across methods
- Statistical fidelity plots
- SVM ROC curves
- Extreme event probabilities
Outputs saved in:
OUTDIR/
subfolders:
Line_plotsScatter_plotsStatistical_ComparisonSVM_ComparisonExceedance_ComparisonFidelity_Testing/
---
python Multi-DePreSys4-Paper-area_full_final_China.pyProduces:
- Spatial correlation maps
- Correlation anomaly maps
- Calculation of time taken for each multivariate bias adjustment method to be applied across China
Outputs saved in:
OUTDIR/China/
---
This table helps reproduce key figures from the paper.
| Manuscript Figure | Description | Script output |
|---|---|---|
| Figure 3 | Univariate fidelity (temperature mean shift) | Fidelity_Testing/Original model data_temperature.png and Fidelity_Testing/Univariate mean shift_temperature.png |
| Figure 4 | Six-panel temperature–precip scatter | Scatter_plots/Scatter_sixpanel.png |
| Figure 5a | China correlation maps | China/maps/correlation'.png |
| Figure 5b | Correlation anomaly maps | China/maps/correlation_diff'.png |
| Figure 6 | Correlation fidelity distributions | Statistical_Comparison/Correlation.png |
| Figure 7 | SVM ROC curves | SVM_Comparison/SVM_ROC_sixpanel.png |
| Figure 8 (left) | Dry / hot probabilities | Exceedance_Comparison/exceedance_comparison_bar.png |
| Figure 8 (right) | Joint probability | Exceedance_Comparison/joint_exceedance_comparison_bar.png |
| Figure 9 | Threshold sensitivity plots | |
| → precip decrement | Exceedance_Comparison/joint_exceedance_by_precipitation_decrement.png |
|
| → temperature increment | Exceedance_Comparison/joint_exceedance_by_temperature_increment.png |
| Appendix Figure | Description | Script output |
|---|---|---|
| Figures 10–11 | Mean distributions | Statistical_Comparison/*_Mean.png where * = temperature or precipitation |
| Figures 12–13 | Standard deviation | Statistical_Comparison/*_Standard_Deviation.png where * = temperature or precipitation |
| Figure 14 | Skewness | Statistical_Comparison/Skewness.png |
| Figure 15 | Kurtosis | Statistical_Comparison/Kurtosis.png |
---
This repository does not include data. Data can be provided on request in .nc format.
You need:
- DePreSys4 JJA temperature + precipitation
- ERA5-Land JJA temperature + precipitation
- Regridded ERA5-Land
- DePreSys4 gridded output
| Variable | Name |
|---|---|
| Model temperature | mean_jja_temperature |
| Model precipitation | total_jja_precipitation |
| Obs temperature | t2m |
| Obs precipitation | tp |
---
- Seeds are used for bootstrapping during SFC testing, during SVM resampling, and when splitting the data into training and testing, so that results are reproducible.
Analysis period:
1992–2021 (30 years)
---
The scripts use:
MPL_BACKEND = "Agg"Switch to "Qt5Agg" only for interactive use.
---
- Data: available on reasonable request
- Code: provided in this repository
---
Please cite:
- The associated manuscript
---
- SBCK methods included: dOTC, MRec, R2D2
- Unlike these methods, EMBCCA‑UNSEEN preserves variance (critical for UNSEEN applications)