[Dart-dev] [4047] DART/trunk/observations/utilities/threed_sphere: The 'bad' observations QC plot now :
nancy at ucar.edu
nancy at ucar.edu
Wed Sep 9 17:02:56 MDT 2009
An HTML attachment was scrubbed...
URL: http://mailman.ucar.edu/pipermail/dart-dev/attachments/20090909/7de9b193/attachment-0001.html
-------------- next part --------------
Modified: DART/trunk/observations/utilities/threed_sphere/input.nml
===================================================================
--- DART/trunk/observations/utilities/threed_sphere/input.nml 2009-09-09 21:29:04 UTC (rev 4046)
+++ DART/trunk/observations/utilities/threed_sphere/input.nml 2009-09-09 23:02:56 UTC (rev 4047)
@@ -8,10 +8,14 @@
'../../../obs_def/obs_def_radar_mod.f90',
'../../../obs_def/obs_def_metar_mod.f90',
'../../../obs_def/obs_def_dew_point_mod.f90',
+ '../../../obs_def/obs_def_AIRS_mod.f90',
'../../../obs_def/obs_def_QuikSCAT_mod.f90',
'../../../obs_def/obs_def_altimeter_mod.f90',
'../../../obs_def/obs_def_gps_mod.f90',
- '../../../obs_def/obs_def_vortex_mod.f90' /
+ '../../../obs_def/obs_def_gts_mod.f90',
+ '../../../obs_def/obs_def_eval_mod.f90',
+ '../../../obs_def/obs_def_vortex_mod.f90'
+ /
&assim_tools_nml
/
Modified: DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m
===================================================================
--- DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m 2009-09-09 21:29:04 UTC (rev 4046)
+++ DART/trunk/observations/utilities/threed_sphere/plot_obs_netcdf.m 2009-09-09 23:02:56 UTC (rev 4047)
@@ -24,6 +24,10 @@
% $Revision$
% $Date$
+if (exist(fname,'file') ~= 2)
+ error('%s does not exist.',fname)
+end
+
% Read the observation sequence
obsstruct = read_obs_netcdf(fname, ObsTypeString, region, ...
@@ -68,7 +72,27 @@
%-------------------------------------------------------------------------------
% Create graphic of spatial distribution of 'bad' observations & their QC value.
%-------------------------------------------------------------------------------
+% 0 observation assimilated
+% 1 observation evaluated only
+% --- everything above this means the prior and posterior are OK
+% 2 assimilated, but the posterior forward operator failed
+% 3 Evaluated only, but the posterior forward operator failed
+% --- everything above this means only the prior is OK
+% 4 prior forward operator failed
+% 5 not used
+% 6 prior QC rejected
+% 7 outlier rejected
+dartqc_strings = { ...
+ '''observation evaluated only''', ...
+ '''assimilated, but the posterior forward operator failed''', ...
+ '''evaluated only, but the posterior forward operator failed''',...
+ '''prior forward operator failed''',...
+ '''not used''',...
+ '''prior QC rejected''',...
+ '''outlier rejected''',...
+ '''reserved for future use'''};
+
if (obsstruct.numbadqc > 0 )
figure(2); clf
@@ -81,10 +105,12 @@
pstruct.scalearray = 128 * ones(size(obsstruct.badobs.obs));
pstruct.colorbarstring = QCString;
pstruct.clim = [min(obsstruct.badobs.qc) max(obsstruct.badobs.qc)];
+ pstruct.str1 = sprintf('%s level (%.2f - %.2f)',obsstruct.ObsTypeString,zmin,zmax);
pstruct.str2 = sprintf('%s (%d bad observations)', ...
obsstruct.CopyString, ...
length(obsstruct.badobs.obs));
-
+
+ obsstruct.badobs.obs = obsstruct.badobs.qc; % plot QC values, not obs values
if ( zmin ~= zmax )
pstruct.axis = [xmin xmax ymin ymax zmin zmax];
@@ -106,7 +132,8 @@
qccount = zeros(size(qcvals));
for i = 1:length(qcvals)
qccount(i) = sum(obsstruct.badobs.qc == qcvals(i));
- s{i} = sprintf('%d obs with qc == %d',qccount(i),qcvals(i));
+ s{i} = sprintf('%d obs with qc == %d %s',qccount(i),qcvals(i), ...
+ dartqc_strings{qcvals(i)});
end
dy = 1.0/length(s);
Modified: DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m
===================================================================
--- DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m 2009-09-09 21:29:04 UTC (rev 4046)
+++ DART/trunk/observations/utilities/threed_sphere/read_obs_netcdf.m 2009-09-09 23:02:56 UTC (rev 4047)
@@ -42,6 +42,10 @@
% $Revision$
% $Date$
+if (exist(fname,'file') ~= 2)
+ error('%s does not exist.',fname)
+end
+
% record the user input
obsstruct.fname = fname;
More information about the Dart-dev
mailing list