Changeset 672 for trunk/src/mask_proj.m
- Timestamp:
- Aug 6, 2013, 3:47:07 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/mask_proj.m
r667 r672 35 35 for icell=1:numel(CellInfo) 36 36 if NbDimArray(icell)==2 37 XName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(1)}; 38 YName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(2)}; 39 if isfield(CellInfo{icell},'VarIndex_errorflag') 40 FFName=FieldData.ListVarName{CellInfo{icell}.VarIndex_errorflag}; 41 else 42 FFName='FF';%default error (mask) flag name (if not already used) 43 if isfield(FieldData,'FF') 44 ind=1; 45 while isfield(FieldData,['FF_' num2str(ind)]) 46 ind=ind+1; 47 end 48 FFName=['FF_' num2str(ind)];% append an index to the name of error flag, FF_1,FF_2... 49 end 50 ProjData.ListVarName=[FieldData.ListVarName {FFName}]; 51 ProjData.VarDimName=[FieldData.VarDimName FieldData.VarDimName(CellInfo{icell}.CoordIndex(1))]; 52 ProjData.VarAttribute{numel(FieldData.VarDimName)}.Role='errorflag'; 53 end 37 54 switch CellInfo{icell}.CoordType; 38 case 'scattered' 39 XName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(1)}; 40 YName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(2)}; 55 case 'scattered' 41 56 mask_ind_i=round(0.5+(FieldData.(XName)-MaskData.AX(1))/DX);%nbpoint terms 42 57 mask_ind_j=round(0.5+(FieldData.(YName)-MaskData.AY(1))/DY);%nbpoint terms … … 46 61 MaskData.A=reshape(MaskData.A,1,[]); 47 62 checkfalse(MaskData.A(checkin)>200)=0; 48 if ~isfield(FieldData,'FF')49 FieldData.FF=zeros(size(FieldData.(XName)));50 FieldData.ListVarName=[FieldData.ListVarName {'FF'}];51 FieldData.VarDimName=[FieldData.VarDimName FieldData.VarDimName(CellInfo{icell}.CoordIndex(1))];52 FieldData.VarAttribute{numel(FieldData.VarDimName)}.Role='errorflag';53 end54 63 for ivar=1:numel(CellInfo{icell}.VarIndex) 55 64 VarName=FieldData.ListVarName{CellInfo{icell}.VarIndex(ivar)}; 56 FieldData.(VarName)(checkfalse)=0; 57 FieldData.FF(checkfalse)=1; 65 ProjData.(VarName)(checkfalse)=0; 58 66 end 67 if ~isfield(CellInfo{icell},'VarIndex_errorflag')% an error flag already exists in the current cell 68 ProjData.(FFName)=zeros(size(ProjData.(VarName))); 69 end 70 ProjData.(FFName)(checkfalse)=1; 59 71 case 'grid' 60 XName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(1)};61 YName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(2)};62 72 Var1Name=FieldData.ListVarName{CellInfo{icell}.VarIndex(1)}; 63 73 [Npy_field,Npx_field]=size(FieldData.(Var1Name)); … … 70 80 [XMask,YMask]=meshgrid(XMask,YMask); 71 81 Mask = interp2(XMask,YMask,MaskData.A,XArray,YArray','nearest'); 72 % figure(1) 73 % image(MaskData.A) 74 Mask=Mask>200; 75 if ~isfield(FieldData,'FF') 76 FieldData.FF=zeros(size(FieldData.(XName))); 77 FieldData.ListVarName=[FieldData.ListVarName {'FF'}]; 78 FieldData.VarDimName=[FieldData.VarDimName FieldData.VarDimName(CellInfo{icell}.CoordIndex(1))]; 79 FieldData.VarAttribute{numel(FieldData.VarDimName)}.Role='errorflag'; 80 end 82 Mask=Mask>200; 81 83 for ivar=1:numel(CellInfo{icell}.VarIndex) 82 84 VarName=FieldData.ListVarName{CellInfo{icell}.VarIndex(ivar)}; 83 FieldData.(VarName)=FieldData.(VarName).*Mask; 84 FieldData.FF=~Mask; 85 if ~strcmp(VarName,FFName) 86 ProjData.(VarName)=FieldData.(VarName).*Mask; 87 end 88 end 89 if isfield(CellInfo{icell},'VarIndex_errorflag')% an error flag already exists in the current cell 90 ProjData.(FFName)=FieldData.(FFName) | ~Mask; 91 else 92 ProjData.(FFName)= ~Mask; 85 93 end 86 94 end 87 95 end 88 96 end 89 90 97 98
Note: See TracChangeset
for help on using the changeset viewer.