A commandline tool for generating WRF configuration from structured YAML files.
The purpose of this package is to be able to easily generate WRF and WPS namelists in an extensible manner. Namelists are generated from configuration files which can be source controlled and include additional metadata not present in the namelist
wrfconf can be installed using pip:
pip install wrfconf
Before the WRF and WPS namelists can be generated, a yaml file describing the time, domain and physics settings. This can be generated using python or other scripting language or manually edited. Once you have a configuration file, namelist.input and namelist.wps can be generated by:
- ::
- wrfconf create ../examples/run.yml
An example YAML file is included in examples/run.yml:
--- meta: owner: Jared Lewis email: jared@jared.kiwi.nz run_name: test run_info: start_date: '2006-08-16_12:00:00' run_hours: 36 max_dom: 2 domain: parent_id: [1, 1] parent_grid_ratio: 1, 3, i_parent_start: 1, 34, j_parent_start: 1, 25, e_we: [ 85, 73] e_sn: [ 93, 79] dx: [36000, 12000] dy: [36000, 12000] map_proj: 'lambert' ref_lat: -41.276 ref_lon: 169.228 ref_x: 42.5 ref_y: 46.5 truelat1: -41.276 truelat2: -41.276 stand_lon: 169.228 geog_data_res: ['10m','2m'] wps: share: wrf_core: ARW interval_seconds: 10800 io_form_geogrid: 2 geogrid: geog_data_path: '/mnt/data/WRF/WPS_GEOG' opt_geogrid_tbl_path: 'geogrid/' ungrib: out_format: 'WPS' prefix: 'FILE' metgrid: fg_name: 'FILE' io_form_metgrid: 2 wrf: time_control: interval_seconds: 10800 input_from_file: [True, True, True, True] history_interval: [ 60, 60, 60, 60] frames_per_outfile: [ 1000, 1000, 1000, 1000] restart: False, restart_interval: 5000, io_form_history: 2 io_form_restart: 2 io_form_input: 2 io_form_boundary: 2 debug_level: 0 domains: time_step: 180 time_step_fract_num: 0 time_step_fract_den: 1 p_top_requested: 5000 num_metgrid_levels: 32 num_metgrid_soil_levels: 4 feedback: 1 smooth_option: 0 physics: mp_physics: [ 3, 3, 3, 3] ra_lw_physics: [ 1, 1, 1, 1] ra_sw_physics: [ 1, 1, 1, 1] radt: [ 30, 30, 30, 30] sf_sfclay_physics: [ 1, 1, 1, 1] sf_surface_physics: [ 2, 2, 2, 2] bl_pbl_physics: [ 1, 1, 1, 1] bldt: [ 0, 0, 0, 0] cu_physics: [ 1, 1, 0, 0] cudt: [ 5, 5, 5, 5] isfflx: 1, ifsnow: 1, icloud: 1, surface_input_source: 3, num_soil_layers: 4 num_land_cat: 21 sf_urban_physics: [ 0, 0, 0, 0] dynamics: w_damping: 0, diff_opt: [ 1, 1, 1, 1] km_opt: [ 4, 4, 4, 4] diff_6th_opt: [ 0, 0, 0, 0] diff_6th_factor: 0.12, 0.12, 0.12, 0.12 base_temp: 290. damp_opt: 0, zdamp: [5000., 5000., 5000., 5000.] dampcoef: [0.2, 0.2, 0.2, 0.2] khdif: [ 0, 0, 0, 0] kvdif: [ 0, 0, 0, 0] non_hydrostatic: [ True, True, True, True] moist_adv_opt: [ 1, 1, 1, 1] scalar_adv_opt: [ 1, 1, 1, 0] bdy_control: spec_bdy_width: 5, spec_zone: 1, relax_zone: 4, specified: [True, False,False,False] nested: [False, True, True,True] namelist_quilt: nio_tasks_per_group: 0, nio_groups: 1,
There are a number of top level keys in these configuration files:
This section includes metadata about the run and does not impact the generated namelists. Any valid YAML can be included in this section
Information specific to this particular run, such as the start time and length of run
Domain specific information
Override any attributes in the WPS file. This section follows the same structure and naming conventions as in a WPS file
Override any attributes in the WRF namelist. This section follows the same structure and naming conventions as in a WRF namelist file
git clone https://github.com/lewisjared/wrfconf.git cd wrfconf python setup.py develop