Changeset 675 for trunk/src/mask_proj.m
- Timestamp:
- Aug 27, 2013, 11:25:21 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/mask_proj.m
r672 r675 31 31 end 32 32 [Npy,Npx]=size(MaskData.A); 33 DX=(MaskData.AX(2)-MaskData.AX(1))/(Npx-1); 34 DY=(MaskData.AY(2)-MaskData.AY(1))/(Npy-1); 33 35 34 for icell=1:numel(CellInfo) 36 35 if NbDimArray(icell)==2 37 XName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(1)};38 YName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(2)};39 36 if isfield(CellInfo{icell},'VarIndex_errorflag') 40 37 FFName=FieldData.ListVarName{CellInfo{icell}.VarIndex_errorflag}; 38 check_new_error_flag=0; 41 39 else 42 40 FFName='FF';%default error (mask) flag name (if not already used) … … 49 47 end 50 48 ProjData.ListVarName=[FieldData.ListVarName {FFName}]; 51 ProjData.Var DimName=[FieldData.VarDimName FieldData.VarDimName(CellInfo{icell}.CoordIndex(1))];52 ProjData.VarAttribute{numel(FieldData.VarDimName)}.Role='errorflag';49 ProjData.VarAttribute{numel(ProjData.ListVarName)}.Role='errorflag'; 50 check_new_error_flag=1; 53 51 end 54 52 switch CellInfo{icell}.CoordType; 55 case 'scattered' 53 case 'scattered' 54 XName=FieldData.ListVarName{CellInfo{icell}.Coord_x}; 55 YName=FieldData.ListVarName{CellInfo{icell}.Coord_y}; 56 DX=(MaskData.AX(2)-MaskData.AX(1))/(Npx-1); 57 DY=(MaskData.AY(2)-MaskData.AY(1))/(Npy-1); 56 58 mask_ind_i=round(0.5+(FieldData.(XName)-MaskData.AX(1))/DX);%nbpoint terms 57 59 mask_ind_j=round(0.5+(FieldData.(YName)-MaskData.AY(1))/DY);%nbpoint terms … … 65 67 ProjData.(VarName)(checkfalse)=0; 66 68 end 67 if ~isfield(CellInfo{icell},'VarIndex_errorflag')% an error flag already existsin the current cell69 if check_new_error_flag% an error flag needs to be created in the current cell 68 70 ProjData.(FFName)=zeros(size(ProjData.(VarName))); 71 ProjData.VarDimName=[FieldData.VarDimName FieldData.VarDimName(CellInfo{icell}.VarIndex(1))]; 69 72 end 70 ProjData.(FFName)(checkfalse)=1; 73 ProjData.(FFName)(checkfalse)=1;% update the existing error flag 71 74 case 'grid' 75 XName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(2)}; 76 YName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(1)}; 72 77 Var1Name=FieldData.ListVarName{CellInfo{icell}.VarIndex(1)}; 73 78 [Npy_field,Npx_field]=size(FieldData.(Var1Name)); 74 DX_field=(FieldData.(XName)(end)-FieldData.(XName)(1))/(Npx_field-1); 75 DY_field=(FieldData.(YName)(end)-FieldData.(YName)(1))/(Npy_field-1); 76 XArray=FieldData.(XName)(1):DX_field:FieldData.(XName)(end); 77 YArray=FieldData.(YName)(1):DY_field:FieldData.(YName)(end); 78 XMask=MaskData.AX(1):DX:MaskData.AX(end); 79 YMask=MaskData.AY(end):-DY:MaskData.AY(1); 79 XArray=linspace(FieldData.(XName)(1),FieldData.(XName)(end),Npx_field); 80 YArray=linspace(FieldData.(YName)(1),FieldData.(YName)(end),Npy_field); 81 XMask=linspace(MaskData.AX(1),MaskData.AX(end),Npx); 82 YMask=linspace(MaskData.AY(1),MaskData.AY(end),Npy); 80 83 [XMask,YMask]=meshgrid(XMask,YMask); 81 84 Mask = interp2(XMask,YMask,MaskData.A,XArray,YArray','nearest'); … … 87 90 end 88 91 end 89 if isfield(CellInfo{icell},'VarIndex_errorflag')% an error flag already exists in the current cell 92 if check_new_error_flag% an error flag needs to be created in the current cell 93 ProjData.(FFName)= ~Mask; 94 ProjData.VarDimName=[FieldData.VarDimName FieldData.VarDimName(CellInfo{icell}.VarIndex(1))]; 95 else 90 96 ProjData.(FFName)=FieldData.(FFName) | ~Mask; 91 else92 ProjData.(FFName)= ~Mask;93 97 end 94 98 end
Note: See TracChangeset
for help on using the changeset viewer.