1 ETKF Data Assimilation in WRFDA
3 The ETKF system updates the ensemble perturbations.
5 Please refer to Bishop et al. (2001) and Wang et al. (2003) for a detailed description of the methodology.
9 Three executables are used in the ETKF system:
11 WRFDA/var/build/gen_be_etkf.exe
12 -Used to update the ensemble perturbations
14 WRFDA/var/build/gen_be_addmean.exe
15 -Used to combine the emsemble mean (can be updated by Hybrid)
17 WRFDA/var/build/da_wrfvar.exe
18 -Main WRFDA executable, used to create filtered observations and prepare formatted omb files for ETKF.
20 If one or more of these programs is missing, check your compilation log.
22 b. Running The ETKF System
24 A set of initial ensemble members must be prepared before the ETKF application can be started; this ensemble
25 can be obtained from previous ensemble forecast. A tutorial case with a test ensemble can be found at
26 http://www2.mmm.ucar.edu/wrf/users/wrfda/download/wrfda_hybrid_etkf_testdata.tar.gz. In this example, the
27 ensemble forecasts were initialized at 2006102712 and valid 2006102800. ETKF will be performed using the
28 ensemble valid 2006102800 as input. Once you have the initial ensemble, the ensemble perturbations can be
29 updated by following the steps below:
31 1) Set an environment variable for your working directory and your data directory
33 > setenv WORK_DIR_ETKF your_etkf_path
34 > setenv DAT_DIR your_data_path
37 2) Prepare filtered observations
39 a) In your ETKF working directory, make a subdirectory to prepare the filtered observations and link
40 all the necessary files and directories as follows:
44 > ln -fs $DAT_DIR/Hybrid/fc/2006102712/wrfout_d01_2006-10-28_00:00:00.mean ./fg (first guess is the ensemble mean)
45 > ln -fs $WRFDA_DIR/run/LANDUSE.TBL .
46 > ln -fs $DAT_DIR/Hybrid/ob/2006102800/ob.ascii ./ob.ascii (or ob.bufr)
47 > ln -fs $DAT_DIR/Hybrid/be/be.dat ./be.dat
48 > ln -fs $WRFDA_DIR/var/build/da_wrfvar.exe .
49 > cp $DAT_DIR/ETKF/namelist.input .
51 b) Edit namelist.input, paying special attention to the following 'QC-OBS'-related settings:
54 analysis_type = 'QC-OBS',
56 c) Execute the WRFDA file, running in QC-OBS mode
58 > ./da_wrfvar.exe >&! wrfda.log
60 d) Check the output files. The output file lists are the same as for running WRFDA-3DVAR, and
61 'filtered_obs_01' is a file containing the filtered observations.
63 3) Prepare omb files for ETKF
65 a) In your ETKF working directory, make a sub directory to prepare the omb files for each ensemble
66 member and link all the necessary files and directories as follows:
69 > mkdir -p omb/working.e001
71 > ln -fs $DAT_DIR/Hybrid/fc/2006102712/wrfout_d01_2006-10-28_00:00:00.e001 ./fg (first guess is the ensemble member)
72 > ln -fs $WRFDA_DIR/run/LANDUSE.TBL .
73 > ln -fs $WORK_DIR_ETKF/obs_filter/filtered_obs_01 ./ob.ascii
74 > ln -fs $DAT_DIR/Hybrid/be/be.dat ./be.dat
75 > ln -fs $WRFDA_DIR/var/build/da_wrfvar.exe .
76 > cp $DAT_DIR/ETKF/namelist.input .
78 b) Edit namelist.input, paying special attention to the following 'VERIFY'-related settings:
81 analysis_type = 'VERIFY',
83 c) Execute the WRFDA file, running in VERIFY mode
85 > ./da_wrfvar.exe >&! wrfda.log
87 d) Check the output files. Again, the output file lists are the same as for running WRFDA-3DVAR/ The
88 'ob.etkf.0*' files contain the filtered observations.
90 e) Combine the ob.etkf.0* files and add the number index in the head of ob.etkf.e0*
92 > cat ob.etkf.0* > ob.all
93 > wc -l ob.all > ob.etkf.e001
94 > cat ob.all >> ob.etkf.e001
96 f) Likewise, prepare ob.etkf.e0* files for other ensemble members
100 a) Copy or link the ensemble mean and forecasts and ob.etkf.e0* files to your working directory.
101 and make a directory to save the parameter files.
102 > setenv PAR_DIR_ETKF your_parameter_path
104 > ln -sf $DAT_DIR/Hybrid/fc/2006102712/wrfout_d01_2006-10-28_00:00:00.mean ./etkf_input
105 > ln -sf $DAT_DIR/Hybrid/fc/2006102712/wrfout_d01_2006-10-28_00:00:00.e001 ./etkf_input.e001
107 > ln -sf $DAT_DIR/Hybrid/fc/2006102712/wrfout_d01_2006-10-28_00:00:00.e010 ./etkf_input.e010
109 > ln -sf omb/working.e001/ob.etkf.e001 .
111 > ln -sf omb/working.e010/ob.etkf.e010 .
113 b) Provide template files. These files will be overwritten with the ensemble perturbations.
115 > cp $DAT_DIR/Hybrid/fc/2006102712/wrfout_d01_2006-10-28_00:00:00.e001 ./etkf_output.e001
117 > cp $DAT_DIR/Hybrid/fc/2006102712/wrfout_d01_2006-10-28_00:00:00.e010 ./etkf_output.e010
119 c) Copy gen_be_etkf_nl.nl (cp $DAT_DIR/ETKF/gen_be_etkf_nl.nl .)
120 You will need to set the information in this script as follows:
125 cv = 'U', 'V', 'W', 'PH', 'T', 'QVAPOR', 'MU',
133 infl_fac_file = '$PAR_DIR_ETKF/inflation_factor.dat',
134 infl_let_file = '$PAR_DIR_ETKF/inflation_letkf.dat',
135 eigen_val_file = '$PAR_DIR_ETKF/eigen_value.dat',
136 inno2_val_file = '$PAR_DIR_ETKF/innovation_value.dat',
137 proj2_val_file = '$PAR_DIR_ETKF/projection_value.dat',
138 infl_fac_TRNK = .false.,
139 infl_fac_WG03 = .false.,
140 infl_fac_WG07 = .true.,
141 infl_fac_BOWL = .false.,
144 rnd_seed = 2006102800,
147 etkf_erro_min = .00001
149 etkf_inno_min = .00001
150 etkf_erro_flg = .true.
151 etkf_inno_flg = .true.
154 'num_members' is the ensemble size (number of ensemble members)
155 'nv' is the number of variables
156 'cv' is a vector of strings containing the names of variables
157 'naccumt1' and 'naccumt2' are number of previous cycles used to account for inflation and rho factor.
158 'nstartaccum1' is the cycle from which naccumt1 cycle starts.
159 'nstartaccum2' is the cycle from which naccumt2 cycle starts.
160 'nout' is the cycle index.
161 'tainflatinput' and 'rhoinput' are prescribeld factors for inflation and rho factor.
162 'infl_let_file', 'eigen_val_file', 'inno2_val_file', and 'proj2_val_file' are files to save template parameters
163 'infl_fac_TRNK', 'infl_fac_WG03', 'nfl_fac_WG07', and 'nfl_fac_BOWL' are options for different adaptive
165 'rand_filt', 'rnd_seed', and 'rnd_nobs' are options for using filtered and random observations.
166 'etkf_erro_max', 'etkf_erro_min', 'etkf_inno_max', 'etkf_inno_min', 'etkf_erro_flg', 'etkf_inno_flg', and
167 'etkf_wrfda' are options to conduct further observation filtering.
169 d) Link gen_be_etkf.exe to your working directory and run it.
171 > ln -sf $WRFDA_DIR/var/build/gen_be_etkf.exe .
174 e) Check the output files. etkf_output.* files are updated ensemble pertubations.
178 5) Add updated ensemble perturbations to ensemble mean get new emsemble members
181 a) Copy add_mean_nl.nl (cp $DAT_DIR/ETKF/add_mean_nl.nl .)
182 You will need to set the information in this script as follows for each member:
185 cv = 'U', 'V', 'W', 'PH', 'T', 'QVAPOR', 'MU'
187 path = '$WORK_DIR_ETKF'
188 file_mean = 'etkf_input'
189 file_pert = 'etkf_output.e001' (for each member, etkf_output.e0*...)
191 b) Run gen_add_mean.exe.
193 > ln -sf WRFDA/var/build/gen_add_mean.exe .
196 c) Check the output files. etkf_output.e0* files are the new ensemble members.