Skip to content

PREP-NexT/DOMINO-SEE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOMINO-SEE logo

Build GitHub contributors GitHub issues Twitter Follow License Download

Overview | How to Use? | Prerequisites | Run Scripts | Contact Us

Overview

DOMINO-SEE (Detection Of Multi-layer INterconnected Occurrences for Spatial Extreme Events) is a data-driven statistical framework for detecting spatially co-occurrences of hydroclimatic extreme events across locations, inspired by complex network science, powered by xarray architecture. It's developed by Hui-Min Wang and Xiaogang He from the PREP-NexT Lab at the National University of Singapore.

This project is licensed under the GNU General Public License 2.0.

Why the Name?

The name DOMINO-SEE represents our approach to detecting and analyzing interconnected occurrences of hydroclimatic extreme events across spatial locations, inspired by the cascade effect of DOMINOes falling in a chain reaction. The SEE highlights the framework's ability to capture the spatial synchronization and propagation of extreme events, emphasizing the interconnectedness inherent in complex environmental systems.

How to Use?

This repository stores the code for reproducing the results in the paper. A more general repository for constructing event-based climate networks using xarray can be found here.

Prerequisites

This section includes a brief tutorial on running your first DOMINO-SEE model.

  1. Clone the repo
git clone https://github.com/PREP-NexT/DOMINO-SEE.git
  1. Install the dependencies
cd DOMINO-SEE
conda env create -f environment.yml
conda activate DOMINO-SEE
  1. Prepare the data
  • SPI1 data: placed at 0data/SPI1_monthly_0.250deg_1950_2016.nc.
  • A boolean array of valid points with monthly precipitation data > 100mm: placed at 0data/prcpfkt_validpoint_annual_100.npy.
  • SST data: placed at 0data/sst.mnmean.nc.

Run scripts

The scripts should be run in the following order:

1. 0spi_events.py

Loads SPI (Standardized Precipitation Index) data and identifies drought/flood events based on predefined thresholds (e.g., SPI ≤ -1.5 for drought, SPI ≥ 1.5 for flood). Calculates event timing, bursts, and durations, and saves results in 1events/.

2. 1eca_rate.py

Implements Event Coincidence Analysis (ECA) to detect synchronous events across different locations, which are saved in 2eca/.

3. 1eca_null.py

Generates a null model distribution for statistical significance testing of ECA, which are saved in 2eca/null/.

4. 1eca_sig.py

Compares actual Event Coincidence Analysis results against the null model to identify statistically significant coincidence rates, which are saved in 3link/.

5. 2link_network.py

Constructs a network from significant ECA links and calculates the great circle distances between connected locations. Separates links into teleconnections (≥2500km) and short-range connections (<2500km).

6. 3bipartite_network.py

Analyzes teleconnection networks between different geographical regions using kernel density estimation. Identifies significant spatial link densities and linked regional bundles between regions.

The plotting functions are also available as follows:

  • plot_event_number.ipynb - Plots the annual mean number of drought/flood events across the global domain.

  • plot_link_distance_compare.py - Compares the distance distributions of links across different network types (drought-drought, pluvial-pluvial, drought-pluvial).

  • plot_global_degree_tele.py - Produces maps of teleconnection network links (≥ 2500km) showing the spatial distribution of long-distance connections.

  • plot_global_degree_short.py - Generates maps of short-distance network connections (< 2500km) showing the spatial distribution of link densities for drought and pluvial networks.

  • plot_crop_region.py - Creates visualizations of specific geographical regions for detailed analysis of climate patterns.

  • plot_bipartite_network.py - Creates visualizations of teleconnection networks between different geographical regions, showing linked bundles and their spatial densities.

  • plot_pairwise_network_density.py - Visualizes the density of connections between specific regional pairs, highlighting the strength of climate teleconnections.

  • plot_SST.py - Visualizes sea surface temperature (SST) anomalies during synchronized climate events between different regions, with region boxes highlighting areas of interest.

Contact Us

If you have any questions, comments, or suggestions that aren't suitable for public discussion in the Issues section, please feel free to contact Hui-Min Wang.

Disclaimer

The DOMINO-SEE model is an academic project and is not intended to be used as a precise prediction tool for commercial or policy-making purposes without expert oversight. The developers will not be held liable for any decisions made based on the use of this model. We recommend applying it in conjunction with expert judgment and other modeling tools in a decision-making context.

About

Detection Of Multi-layer INterconnected Occurrences for Spatial Extreme Events

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •