Forecast Sensitivity to Observations
References: This year's brief introduction (slide 24)A more comprehensive presentation from 2014FSO documentation (a bit dated, but contains a lot of extra, useful information)
Source code
WRFDA and WRFPLUS are needed for this practice.
Get the pre-compiled WRFDA and WRFPLUS from /classroom/wrfhelp/PRE_COMPILED/WRFDA. This is the only exercise where WRFPLUS is directly needed, so make sure you copy that pre-compiled code to your working directory as well.
The FSO data, including the main script, can be found in /classroom/wrfhelp/DATA/WRFDA/FSO
wrapper_run_fso.ksh is the main script that will be used in this practice.
The wrapper_run_fso.ksh calls several other scripts that are in the /classroom/wrfhelp/DATA/WRFDA/TOOLS/scripts and /classroom/wrfhelp/DATA/WRFDA/TOOLS/graphics/ncl directories. This scripts are part of the WRFDA TOOLS package, which is not part of the main WRFDA source code; if you are working from home, you will have to download the TOOLS package separately.
For example,
scripts/da_run_sensitivity.ksh
scripts/da_run_wrf.ksh
scripts/da_run_wrfvar.ksh
graphics/ncl/adj_forcing.ncl
graphics/ncl/adj_diagnostic.ncl
are some of the scripts involved in the FSO procedures.
The whole scripting suite is quite complicated and might take some time for first users to get familiar with and to be able to apply to their own applications.
Steps
Create a working directory for this practice.
mkdir /classroom/users/$USER/DA/FSO
cd /classroom/users/$USER/DA/FSO
You will need to copy the FSO script and test data for this exercise
cp -r /classroom/wrfhelp/DATA/WRFDA/FSO/* .
Edit wrapper_run_fso.ksh to set up the options for a regular WRFDA run.
......
export RUN_WRFVAR=true
export RUN_UPDATE_BC=true
And ensure the following lines are commented (with a "#" at the beginning of the line):
export INITIAL_DATE=2007010100
export FINAL_DATE=2007010112
#export RUN_ADJ_SENS=false
#export RUN_OBS_IMPACT=false
#export NL_USE_LANCZOS=true
#export NL_WRITE_LANCZOS=true
#export NL_EPS=1E-5
......
export NUM_PROCS=6
......
export INITIAL_DATE=2007010100
export FINAL_DATE=2007010112
......
export REL_DIR=/classroom/users/$USER/DA/
export DAT_DIR=$REL_DIR/FSO
export WRFPLUS_DIR=$REL_DIR/WRFPLUSV3
export WRFVAR_DIR=$REL_DIR/WRFDA
export WRFNL_DIR=$WRFPLUS_DIR
export TOOLS_DIR=/classroom/wrfhelp/DATA/WRFDA/TOOLS/
export SCRIPTS_DIR=$TOOLS_DIR/scripts
export GRAPHICS_DIR=$TOOLS_DIR/graphics/ncl
export BUILD_DIR=$WRFVAR_DIR/var/build
export REG_DIR=$DAT_DIR
export RUN_DIR=$REG_DIR/run # where the script will produce output
export FC_DIR=${RUN_DIR}/fc
Note: The following variables should be set in the "domain" section for the tutorial case, but not for data from WRF V3.5 or later.
export NL_I_PARENT_START=0
export NL_J_PARENT_START=0
Execute the script. This part should take less than a minute.
./wrapper_run_fso.ksh
After the script finishes, a file in your working directory (/classroom/users/$USER/DA/FSO/run) will indicate whether the run was successful or not (a blank file will exist, either named "FAIL" or "SUCCESS"). If the run was successful, edit wrapper_run_fso.ksh again, and change the following settings to do sensitivity and observation impact runs:
......
export RUN_WRFVAR=false
export RUN_UPDATE_BC=false
export RUN_ADJ_SENS=true
export RUN_OBS_IMPACT=true
And uncomment the lines directly below:
export NL_USE_LANCZOS=true
export NL_WRITE_LANCZOS=true
export NL_EPS=1E-5
.....
Execute the script again. This part will take a bit longer; about 5-10 minutes.
./wrapper_run_fso.ksh
Check Output
NOTE: The error trapping in FSO is not perfect, so for certain problems the system may still report "SUCCESS". Make sure all the files below were created, or else you may have set some variables incorrectly.
/classroom/users/$USER/DA/FSO/run/2007010100/sensitivity/ad_d01_2007010100 is the gradient of the forecast error norm to the initial conditions. You can quickly view this file using ncview to ensure there is nothing strange going on (the TL/A variables should look like this, while the NL variables should look like this).
/classroom/users/$USER/DA/FSO/run/2007010100/sensitivity/index.html contains the text output from running var/graphics/ncl/adj_diagnostics.ncl to get the diagnostics of error reduction in the forecasts from Xb (background) to Xa (analysis).
/classroom/users/$USER/DA/FSO/run/2007010100/obsimpact/rsl.out.0000 contains the cumulated impact of each observation type on the forecast errors.
There are some ncl scripts provided in FSO/plot. Try modifying the initial values to get the plots to work for yourself:
plot_gts_omb_oma.ncl will output plots of the observations used for the experiment by type and pressure level.
plot_impact_by_obsnum_time_average.ncl will create the file "impact_by_obs2007010100-2007010112.pdf". Use "display" to view this file, which will show the observation impact on the forecast by observation type. If all has gone well, your plot should look like the one at right:
plot_levs_impact.ncl will create the file "multi_levs_sound_2007010100.pdf". Use "display" to view this file, which will show the observation impact on the forecast by observation type at each vertical level.
|
![](images/impact_by_obs2007010100-2007010112-0.png) |
|