Changeset 546 for trunk/src/proj_field.m
- Timestamp:
- Sep 17, 2012, 10:47:38 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/proj_field.m
r542 r546 149 149 ProjData.NbDim=0; 150 150 [CellInfo,NbDimArray,errormsg]=find_field_cells(FieldData); 151 %[CellVarIndex,NbDimCell,VarTypeCell,errormsg]=find_field_cells(FieldData);152 151 if ~isempty(errormsg) 153 152 errormsg=['error in proj_field/proj_points:' errormsg]; … … 160 159 end 161 160 VarIndex=CellInfo{icell}.VarIndex;% indices of the selected variables in the list FieldData.ListVarName 162 % VarType=CellInfo{icell}.VarType;% structure defining the types of variables in the cell163 161 ivar_X=CellInfo{icell}.CoordIndex(end); 164 162 ivar_Y=CellInfo{icell}.CoordIndex(end-1); … … 167 165 ivar_Z=CellInfo{icell}.CoordIndex(1); 168 166 end 169 % ivar_rem=[];170 % if isfield(CellInfo{icell},'VarIndex_ancillary')171 % ivar_rem=CellInfo{icell}.VarIndex_ancillary;172 % end173 % if isfield(CellInfo{icell},'VarIndex_warnflag')174 % ivar_rem=[ivar_rem CellInfo{icell}.VarIndex_warnflag];175 % end176 167 ivar_FF=[]; 177 168 if isfield(CellInfo{icell},'VarIndex_errorflag') … … 181 172 return 182 173 end 183 end 184 % 174 end 185 175 % select types of variables to be projected 186 176 ListProj={'VarIndex_scalar','VarIndex_image','VarIndex_color','VarIndex_vector_x','VarIndex_vector_y'}; … … 550 540 551 541 %% group the variables (fields of 'FieldData') in cells of variables with the same dimensions 552 %[CellVarIndex,NbDim,VarTypeCell,errormsg]=find_field_cells(FieldData);553 542 [CellInfo,NbDim,errormsg]=find_field_cells(FieldData); 554 543 if ~isempty(errormsg) … … 561 550 ProjData.VarDimName={}; 562 551 for icell=1:length(CellInfo) 563 %VarIndex=CellInfo{icell}.VarIndex;% indices of the selected variables in the list FieldData.ListVarName564 % VarType=VarTypeCell{icell}; %types of variables565 552 if NbDim(icell)~=2% proj_line acts only on fields of space dimension 2, TODO: check 3D case 566 553 continue … … 722 709 else 723 710 test_Amat=1;%image or 2D matrix 724 test_interp2=0;%default 725 % if ~isempty(VarType.coord_y) 711 test_interp2=0;%default 726 712 AYName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(end-1)}; 727 713 AXName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(end)}; … … 985 971 986 972 %% group the variables (fields of 'FieldData') in cells of variables with the same dimensions 987 % CellVarIndex=cells of variable index arrays988 %[CellVarIndex,NbDimVec,VarTypeCell,errormsg]=find_field_cells(FieldData);989 973 [CellInfo,NbDimArray,errormsg]=find_field_cells(FieldData); 990 974 if ~isempty(errormsg) … … 1043 1027 ivar_V=CellInfo{icell}.VarIndex_vector_y; 1044 1028 end 1045 % if ~isempty(VarType.vector_x_tps)&&~isempty(VarType.vector_y_tps)1046 % ivar_U=VarType.vector_x_tps;1047 % ivar_V=VarType.vector_y_tps;1048 % end1049 1029 if isfield(CellInfo{icell},'VarIndex_vector_z') 1050 ivar_W=CellInfo{icell}.VarIndex_vector_z; 1051 end 1052 % %type of coordinates 1053 % if ~isempty(VarType.coord_x) && ~isempty(VarType.coord_y) 1054 % CoordType='unstructured'; 1055 % elseif ~isempty(VarType.coord_tps) 1056 % CoordType='tps'; 1057 % else 1058 % CoordType='structured'; 1059 % end 1060 % 1030 ivar_W=CellInfo{icell}.VarIndex_vector_z; 1031 end 1061 1032 %dimensions 1062 1033 DimCell=FieldData.VarDimName{VarIndex(1)}; … … 1203 1174 if isfield(CellInfo{icell},'VarIndex_scalar') 1204 1175 VarName_scalar=FieldData.ListVarName{CellInfo{icell}.VarIndex_scalar}; 1205 if ~isempty(VarType.errorflag)1176 if isfield(CellInfo{icell},'errorflag') && ~isempty(CellInfo{icell}.errorflag) 1206 1177 FieldData.(VarName_scalar)=FieldData.(VarName_scalar)(indsel); 1207 1178 end … … 1236 1207 case 'tps' 1237 1208 if strcmp(ProjMode{icell},'filter') 1238 Coord=FieldData.(FieldData.ListVarName{ VarType.coord_tps});1239 NbSites=FieldData.(FieldData.ListVarName{ VarType.nbsites_tps});1240 SubRange=FieldData.(FieldData.ListVarName{ VarType.subrange_tps});1241 if isfield( VarType,'vector_x_tps')&&isfield(VarType,'vector_y_tps')1242 FieldVar=cat(3,FieldData.(FieldData.ListVarName{ VarType.vector_x_tps}),FieldData.(FieldData.ListVarName{VarType.vector_y_tps}));1209 Coord=FieldData.(FieldData.ListVarName{CellInfo{icell}.CoordIndex}); 1210 NbSites=FieldData.(FieldData.ListVarName{CellInfo{icell}.NbSite_tps}); 1211 SubRange=FieldData.(FieldData.ListVarName{CellInfo{icell}.SubRange_tps}); 1212 if isfield(CellInfo{icell},'VarIndex_vector_x_tps')&&isfield(CellInfo{icell},'VarIndex_vector_y_tps') 1213 FieldVar=cat(3,FieldData.(FieldData.ListVarName{CellInfo{icell}.VarIndex_vector_x_tps}),FieldData.(FieldData.ListVarName{CellInfo{icell}.VarIndex_vector_y_tps})); 1243 1214 end 1244 1215 coord_x_proj=XMin:DX:XMax; … … 1249 1220 XI=XI+ObjectData.Coord(1,1); 1250 1221 YI=YI+ObjectData.Coord(1,2); 1251 [DataOut,VarAttribute,errormsg]=calc_field_tps(Coord,NbSites,SubRange,FieldVar, VarType.Operation,cat(3,XI,YI));1222 [DataOut,VarAttribute,errormsg]=calc_field_tps(Coord,NbSites,SubRange,FieldVar,CellInfo{icell}.Operation,cat(3,XI,YI)); 1252 1223 ListFieldProj=(fieldnames(DataOut))'; 1253 1224 VarDimName=cell(size(ListFieldProj)); … … 1509 1480 end 1510 1481 %filter the field (image) if option 'filter' is used 1511 if test_filter1512 Aclass=class(FieldData.A);1513 eval(['ProjData.' VarName '=filter2(Mfilter,FieldData.' VarName ',''valid'');'])1514 if ~isequal(Aclass,'double')1515 eval(['ProjData.' VarName '=' Aclass '(FieldData.' VarName ');'])%revert to integer values1516 end1517 end1482 % if test_filter 1483 % Aclass=class(FieldData.A); 1484 % eval(['ProjData.' VarName '=filter2(Mfilter,FieldData.' VarName ',''valid'');']) 1485 % if ~isequal(Aclass,'double') 1486 % eval(['ProjData.' VarName '=' Aclass '(FieldData.' VarName ');'])%revert to integer values 1487 % end 1488 % end 1518 1489 eval(['vec_A=reshape(FieldData.' VarName ',[],nbcolor);'])%put the original image in line 1519 1490 %ind_in=find(flagin); … … 1702 1673 %----------------------------------------------------------------- 1703 1674 idimvar=0; 1704 % [CellVarIndex,NbDimVec,VarTypeCell,errormsg]=find_field_cells(FieldData);1705 % if ~isempty(errormsg)1706 % errormsg=['error in proj_field/proj_plane:' errormsg];1707 % return1708 % end1709 1710 1675 % LOOP ON GROUPS OF VARIABLES SHARING THE SAME DIMENSIONS 1711 1676 % CellVarIndex=cells of variable index arrays
Note: See TracChangeset
for help on using the changeset viewer.