3DVAR Tutorial

d. 3DVAR – Run Pseudo Single Observation Test (PSOT)

(06/09/2003)

In this section, you will learn how to run 3DVAR using only a single “pseudo” (or “bogus”) observation.

By this stage you have successfully created the three input files (first guess fg, observation ob and background error statistics be in directory $DAT_DIR) required to run 3DVAR. Also, you have successfully downloaded and compiled the 3DVAR code. If this is correct, we are ready to learn how to run 3DVAR. If not, then you’ll need to return to the 3DVAR Tutorial Page to complete stages a. to c.

To view the MM5 format analysis output of 3DVAR, we make use of the MM5 GRAPH plotting package. You will need to download this and compile. To learn how to do this, visit the MM5 tutorial’s GRAPH tutorial and proceed up to the point at which you have compiled GRAPH in directory $DAT_DIR (i.e. the command make >& make.out & in the GRAPH tutorial). Tidy up $DAT_DIR with the command

rm GRAPH.TAR

1. What is a PSOT anyhow?

A pseudo single observation test (PSOT) involves the assimilation of a pseudo (or bogus) observation of one of the model variables (u, v, T, p, q) at a single point in the domain. In this case, the 3DVAR analysis is achieved in only 1 or 2 iterations. The purpose of these tests is a) To quickly check 3DVAR can run ok on your machine, and b) to illustrate the impact of the background error covariance (B) matrix.

The matrix B (info stored in derived data type be) performs two roles for a single observation. Firstly, the closeness of the fit to the analysis A to the observation O and background B is dictated by the background  and observation error variances according to

,         (1)

(Technical point: Equation (1) assumes a quadratic cost-function, as is the case in the current 3DVAR). Note the observation will be fitted exactly (i.e. O – A = 0) only when its observation error variance  is zero or the background error variance is infinite (this is never the case so do not judge the quality of an analysis by how closely it fits the observations – this is a very commonly made error!).

In addition to setting the relative weight of observation and background in the analysis via (1), the background error covariance also defines the response of the analysis away from the observation location in all variables (not just the observed one). In this experiment, we will illustrate this by running a PSOT, and making plots of the analysis increments (A - B) that are produced.

2. Required 3DVAR namelist changes

The number of parameters required to switch on the PSOT capability in 3DVAR is fairly small: basically 3DVAR needs to know where [location – grid x, y, and z values], what [variable – “u”, “v”, “T”, “p” or “q”], observation minus first-guess value (O-B, in units of variable) and how good [observation error standard deviation  in units of variable]. Also, you’ll need to switch all the “real” observations off.

The PSOT used in this tutorial is set up in DA_Run_3DVAR_PSOT.csh as an pressure innovation vector (O-B) of 1mb at grid point 40, 30, 31. An observation error standard deviation of 1mb is assigned.

You can see the namelist changes required by differencing the default script (DA_Run_3DVAR.csh) and PSOT script (DA_Run_3DVAR_PSOT.csh), i.e.

cd 3dvar/run

diff DA_Run_3DVAR.csh DA_Run_3DVAR_PSOT.csh > diff.out

To see the differences, type

cat diff.out

and you’ll see

