[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