[Dart-dev] DART/branches Revision: 13059

dart at ucar.edu dart at ucar.edu
Fri Mar 22 16:49:25 MDT 2019


thoar at ucar.edu
2019-03-22 16:49:25 -0600 (Fri, 22 Mar 2019)
49
Implementing consisten variable argument input.




Modified: DART/branches/qc8diags/diagnostics/matlab/plot_bias_xxx_profile.m
===================================================================
--- DART/branches/qc8diags/diagnostics/matlab/plot_bias_xxx_profile.m	2019-03-22 22:22:32 UTC (rev 13058)
+++ DART/branches/qc8diags/diagnostics/matlab/plot_bias_xxx_profile.m	2019-03-22 22:49:25 UTC (rev 13059)
@@ -27,7 +27,9 @@
 %            Possible values are available in the netcdf 'CopyMetaData' variable.
 %            (ncdump -v CopyMetaData obs_diag_output.nc)
 %
-% obsname  : Optional. If present, The strings of each observation type to plot.
+% varargin: optional, parameter-value pairs. Supported parameters are described below.
+%
+% obsname  : The strings of each observation type to plot.
 %            Each observation type will be plotted in a separate graphic.
 %            Default is to plot all available observation types.
 %
@@ -58,7 +60,11 @@
 % Decode,Parse,Check the input
 %---------------------------------------------------------------------
 
+default_markersize = 8;
+default_level = -1;
 default_obsname = 'none';
+default_verbosity = 'yes';
+default_range = [NaN NaN];
 p = inputParser;
 
 addRequired(p,'fname', at ischar);
@@ -65,16 +71,25 @@
 addRequired(p,'copy', at ischar);
 if (exist('inputParser/addParameter','file') == 2)
     addParameter(p,'obsname',default_obsname, at ischar);
+    addParameter(p,'range',default_range, at isnumeric);
+    addParameter(p,'level',default_level, at isnumeric);
+    addParameter(p,'verbose',default_verbosity, at ischar);
+    addParameter(p,'MarkerSize',default_markersize, at isnumeric);
 else
     addParamValue(p,'obsname',default_obsname, at ischar);
+    addParamValue(p,'range',default_range, at isnumeric);
+    addParamValue(p,'level',default_level, at isnumeric);
+    addParamValue(p,'verbose',default_verbosity, at ischar);
+    addParamValue(p,'MarkerSize',default_markersize, at isnumeric);
 end
-
 p.parse(fname, copy, varargin{:});
 
 % if you want to echo the input
-% disp(['fname   : ', p.Results.fname])
-% disp(['copy    : ', p.Results.copy])
-% disp(['obsname : ', p.Results.obsname])
+% fprintf('fname   : %s\n',     p.Results.fname)
+% fprintf('copy    : %s\n',     p.Results.copy)
+% fprintf('obsname : %s\n',     p.Results.obsname)
+% fprintf('level   : %d\n',     p.Results.level)
+% fprintf('range   : %f %f \n', p.Results.range)
 
 if ~isempty(fieldnames(p.Unmatched))
     disp('Extra inputs:')
@@ -81,6 +96,24 @@
     disp(p.Unmatched)
 end
 
+global verbose
+if (strncmpi(p.Results.verbose,'y',1))
+   verbose = 1;
+else
+   verbose = 0;
+end
+
+if (numel(p.Results.range) ~= 2)
+    error('range must be an array of length two ... [bottom top]')
+end
+
+if strcmp(p.Results.obsname,'none')
+    nvars = 0;
+else
+    obsname = p.Results.obsname;
+    nvars = 1;
+end
+
 if (exist(fname,'file') ~= 2)
     error('file/fname <%s> does not exist',fname)
 end
@@ -91,6 +124,16 @@
 
 plotdat.fname         = fname;
 plotdat.copystring    = copy;
+plotdat.bincenters    = ncread(fname,'time');
+plotdat.binedges      = ncread(fname,'time_bounds');
+plotdat.mlevel        = local_ncread(fname,'mlevel');
+plotdat.plevel        = local_ncread(fname,'plevel');
+plotdat.plevel_edges  = local_ncread(fname,'plevel_edges');
+plotdat.hlevel        = local_ncread(fname,'hlevel');
+plotdat.hlevel_edges  = local_ncread(fname,'hlevel_edges');
+[plotdat.ncopies, ~]  = nc_dim_info(fname,'copy');
+[plotdat.nregions, ~] = nc_dim_info(fname,'region');
+plotdat.region_names  = strtrim(ncread(fname,'region_names')');
 
 plotdat.binseparation = nc_read_att(fname, '/', 'bin_separation');
 plotdat.binwidth      = nc_read_att(fname, '/', 'bin_width');
@@ -101,16 +144,6 @@
 plotdat.latlim2       = nc_read_att(fname, '/', 'latlim2');


More information about the Dart-dev mailing list