[Dart-dev] DART/branches Revision: 12979
dart at ucar.edu
dart at ucar.edu
Mon Feb 11 15:12:08 MST 2019
thoar at ucar.edu
2019-02-11 15:12:08 -0700 (Mon, 11 Feb 2019)
251
plot_bias_xxx_profile now supports obs_diag output that has no posterior information.
Also annotates whether the observation was assimilated or evaluated.
plot_rmse_xxx_profile uses colors that render better, same as those in
plot_bias_xxx_profile.
Modified: DART/branches/recam/diagnostics/matlab/plot_bias_xxx_profile.m
===================================================================
--- DART/branches/recam/diagnostics/matlab/plot_bias_xxx_profile.m 2019-02-11 22:10:31 UTC (rev 12978)
+++ DART/branches/recam/diagnostics/matlab/plot_bias_xxx_profile.m 2019-02-11 22:12:08 UTC (rev 12979)
@@ -139,11 +139,23 @@
plotdat.biasindex = get_copy_index(fname,'bias');
plotdat.Npossindex = get_copy_index(fname,'Nposs');
plotdat.Nusedindex = get_copy_index(fname,'Nused');
+plotdat.NQC0index = get_copy_index(fname,'N_DARTqc_0');
+plotdat.NQC1index = get_copy_index(fname,'N_DARTqc_1');
+plotdat.NQC2index = get_copy_index(fname,'N_DARTqc_2');
+plotdat.NQC3index = get_copy_index(fname,'N_DARTqc_3');
+plotdat.NQC4index = get_copy_index(fname,'N_DARTqc_4');
plotdat.NQC5index = get_copy_index(fname,'N_DARTqc_5');
plotdat.NQC6index = get_copy_index(fname,'N_DARTqc_6');
+plotdat.NQC7index = get_copy_index(fname,'N_DARTqc_7');
figuredata = setfigure();
+global prior_green poste_blue obs_red
+
+prior_green = [ 0/255 128/255 0/255];
+poste_blue = [ 0/255 0/255 255/255];
+obs_red = [215/255 10/255 83/255];
+
%%---------------------------------------------------------------------
% Loop around (copy-level-region) observation types
%----------------------------------------------------------------------
@@ -160,24 +172,24 @@
end
for ivar = varlist
-
+
% create the variable names of interest.
-
+
plotdat.myvarname = plotdat.varnames{ivar};
plotdat.guessvar = sprintf('%s_VPguess',plotdat.varnames{ivar});
plotdat.analyvar = sprintf('%s_VPanaly',plotdat.varnames{ivar});
-
+
plotdat.trusted = nc_read_att(fname, plotdat.guessvar, 'TRUSTED');
if (isempty(plotdat.trusted)), plotdat.trusted = 'NO'; end
-
+
% get appropriate vertical coordinate variable
-
+
[dimnames,~] = nc_var_dims(fname, plotdat.guessvar);
-
+
% this is a superfluous check ... FindVerticalVars already weeds out
% variables only present on surface or undef because obs_diag
% does not time-average statistics for these.
-
+
if (~ isempty(strfind(dimnames{2},'surface')))
fprintf('%s is a surface field.\n',plotdat.guessvar)
fprintf('Cannot display a surface field this way.\n')
@@ -187,7 +199,7 @@
fprintf('Cannot display this field this way.\n')
continue
end
-
+
[level_org, level_units, nlevels, level_edges, Yrange] = FindVerticalInfo(fname, plotdat.guessvar);
plotdat.level_org = level_org;
plotdat.level_units = level_units;
@@ -194,42 +206,49 @@
plotdat.nlevels = nlevels;
plotdat.level_edges = level_edges;
plotdat.Yrange = Yrange;
-
+
% Matlab likes strictly ASCENDING order for things to be plotted,
% then you can impose the direction. The data is stored in the original
% order, so the sort indices are saved to reorder the data.
-
+
if (plotdat.level_org(1) > plotdat.level_org(plotdat.nlevels))
plotdat.YDir = 'reverse';
else
plotdat.YDir = 'normal';
end
-
+
% Add error-checking for output from older versions of obs_diag.
-
+
[levels, indices] = sort(plotdat.level_org);
plotdat.level = unique(levels);
if (length(plotdat.level) ~= length(levels))
error('There is a duplicated value in the array specifying the levels - must change your input.nml and rerun obs_diag')
end
-
+
plotdat.indices = indices;
level_edges = sort(plotdat.level_edges);
plotdat.level_edges = level_edges;
-
More information about the Dart-dev
mailing list