[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