Contact: | Tim Hoar |
Revision: | $Revision: 2819 $ |
Source: | $URL: http://subversion.ucar.edu/DAReS/DART/trunk/diagnostics/oned/obs_diag.html $ |
Change Date: | $Date: 2007-04-07 11:41:21 -0600 (Sat, 07 Apr 2007) $ |
Change history: | try "svn log" or "svn diff" |
Main program for observation-space diagnostics for the models with 1D locations. The model space is carved up into regions, hence the dependency on the location type. There is no discrimination between observation types, but the framework is still in the code - the main selection block is commented out. The result of the code is a set of ASCII files that contain the RMS of the bias and the RMS of the spread of the prior (aka 'guess') and posterior (aka 'analysis') estimates as a function of time and region. Separate (pairs of) files are created for each observation type in the observation sequence file.
The obs_diag program performs an outlier test on observations, which can be more restrictive than the outlier test in the filter, but not less (see outlier_threshold in filter_nml and rat_cri here).
The J release of DART also implements a DART QC flag that provides information about how the observation was or was not assimilated. The DART QC flag is intended to provide information about whether the observation was assimilated, evaluated only, whether the assimilation resulted in a 'good' observation, etc. Here is the table that should explain things:
DART QC flag value | meaning |
---|---|
0 | observation assimilated |
1 | observation evaluated only |
DART QC values higher than this means the prior and posterior are OK, but ... | |
2 | assimilated, but the posterior forward operator failed |
3 | Evaluated only, but the posterior forward operator failed |
DART QC values higher than this means only the prior is OK, but ... | |
4 | prior forward operator failed |
5 | not used because of namelist control |
DART QC values higher than this are bad news. | |
6 | prior QC rejected |
7 | outlier rejected |
8+ | reserved for future use |
The namelist contains several unused features that are simply used to facilitate the matlab plotting routines until such time as the output is reformatted to a netCDF file.
Optional namelist interface &obsdiag_nml may be read from file input.nml.
types_mod obs_sequence_mod obs_def_mod location_mod time_manager_mod utilities_mod
random_seq_mod random_nr_mod assim_model_mod model_mod
We adhere to the F90 standard of starting a namelist with an ampersand '&' and terminating with a slash '/'.
namelist / obsdiag_nml / & obs_sequence_name, iskip_days, obs_select, rat_cri, & input_qc_threshold, bin_width_sections, & lonlim1, lonlim2, reg_names, verbose
This namelist is read in a file called input.nml
Contents | Type | Description |
---|---|---|
obs_sequence_name | character(len=129) | Contains name of observation sequence file. Default is "obs_seq.final" |
iskip_days | integer | not used. Future plan is to provide the ability to
skip some time before accumulating statistics. Default is 0. |
obs_select | integer | not used. Future plan is to allow selection
of certain types of observations. Default is 1 -- all types used. |
rat_cri | real(r8) | Critical ratio of distance of the value of
observation from the ensemble mean to the standard
deviation of the ensemble. If this ratio is too large
then the observation is suspect and will be ignored.
If this value is larger than the corresponding one in
the filter, then it does nothing; that obs has already
been excluded by the filter. Default: 4.0 |
input_qc_threshold | real(r8) | This mimics the values used by NCEP for their nomenclature
for observation quality control. Any observation with a QC value
equal to or above the
input_qc_threshold is not included in the diagnostics. The total
number of rejected observations is reported as 'NbadQC' in the diagnostics
at the end of the run. Default is 4.0 |
bin_width_seconds | integer | Specifies the width of the analysis window. All observations within a window centered at the observation time +/- bin_width_seconds is used. Default is 0 - half the separation between observation times as defined in the observation sequence file is used (i.e. all observations used). |
lonlim1 | real(r8) array of length(4) | starting value of coordinates defining 'regions'.
A value of -1 indicates the start of 'no region'. Default is (/ 0.0, 0.0, 0.5, -1.0/) |
lonlim2 | real(r8) array of length(4) | ending value of coordinates defining 'regions'.
A value of -1 indicates the end of 'no region'. Default is (/ 1.0, 0.5, 1.0, -1.0/) |
reg_names | character(len=6), dimension(4) | Array of names for each of the regions.
The default example has the unit circle as a whole and divided
into two equal parts, so there are only three regions. Default: 'whole','yin','yang','bogus' |
verbose | logical | switch controlling amount of run-time output. Default is .false. (suppress most output) |
The output file names are based on the metadata for the observation types. If the observation sequence file contains observations of KIND_1D_INTEGRAL, you will get a pair of files: RAW_STATE_1D_INTEGRAL_ges_times.dat, and RAW_STATE_1D_INTEGRAL_anl_times.dat.
column 1 | day of observation |
column 2 | seconds of observation |
column 3 | rms of bias |
column 4 | rms of spread |
column 5 | number of observations |
Columns 3,4,5 are repeated for each region |
Routine | Message | Comment |
---|---|---|
get_last_obs | No "last" observation in sequence | Must have an incomplete observation sequence file. |
get_first_obs | No Observations in sequence. | Empty observation sequence file. |
Change output format to netCDF, eliminate reliance on ancillary plotting attributes file: ObsDiagAtts.m.