Follow Dockerfile
to setup a container environment for NVIDIA GPUs.
Setup a Google Cloud Storage key named gcs_key.json
and put it at GraphCast_src/
Execute python3 GraphCast_src/graphcast_runner.py --resolution .25 --pressure_levels 13 --autoregressive_steps 8 --test_year_start 1977 --test_year_end 2016
and python3 GraphCast_src/graphcast_runner.py --resolution .25 --pressure_levels 13 --autoregressive_steps 1 --test_year_start 1977 --test_year_end 2016
to generate 48h and 6h GraphCast forecast data need for training the diffusion model.
Visit: https://console.cloud.google.com/storage/browser/dm_graphcast and download GraphCast_operational - ERA5-HRES 1979-2021 - resolution 0.25 - pressure levels 13 - mesh 2to6 - precipitation output only.npz
under params
folder and the whole stats
folder.
Execute python3 DiffDA/train_conditional_graphcast.py
and pass in required arguments (hyperparameters, ERA5, forecast data path, etc.)
- Execute
python3 DiffDA/inference_data_assimilation.py --num_autoregressive_steps=1 ...
to run single step data assimilation - Execute
python3 DiffDA/inference_data_assimilation.py --num_autoregressive_steps=n ...
(n > 2) to run autoregressive data assimilation - Execute
python3 DiffDA/inference_data_assimilation_gc.py --num_autoregressive_steps=n ...
to run (autoregressive) GraphCast forecast on single step assimilated data
GraphCast_src/graphcast/normalization.py
: ddpm and repaint algorithm for inferenceDiffDA/train_conditional_graphcast.py
: training diffusion model with GraphCast as backboneDiffDA/inference_data_assimilation.py
: run single step & autoregressive data assimilationDiffDA/inference_data_assimilation_gc.py
: run GraphCast forecast on single step assimilated data