License: MIT Arxiv

Drought detection in climate data

This repository contains the source code for the following paper. If you find this repository useful in your research, please consider adding the following citation:

@inproceedings{gottfriedsen2021on,
  title={On the Generalization of Agricultural Drought Classification from Climate Data},
  author={Gottfriedsen, Julia and Berrendorf, Max and Gentine, Pierre and Reichstein, Markus and Weigel , Katja and Hassler, Birgit and Eyring, Veronika},
  booktitle={NeurIPS 2021 Workshop on Tackling Climate Change with Machine Learning},
  url={https://www.climatechange.ai/papers/neurips2021/14},
  year={2021}
}

Abstract

Climate change is expected to increase the likelihood of drought events, with severe implications for food security. Unlike other natural disasters, droughts have a slow onset and depend on various external factors, making drought detection in climate data difficult. In contrast to existing works that rely on simple relative drought indices as ground-truth data, we build upon soil moisture index (SMI) obtained from a hydrological model. This index is directly related to insufficiently available water to vegetation. Given ERA5-Land climate input data of six months with landuse information from MODIS satellite observation, we compare different models with and without sequential inductive bias in classifying droughts based on SMI. We use PR-AUC as the evaluation measure to account for the class imbalance and obtain promising results despite a challenging time-based split. We further show in an ablation study that the models retain their predictive capabilities given input data of coarser resolutions, as frequently encountered in climate models.

Overview

Data

Monthly mean data from 1981 - 2020, limited by the ERA5 Land and SMI data availability.

  1. Ground Truth Labels

  2. Input data:

    • Germany, ERA5 Land monthly, available cds
    • MODIS landcover data, available via cds

Data Preprocessing

Note: work in progress as of Dec 2021

label derivation

Thresholding illustration of the UFZ Soil moisture data from continuous SMI values to a binary drought signal


Usage

Install package in drought_prediction folder:

pip install -e .

Usage of the drought module:

Usage: drought [OPTIONS] COMMAND [ARGS]...

  The main entry point.

Options:
  --help  Show this message and exit.

Commands:
  preprocess  Data preprocessing.
  train       Train a single model.
  tune        Run hyperparameter optimization.

Examples

Note: work in progress as of Dec 2021

Download ERA5 Land variables.

Timerange: from 1981 to 2020.
If no output-path, Path: "drought" / "raw" / "era5" will be created.
You need to have cds credentials as a .cdsapric file on your machine under home/user.

drought preprocess era5 
--start-year 1981 
--end-year 2020 

Train a single sklearn model.

The dataset is expected to be named 'training_dataset.nc'

drought train sklearn  
--model LinearSVC
--data-root %root-directory-containing-netcdf-training-file%

Run Hyperparameter Optimisation with raytune on a keras model.

drought tune keras
--model "lstm"
--num-folds 5
--data-root %root-directory-containing-netcdf-training-file%

Authors

Julia Gottfriedsen
Max Berrendorf (@mberr)