52c52
< setenv RUN_ID 3DVAR.test                                     # Experiment identifier.
---
> setenv RUN_ID 3DVAR.PSOT.test                                # Experiment identifier.
153,161c153,161
< if ( ! $?DA_USE_SYNOPOBS )  set DA_USE_SYNOPOBS = .TRUE.   # True if SYNOP assimilated.
< if ( ! $?DA_USE_SHIPSOBS )  set DA_USE_SHIPSOBS = .TRUE.   # True if SHIPS assimilated.
< if ( ! $?DA_USE_METAROBS )  set DA_USE_METAROBS = .TRUE.   # True if METAR assimilated.
< if ( ! $?DA_USE_PILOTOBS )  set DA_USE_PILOTOBS = .TRUE.   # etc
< if ( ! $?DA_USE_SOUNDOBS )  set DA_USE_SOUNDOBS = .TRUE.
< if ( ! $?DA_USE_SATEMOBS )  set DA_USE_SATEMOBS = .TRUE.
< if ( ! $?DA_USE_SATOBOBS )  set DA_USE_SATOBOBS = .TRUE.
< if ( ! $?DA_USE_AIREPOBS )  set DA_USE_AIREPOBS = .TRUE.
< if ( ! $?DA_USE_GPSPWOBS )  set DA_USE_GPSPWOBS = .TRUE.
---
> if ( ! $?DA_USE_SYNOPOBS )  set DA_USE_SYNOPOBS = .FALSE.  # True if SYNOP assimilated.
> if ( ! $?DA_USE_SHIPSOBS )  set DA_USE_SHIPSOBS = .FALSE.  # True if SHIPS assimilated.
> if ( ! $?DA_USE_METAROBS )  set DA_USE_METAROBS = .FALSE.  # True if METAR assimilated.
> if ( ! $?DA_USE_PILOTOBS )  set DA_USE_PILOTOBS = .FALSE.  # etc
> if ( ! $?DA_USE_SOUNDOBS )  set DA_USE_SOUNDOBS = .FALSE.
> if ( ! $?DA_USE_SATEMOBS )  set DA_USE_SATEMOBS = .FALSE.
> if ( ! $?DA_USE_SATOBOBS )  set DA_USE_SATOBOBS = .FALSE.
> if ( ! $?DA_USE_AIREPOBS )  set DA_USE_AIREPOBS = .FALSE.
> if ( ! $?DA_USE_GPSPWOBS )  set DA_USE_GPSPWOBS = .FALSE.
164,166c164,166
< if ( ! $?DA_USE_SSMT1OBS ) set DA_USE_SSMT1OBS = .TRUE.
< if ( ! $?DA_USE_SSMT2OBS ) set DA_USE_SSMT2OBS = .TRUE.
< if ( ! $?DA_USE_QSCATOBS ) set DA_USE_QSCATOBS = .TRUE.
---
> if ( ! $?DA_USE_SSMT1OBS ) set DA_USE_SSMT1OBS = .FALSE.
> if ( ! $?DA_USE_SSMT2OBS ) set DA_USE_SSMT2OBS = .FALSE.
> if ( ! $?DA_USE_QSCATOBS ) set DA_USE_QSCATOBS = .FALSE.
222c222
< if ( ! $?DA_NUM_PSEUDO ) set DA_NUM_PSEUDO = 0              # Set to 1 for PSOT test.
---
> if ( ! $?DA_NUM_PSEUDO ) set DA_NUM_PSEUDO = 1              # Set to 1 for PSOT test.

 

3. Run 3DVAR

The only changes you need to make to the DA_Run_3DVAR_PSOT.csh script are to specify the DAT_DIR and RUN_DIR environment variables. Optionally, you can also change the RUN_ID variable. The script will then create a new subdirectory ${RUN_DIR}/${RUN_ID} in which 3DVAR will run - all output is directed there.

Once you have set the necessary environment variables, run 3DVAR by typing

DA_Run_3DVAR_PSOT.csh

in the 3dvar/run subdirectory.

Successful completion of the job results in a number of output diagnostics files in the ${RUN_DIR}/${RUN_ID} subdirectory.

4. View 3DVAR Analysis Increments

If you have not already done so, download and compile GRAPH.

As mentioned above, PSOTs are useful for illustrating the impact of background error covariances in 3DVAR. As an example, first cd to the GRAPH directory. Copy the g_plots.tbl file from ftp://ftp.ucar.edu/mesouser/mm53dvar/g_plots.tbl to your GRAPH directory. Then, to run GRAPH, type

graph.csh 1 1 ${RUN_DIR}/${RUN_ID}/DAProg_3DVAR.analincs

where ${RUN_DIR}/${RUN_ID} is the directory containing your output. On successful completion, a file “gmeta” will be produced containing plots of the 3DVAR analysis increments. This can be viewed by typing

idt gmeta

The file contains plots of temperature and pressure increments due to the single O-B=1mb pressure differences used in this PSOT. A vertical cross-section resulting from the pressure PSOT is shown below:

Note the three-dimensional, multivariate response. In future versions of 3DVAR, this response will be flow-dependent (i.e. vary from day to day depending on the current weather).

To save the gmeta file for this PSOT, type

cp gmeta ${DAT_DIR}/gmeta.psot

PSOTs are very instructive in helping you understand how a data assimilation system uses observations. It is suggested that you now take some time to run other PSOTs to help you get familiar with the 3DVAR script (don’t forget to change RUN_ID if you want to save each PSOT), namelist and to probe how 3DVAR uses various types of conventional observation variables.

 

Example 1 – Move the location of the PSOT to x = 20, y = 20, k=15.

Example 2 – Create a wind (e.g. u) PSOT instead of a pressure PSOT.

Example 3 – Halve the observation error standard deviation and note how the observation is fitted more closely (the analysis increment is larger). Can you confirm equation (1) holds for your tests?

Example 4 - Modify the background error length scales (len_scaling1-5) and note how the area of influence of the observation changes.

5. What next?

Having played with 3DVAR and a single observation, let’s try a case with thousands of observations:

e) 3DVAR – Run Case Study

 


Miscellanies: 


Trouble Shooting: If you have questions, ask mesouser.


 

Return to 3DVAR Tutorial Page