2. /home/jla/tut_section16.fm 2 3/27/07
DART Diagnostic Output Categories:
1. State space:
Values of models state vector.
Output using netCDF format.
2. Observation space:
Values of the observations.
DART specific obs_sequence format for now.
3. Regression confidence factor:
Values for state vector / observation pairs.
Output as flat ascii (soon to be netCDF).
4. Program diagnostic output:
Identification for source code version and namelist values.
Error, warning, message output from modules.
3. /home/jla/tut_section16.fm 3 3/27/07
State Space Diagnostic Files:
Available in netCDF (common data format)
(http://my.unidata.ucar.edu/content/software/netcdf/index.html).
1. Prior state (Prior_Diag.nc): state before assimilation.
2. Posterior state (Posterior_Diag.nc): state after assimilation.
3. Truth (True_State.nc): truth for OSSEs.
Contents of prior and posterior controlled by filter_nml:
1. output_state_ens_mean = .true., (include ensemble mean);
2. output_state_ens_spread = .true., (include ensemble spread);
3. num_output_state_members = 20,
(include this many of the individual ensemble members);
4. output_interval = 2, (only output every nth assimilation time);
Output interval for True_State.nc in perfect_model_obs_nml.
4. /home/jla/tut_section16.fm 4 3/27/07
Viewing the State Space netCDF files:
1. Standard DART matlab diagnostics:
a. plot_bins: rank histograms,
0 5 10 15 20 25
0
20
40
60
80
Lorenz_96 Variable 1 for ./Prior_Diag.nc
0 5 10 15 20 25
0
20
40
60
80
Lorenz_96 Variable 13 for ./Prior_Diag.nc
0 5 10 15 20 25
0
20
40
60
80
Lorenz_96 Variable 27 for ./Prior_Diag.nc
5. /home/jla/tut_section16.fm 5 3/27/07
b. plot_correl: correlation x(t) with all other state vars at all times,
Lorenz_96 Correlation of variable state index 20, T = 50 of ./Prior_Diag.nc
against all variables, all times, all 20 ensemble members
time (timestep #)
statevariable(index)
10 20 30 40 50 60 70 80 90 100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
6. /home/jla/tut_section16.fm 6 3/27/07
c. plot_ens_err_spread: rms error and spread,
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
0
0.5
1
Lorenz_96 model Var 1 Ensemble Error Spread for ./Prior_Diag.nc
model time (100 timesteps)
distance
time−mean Ensemble Mean Total Error = 0.22454
time−mean Ensemble Spread = 0.27079
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
0
0.5
1
1.5
Lorenz_96 model Var 13 Ensemble Error Spread for ./Prior_Diag.nc
model time (100 timesteps)
distance
time−mean Ensemble Mean Total Error = 0.30668
time−mean Ensemble Spread = 0.31104
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
0
0.5
1
Lorenz_96 model Var 27 Ensemble Error Spread for ./Prior_Diag.nc
model time (100 timesteps)
distance
time−mean Ensemble Mean Total Error = 0.21285
time−mean Ensemble Spread = 0.26805
7. /home/jla/tut_section16.fm 7 3/27/07
d. plot_ens_mean_time_series: time series of ens. mean,
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
−5
0
5
10
Lorenz_96 Variable 1 of ./Prior_Diag.nc
model time (100 timesteps)
True State
Ensemble Mean
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
−5
0
5
10
Lorenz_96 Variable 13 of ./Prior_Diag.nc
model time (100 timesteps)
True State
Ensemble Mean
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
−5
0
5
10
Lorenz_96 Variable 27 of ./Prior_Diag.nc
model time (100 timesteps)
True State
Ensemble Mean
8. /home/jla/tut_section16.fm 8 3/27/07
e. plot_ens_time_series: time series all available ensembles,
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
−5
0
5
10
15
model time (100 timesteps)
Lorenz_96 state varnum 1 Ensemble Members of ./Prior_Diag.nc
True State
Ensemble Mean
Ensemble Members (20)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
−5
0
5
10
model time (100 timesteps)
Lorenz_96 state varnum 13 Ensemble Members of ./Prior_Diag.nc
True State
Ensemble Mean
Ensemble Members (20)
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
−5
0
5
10
model time (100 timesteps)
Lorenz_96 state varnum 27 Ensemble Members of ./Prior_Diag.nc
True State
Ensemble Mean
Ensemble Members (20)
9. /home/jla/tut_section16.fm 9 3/27/07
f. plot_phase_space: 3D phase space time evolution,
−4
−2
0
2
4
6
8
10
−4
−2
0
2
4
6
8
−4
−2
0
2
4
6
8
10
state variable # 1
The Attractor
state variable # 2
statevariable#3
1 2 3 True_State.nc Lorenz_96 true state
10. /home/jla/tut_section16.fm 10 3/27/07
g. plot_sawtooth: truth, prior and posterior time series,
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
−4
−3
−2
−1
0
1
2
3
4
5
model time (25 timesteps)
’state’index13
Lorenz_96 Trajectories
truth
ensemble mean
ensemble member 5
ensemble member 10
ensemble member 15
11. /home/jla/tut_section16.fm 11 3/27/07
h. plot_total_err: total error for different fields,
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5
0.5
1
1.5
2
2.5
3
3.5
model time (100 timesteps)
TotalError
Lorenz_96 Total Error over all 40 variables for ./Prior_Diag.nc
time−mean Ensemble Mean Total Error = 1.9752
time−mean Ensemble Spread Total Error = 2.1046
12. /home/jla/tut_section16.fm 12 3/27/07
i. plot_var_var_correl: x(t) correlation to single variable, all times.
0 10 20 30 40 50 60 70 80 90 100
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Lorenz_96 Correlation of variable state 20, T = 50, with variable state 18
20 ensemble members −− Prior_Diag.nc
time (timestep #)
correlation
13. /home/jla/tut_section16.fm 13 3/27/07
Viewing the State Space netCDF files:
2. ncview: a quick, dirty, but surprisingly useful netCDF viewer.
(http://meteora.ucsd.edu:80/~pierce/ncview_home_page.html)
Displays spatial slices, time series,...
model state or fcopy
State Variable ID (indexical)
time(dayssince0000-00-0000:00:00)
prior ensemble state
Range of model state or fcopy: -6.18328 to 11.6954 (null)
Range of State Variable ID: 1 to 40 indexical
Range of time: 0 to 1 days since 0000-00-00 00:00:00
Current ensemble member or copy: 1 nondimensional
Frame 1 in File Prior_Diag.nc
jlaSunJun513:41:442005
1-Jan-2001 2-Jan-2001 3-Jan-2001 4-Jan-2001 5-Jan-2001 6-Jan-20
-6-4-2024681012
model state or fcopy from prior ensemble state
time (days since 0000-00-00 00:00:00)
state
(c
14. /home/jla/tut_section16.fm 14 3/27/07
Viewing the State Space netCDF files:
3. Many other graphical/analysis programs can read netCDF.
(Note that we use udunits metadata convention).
4. NCO tools allow operations on netCDF files:
(http://nco.sf.net)
Selecting hyperslices of fields,
Differencing netCDF files,
Averaging, etc.
15. /home/jla/tut_section16.fm 15 3/27/07
Observation Space netCDF files:
Observation sequence file output by filter has prior, posterior,
observed value, (and truth for OSSEs).
Contents of obs_sequence.final controlled by filter_nml:
1. obs_sequence_in_name = "obs_seq.out",
Name of input observation sequence file.
2. obs_sequence_out_name = "obs_seq.final",
Name of output final observation sequence.
3. num_output_obs_members = 0,
Output this many individual ensemble estimates.
(See section 18 for viewing obs_sequence files).
16. /home/jla/tut_section16.fm 16 3/27/07
Regression confidence factor output:
Controlled by reg_factor_nml:
1. save_reg_diagnostics = .true., should file be output?
2. save_reg_diagnostics = .false., name of output file.
File size could be (model size) x (number obs.) x (number assim times).
Very big, even for small models (only first 4 obs output default).
Normally, modify code in reg_factor_mod.f90 to control:
Output is at end of select_regression = 1 code block.
Format is ascii:
time in days, time in seconds, obs index, state index, α.
Plot with matlab plot_reg_factor.
17. /home/jla/tut_section16.fm 17 3/27/07
Program Diagnostic Output:
File dart_log.out
Written to by all DART executables.
Contains registration information:
Program start time,
CVS version of code for each module used,
Namelist values for each module,
Names of output files,
Diagnostic output for modules (through error_handler),
Warnings and fatal errors from DART code.
Watch out: This file is NOT cleared by DART. Can get longggggg...