Skip to content

PatrickESA/StormSurgeCastNet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Implicit Assimilation of Sparse In Situ Data for Dense & Global Storm Surge Forecasting

banner

This is the official repository for the storm surge forecasting work of Ebel et al (2024), featuring the curation of a global and multi-decadal dataset of extreme weather induced storm surges as well as the implementation of neural networks for addressing the associated forecasting task. The provided dataset is multi-modal and features preprocessed in-situ tide gauge records as well as atmospheric reanalysis products and ocean state simulations. The models applied in this work learn to fuse the sparse yet accurate in-situ measurements with the global ocean and atmosphere state products. This way, more accurate storm surge forecasts are achieved, with predictions broadcasted to sites missing well-maintained tidal gauge infrastructure.


This repository contains code accompanying the paper

P. Ebel, B. Victor, P. Naylor, G. Meoni, F. Serva, R. Schneider Implicit Assimilation of Sparse In Situ Data for Dense & Global Storm Surge Forecasting. Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops, 2024.

For additional information:


Image

Installation

Code

Clone the repository and change into the created folder:

git clone https://github.com/PatrickESA/StormSurgeCastNet.git
cd StormSurgeCastNet

Set up a conda environment as follows:

conda env create -p envs/surgecast --file environment.yml 
conda activate envs/surgecast

The code is written in Python 3 and uses PyTorch 2.0. It is strongly recommended to run the code with CUDA and GPU support. The code has been developed and deployed in Ubuntu 20 LTS and should be able to run in any comparable OS.

Data

Create an account on the Copernicus CDS platform and install the API for data access. Download (parts of) the needed data

python ./utils/download_data.py

This contains data from Copernicus CDS as well as from the publication's acccompanying Zenodo repository. Subsequently place all data into a desired directory $DATADIR, which you can later point all scripts towards via the flag --root $DATADIR.


Usage

You can train a new model via

python train.py --experiment_name myFirstRun --root $DATADIR --weight_folder ./results --model utae 

and you can test a (pre-)trained model via

python test.py --experiment_name myFirstRun --root $DATADIR --weight_folder ./results

For a list and description of other useful flags (e.g. --hyperlocal, --input_t, --lead_time), please see the parser file ./parse_args.py. You can find pre-trained models here.


References

If you use this code, our models or data set for your research, please cite this publication:

@inproceedings{StormSurgeCastNet,
        title = {{Implicit Assimilation of Sparse In Situ Data for Dense & Global Storm Surge Forecasting}},
        author = {Ebel, Patrick and Victor, Brandon and Naylor, Peter and Meoni, Gabriele and Serva, Federico and Schneider, Rochelle},
        booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops},
        year = {2024},
        organization = {IEEE},
        url = {"https://openaccess.thecvf.com/content/CVPR2024W/EarthVision/html/Ebel_Implicit_Assimilation_of_Sparse_In_Situ_Data_for_Dense__CVPRW_2024_paper.html"}
} 

Credits

This code was originally based on the UTAE, the UnCRtainTS and the re-implemented MetNet3 repositories. Thanks for making your code publicly available! We hope this repository will equally contribute to the development of future exciting work.