NCAR / wrfcloud

WRF Cloud Framework
Apache License 2.0
14 stars 6 forks source link

Run geogrid.exe #111

Closed fossell closed 1 year ago

fossell commented 1 year ago

Describe the New Feature

Users will be able to upload namelist files to create new configurations. If it's new and the geo_em files don't already exist on the S3 bucket, then use the system to run geogrid.exe and upload the geo_em files to the S3 bucket. Makes Issue #44 obsolete.

Acceptance Testing

Given new namelists, run and upload to S3. Launch of new forecast with that config should work.

Time Estimate

3 days

Sub-Issues

Consider breaking the new feature down into sub-issues.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Define the Metadata

Assignee

Labels

Projects and Milestone

New Feature Checklist

fossell commented 1 year ago

Running geogrid should be done in wrfcloud/runtime module by creating a new geogrid.py script. Steps for running geogrid are outlined below.

On cluster, WPS source code resides in ~/ and work is done on /data.

mkdir geogrid/  # The directory is defined in runtime/__init__.py and actually created in geogrid.py
cd geogrid/ 
cp ~/WPS/geogrid/geogrid.exe .  # WPS is already built in the AMI, just need to put executable in proper place
ln ~/WPS/geogrid .  # Need to link in some supporting files
cp ~/WPS/util/plotgrids.ncl . (?). # Optional for plotting, currently don't have NCL on AMI, so skip this for now

wget  https://www2.mmm.ucar.edu/wrf/src/wps_files/geog_high_res_mandatory.tar.gz. # Static terrestrial data for grid
[2.6GB compressed / 29 GB uncompressed]

tar xzf geog_high_res_mandatory.tar.gz
[unpacks to WPS_GEOG directory]

cp namelist.wps .  # This will come from the API somewhere? Or on S3 or as something else?
Edit namelist.wps
     geog_data_path = './WPS_GEOG/' # This one is could come in incorrect from user, need to ensure it matches our naming and path conventions. runtime/tools has starting of functions to replace/edit namelists

Run geogrid
./geogrid.exe >& geogrid.log &

This is what a namelist.wps looks like and the basic info that is needed. Right now, this file should come from the user and we just ensure geog_data_path is correct.

&share
 wrf_core = 'ARW',
 max_dom = 2,
 start_date = '2008-03-24_12:00:00','2008-03-24_12:00:00',
 end_date   = '2008-03-24_18:00:00','2008-03-24_12:00:00',
 interval_seconds = 21600,
 io_form_geogrid = 2
/

&geogrid
 parent_id         =   1,   1,
 parent_grid_ratio =   1,   3,
 i_parent_start    =   1,  31,
 j_parent_start    =   1,  17,
 e_we              =  74, 112,
 e_sn              =  61,  97,
 geog_data_res     = 'default','default',
 dx = 30000,
 dy = 30000,
 map_proj = 'lambert',
 ref_lat   = 34.83,
 ref_lon   = -81.03,
 truelat1  =  30.0,
 truelat2  =  60.0,
 stand_lon = -98.,
 geog_data_path = '/mmm/users/wrfhelp/WPS_GEOG/'
/