Changeset 382 for trunk/src/calc_field.m
- Timestamp:
- Feb 6, 2012, 11:46:39 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/calc_field.m
r380 r382 23 23 % file, depending on the scalar 24 24 25 function [DataOut,errormsg]=calc_field(FieldName,DataIn )25 function [DataOut,errormsg]=calc_field(FieldName,DataIn,VelType,XI,YI) 26 26 27 27 %list of defined scalars to display in menus (in addition to 'ima_cor'). … … 66 66 67 67 %% interpolation with new civ data 68 if isfield(DataIn,'X_SubRange') 69 XMax=max(max(DataIn.X_SubRange)); 70 YMax=max(max(DataIn.Y_SubRange)); 71 XMin=min(min(DataIn.X_SubRange)); 72 YMin=min(min(DataIn.Y_SubRange)); 73 Mesh=sqrt((YMax-YMin)*(XMax-XMin)/numel(DataIn.X_tps));%2D 74 xI=XMin:Mesh:XMax; 75 yI=YMin:Mesh:YMax; 76 [XI,YI]=meshgrid(xI,yI); 77 XI=reshape(XI,[],1); 78 YI=reshape(YI,[],1); 68 %if isfield(DataIn,'X_SubRange') 69 if strcmp(VelType,'filter1')||strcmp(VelType,'filter2') 70 XMax=max(max(DataIn.SubRange(1,:,:))); 71 YMax=max(max(DataIn.SubRange(2,:,:))); 72 XMin=min(min(DataIn.SubRange(1,:,:))); 73 YMin=min(min(DataIn.SubRange(2,:,:))); 74 if ~(exist('XI','var')&&exist('YI','var')) 75 Mesh=sqrt((YMax-YMin)*(XMax-XMin)/numel(DataIn.Coord_tps(:,1,:)));%2D 76 xI=XMin:Mesh:XMax; 77 yI=YMin:Mesh:YMax; 78 [XI,YI]=meshgrid(xI,yI); 79 XI=reshape(XI,[],1); 80 YI=reshape(YI,[],1); 81 end 79 82 DataOut.ListGlobalAttribute=DataIn.ListGlobalAttribute; %reproduce global attribute 80 83 for ilist=1:numel(DataOut.ListGlobalAttribute) … … 88 91 DataOut.U=zeros(size(XI)); 89 92 DataOut.V=zeros(size(XI)); 90 DataOut.vort=zeros(size(XI)); 91 93 DataOut.vort=zeros(size(XI)); 92 94 DataOut.div=zeros(size(XI)); 93 95 nbval=zeros(size(XI)); 94 [NbSubDomain,xx]=size(DataIn.X_SubRange);96 NbSubDomain=size(DataIn.SubRange,3); 95 97 for isub=1:NbSubDomain 96 nbvec_sub=DataIn.NbSites(isub); 97 ind_sel=find(XI>=DataIn.X_SubRange(isub,1) & XI<=DataIn.X_SubRange(isub,2) & YI>=DataIn.Y_SubRange(isub,1) & YI<=DataIn.Y_SubRange(isub,2)); 98 if isfield(DataIn,'NbSites') 99 nbvec_sub=DataIn.NbSites(isub); 100 else 101 nbvec_sub=numel(find(DataIn.Indices_tps(:,isub))); 102 end 103 ind_sel=find(XI>=DataIn.SubRange(1,1,isub) & XI<=DataIn.SubRange(1,2,isub) & YI>=DataIn.SubRange(2,1,isub) & YI<=DataIn.SubRange(2,2,isub)); 98 104 %rho smoothing parameter 99 105 epoints = [XI(ind_sel) YI(ind_sel)];% coordinates of interpolation sites 100 ctrs= [DataIn.X_tps(1:nbvec_sub,isub) DataIn.Y_tps(1:nbvec_sub,isub)];%(=initial points) ctrs106 ctrs=DataIn.Coord_tps(1:nbvec_sub,:,isub);%(=initial points) ctrs 101 107 nbval(ind_sel)=nbval(ind_sel)+1;% records the number of values for eacn interpolation point (in case of subdomain overlap) 102 108 % PM = [ones(size(epoints,1),1) epoints];
Note: See TracChangeset
for help on using the changeset viewer.