Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lewisjared/wrfconf

Generate configuration files for WRF from YAML
https://github.com/lewisjared/wrfconf

configuration namelist wrf

Last synced: 4 months ago
JSON representation

Generate configuration files for WRF from YAML

Awesome Lists containing this project

README

        

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: [email protected]
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