Skip to content

lewisjared/wrfconf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

wrfconf

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

Quick start

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

Configuration file

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:

meta

This section includes metadata about the run and does not impact the generated namelists. Any valid YAML can be included in this section

run_info

Information specific to this particular run, such as the start time and length of run

domain

Domain specific information

wps

Override any attributes in the WPS file. This section follows the same structure and naming conventions as in a WPS file

wrf

Override any attributes in the WRF namelist. This section follows the same structure and naming conventions as in a WRF namelist file

Development setup

git clone https://github.com/lewisjared/wrfconf.git
cd wrfconf
python setup.py develop

About

Generate configuration files for WRF from YAML

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages