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

Annotation 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 - (hide 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 gforget 1.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