Skip to content

geogate-io/HAOCM-R

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HAOCM-R

DOI

The HAOCM-R modeling system is a hybrid modeling application that combines a DL weather model with a physical ocean model (Regional Ocean Modeling System)

Configuration

The predefined configuration uses the ROMS Hurricane Irene configuration. The detailed information about configuration can be found in the ROMS Idealized and Realistic Test Cases repository. More information about the Regional Ocean Modeling System (ROMS) can be found on its wiki page.

Fig01

Usage

Cloning Repository

The HAOCM-R modeling system includes two sub-components: (1) GeoGate (as data producer) and (2) the Regional Ocean Modeling System (ROMS) ocean model component. To clone the repository, the following command can be used:

$ git clone --recursive https://github.com/geogate-io/HAOCM-R

Installing Dependencies

The software dependencies to run the HAOCM-R application can be installed using Conda and Spack package managers. The dependencies are already installed on NCAR's Derecho HPC platform and can be accessed in the /glade/work/turuncu/ML/envs/spack-1.0.2/var/spack/environments/myenv directory. More information about creating a run environment from scratch can be found in the GeoGateApps prototype application repository, specifically in the PythonSendCatalystRecv readme file.

Building Model

To build the Hurricane Irene configuration on NCAR's Derecho machine, the build.sh script can be used. The script relies on a pre-installed Spack environment and uses the derecho_env_gnu.sh file to load required modules.

$ cd HAOCM-R
$ ./build.sh

Once it is successfully built, the executable for the coupled application (esmx_app) can be found in the install/bin directory.

Supported Configurations

One-way Coupled

The one-way coupled configurations are used to force the underlying ocean component (ROMS) without receiving any feedback from it.

a. ERA5 (0.25 deg)

This configuration uses ERA5 data found in the ROMS Idealized and Realistic Test Cases repository. The GeoGate Python plugin is used to trigger data_era5.py to populate GeoGate's export state and pass the information to the ROMS ocean model.

b. GraphCast Operational (0.25 deg)

The GraphCastOperational model is a high-resolution model (0.25 degree resolution, 13 pressure levels) pre-trained on ERA5 data from 1979 to 2017 and fine-tuned on HRES data from 2016 to 2021.

The GraphCastOperational model does not provide all the variables needed to force the ROMS ocean model. Therefore, variables such as net shortwave radiation, downwelling longwave radiation, and surface relative humidity are sourced directly from the ERA5 dataset to meet these requirements. There are plans to enhance GraphCast by incorporating the missing variables, either through fine-tuning or by utilizing another AI/ML-based weather model that supplies all necessary variables and interacts with the ocean component by exchanging sea surface temperature (SST) data as well.

To run this configuration, the PythonScripts and ExportMeshFile options need to be set as follows in the esmxRun.yaml configuration file.

PythonScripts: data_graphcast_operational.py

Two-way Coupled

In this configuration, the interactions between model components (DL Weather and ROMS Ocean models) are two-way. The DL Weather provides atmospheric forcing to the ocean component (ROMS) and receives sea surface temperature (SST) to use it to make more accurate predictions. This configuration represents the complex and non-linear two-way interaction.

a. Aurora (0.25 deg)

Aurora is a machine learning model that can predict atmospheric variables, such as temperature. It is a foundation model, which means that it was first generally trained on a lot of data, and then can adapted to specialised atmospheric forecasting tasks with relatively little data. Mor information about the model can be found in here. The detailed instructions to use the coupled configuration can be found in following subsections.

Prepare Input for Aurora Model

To download ERA5 data for the Aurora Model, you can use the get_data.py script. Please note that this script requires the cdsapi module to retrieve data from the Copernicus Climate Data Store (CDS). For more information on how to install the necessary module and configure your user settings, please refer to the instructions here.

The original dataset requires post-processing to ensure compatibility with Aurora's BatchDataset class used in the prediction script to read input data in an efficient way. For this purpose, the split.py script can be used.

Running Model

Once the configuration is compiled successfully, it can be run by using the job submission script (NCAR Derecho, job_card.derecho). The job can be submitted by using following command,

$ qsub job_card.derecho

To run GraphCast models on GPU, the job submission script can be modified to request GPU resources as follows:

...
#PBS -q main
#PBS -l select=1:ncpus=2:mpiprocs=2:ompthreads=1:ngpus=1
#PBS -l walltime=03:00:00
...

References

The GraphCast configurations use NVIDIA's Earth2Studio toolkit to run available GraphCast models (Lam et al., 2023).

About

HAOCM-R: Hybrid Atmosphere-Ocean Coupled Model (Regional)

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages