page header
 

Forecast Sensitivity to Observations

 

References:

  • This year's brief introduction (slide 24)
  • A more comprehensive presentation from 2014
  • FSO 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.

  • back to top
     
    practice_page_header