/[MITgcm]/MITgcm_contrib/gael/profilesMatlabProcessing/profiles_stats/MITprof_wrapper.m
ViewVC logotype

Contents of /MITgcm_contrib/gael/profilesMatlabProcessing/profiles_stats/MITprof_wrapper.m

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Fri Mar 17 18:06:59 2017 UTC (8 years, 4 months ago) by gforget
Branch: MAIN
CVS Tags: checkpoint66o, checkpoint66f, checkpoint66e, HEAD
- MITprof_wrapper.m (new): wrapper routine to call applies encoded operation to MITprof variables
- MITprof_stats_load.m: improve print statement

1 function [varargout]=MITprof_wrapper(varargin);
2 % MITPROF_WRAPPER applies encoded operation to MITprof variables
3 %
4 % [myout]=gcmfaces_phitheta(myprof,myop) applies operation specified
5 % by myop.op_name ('nanmean' by default; options listed below) to
6 % myprof variables listed by suffix in myop.op_vars (all those of
7 % length myprofmyop.np by default).
8 %
9 % [myout]=gcmfaces_phitheta(K) obtains myprofmyop from global variable,
10 % subsets according to K (1:myprofmyop.np by default), and returns
11 % the result in vector form. This approach allows bootstrapping.
12 %
13 % myop options:
14 % - opName='mean','std', or 'cycle'
15 % - opVars='T', 'S', or [], or a list {'T','S'}
16 %
17 % Example:
18 %
19 % example_MITprof; global myprofmyop; disp(myprofmyop);
20 %
21 % myop.op_name='cycle'; myop.op_tim=[0:7:365];
22 % myop.op_vars={'prof_T','prof_Tclim'};
23 % myprof=myprofmyop;
24 %
25 % [myout]=MITprof_wrapper(myprof,myop);
26 % figure; imagescnan(myout'); colorbar;
27 %
28 % K=[1:myprofmyop.np]; myout = bootstrp(100, @MITprof_wrapper,K);
29 % figure; z=cell2mat(myout); z=z(:,10:myprof.nr:end); hist(z,20);
30 %
31
32 %%
33
34 if nargin<=1;
35 global myprofmyop;
36 myprof=myprofmyop;
37 myop.op_name=myprofmyop.op_name;
38 myop.op_vars=myprofmyop.op_vars;
39 if isfield(myprofmyop,'op_tim'); myop.op_tim=myprofmyop.op_tim; end;
40 end;
41
42 if nargin==1;
43 myind=varargin{1};
44 end;
45
46 if nargin==2;
47 myprof=varargin{1};
48 myop=varargin{2};
49 end;
50
51 if isempty(whos('myind'));
52 myind=[1:myprof.np];
53 end;
54
55 if isempty(myprof)|isempty(myop);
56 error('incorrect input specifications');
57 end;
58
59 %%
60
61 [myprof]=MITprof_subset(myprof,'list',myind);
62
63 %%
64
65 if strcmp(myop.op_name,'mean');
66 for vv=1:length(myop.op_vars);
67 tmp1=getfield(myprof,myop.op_vars{vv});
68 varargout{vv}=nanmean(tmp1,1);
69 end;
70 end;
71
72 if strcmp(myop.op_name,'cycle');
73 tim=myprof.prof_date-datenum([2002 1 1]);
74 tim=mod(tim,365); dt=median(diff(myop.op_tim));
75 nt=length(myop.op_tim); nv=length(myop.op_vars);
76 for vv=1:nv;
77 tmpIn=getfield(myprof,myop.op_vars{vv});
78 tmpOut=NaN*repmat(tmpIn(1,:),[nt 1]);
79 for tt=1:nt;
80 t0=mod(myop.op_tim(tt)-dt/2,365);
81 t1=mod(myop.op_tim(tt)+dt/2,365);
82 if t1>t0; ii=find(tim<=t1&tim>t0);
83 else; ii=find(tim<=t1|tim>t0);
84 end;
85 tmp1=nanmean(tmpIn(ii,:),1);
86 tmp2=sum(~isnan(tmpIn(ii,:)),1);
87 tmp1(~tmp2)=NaN;
88 tmpOut(tt,:)=tmp1;
89 end;
90 varargout{vv}=tmpOut;
91 end;
92 end;
93
94 %%
95
96 if nargin<=1;
97 varargout{1}=varargout;
98 end;
99

  ViewVC Help
Powered by ViewVC 1.1.22