Changeset 546 for trunk/src/proj_field.m


Ignore:
Timestamp:
Sep 17, 2012, 10:47:38 PM (12 years ago)
Author:
sommeria
Message:

bugs corrected for tps projection on a grid + pb of colorbar display solved

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/proj_field.m

    r542 r546  
    149149ProjData.NbDim=0;
    150150[CellInfo,NbDimArray,errormsg]=find_field_cells(FieldData);
    151 %[CellVarIndex,NbDimCell,VarTypeCell,errormsg]=find_field_cells(FieldData);
    152151if ~isempty(errormsg)
    153152    errormsg=['error in proj_field/proj_points:' errormsg];
     
    160159    end
    161160    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 cell
    163161    ivar_X=CellInfo{icell}.CoordIndex(end);
    164162    ivar_Y=CellInfo{icell}.CoordIndex(end-1);
     
    167165        ivar_Z=CellInfo{icell}.CoordIndex(1);
    168166    end
    169 %     ivar_rem=[];
    170 %     if isfield(CellInfo{icell},'VarIndex_ancillary')
    171 %         ivar_rem=CellInfo{icell}.VarIndex_ancillary;
    172 %     end
    173 %     if isfield(CellInfo{icell},'VarIndex_warnflag')
    174 %         ivar_rem=[ivar_rem CellInfo{icell}.VarIndex_warnflag];
    175 %     end
    176167    ivar_FF=[];
    177168    if isfield(CellInfo{icell},'VarIndex_errorflag')
     
    181172            return
    182173        end
    183     end
    184 %     
     174    end   
    185175    % select types of  variables to be projected
    186176   ListProj={'VarIndex_scalar','VarIndex_image','VarIndex_color','VarIndex_vector_x','VarIndex_vector_y'};
     
    550540
    551541%% group the variables (fields of 'FieldData') in cells of variables with the same dimensions
    552 %[CellVarIndex,NbDim,VarTypeCell,errormsg]=find_field_cells(FieldData);
    553542[CellInfo,NbDim,errormsg]=find_field_cells(FieldData);
    554543if ~isempty(errormsg)
     
    561550ProjData.VarDimName={};
    562551for icell=1:length(CellInfo)
    563     %VarIndex=CellInfo{icell}.VarIndex;%  indices of the selected variables in the list FieldData.ListVarName
    564    % VarType=VarTypeCell{icell}; %types of variables
    565552    if NbDim(icell)~=2% proj_line acts only on fields of space dimension 2, TODO: check 3D case
    566553        continue
     
    722709        else
    723710            test_Amat=1;%image or 2D matrix
    724             test_interp2=0;%default
    725 %             if ~isempty(VarType.coord_y) 
     711            test_interp2=0;%default
    726712            AYName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(end-1)};
    727713            AXName=FieldData.ListVarName{CellInfo{icell}.CoordIndex(end)};
     
    985971
    986972%% group the variables (fields of 'FieldData') in cells of variables with the same dimensions
    987 % CellVarIndex=cells of variable index arrays
    988 %[CellVarIndex,NbDimVec,VarTypeCell,errormsg]=find_field_cells(FieldData);
    989973[CellInfo,NbDimArray,errormsg]=find_field_cells(FieldData);
    990974if ~isempty(errormsg)
     
    10431027        ivar_V=CellInfo{icell}.VarIndex_vector_y;
    10441028    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 %     end
    10491029    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
    10611032    %dimensions
    10621033    DimCell=FieldData.VarDimName{VarIndex(1)};
     
    12031174                    if isfield(CellInfo{icell},'VarIndex_scalar')
    12041175                        VarName_scalar=FieldData.ListVarName{CellInfo{icell}.VarIndex_scalar};
    1205                         if ~isempty(VarType.errorflag)
     1176                        if isfield(CellInfo{icell},'errorflag') && ~isempty(CellInfo{icell}.errorflag)
    12061177                            FieldData.(VarName_scalar)=FieldData.(VarName_scalar)(indsel);
    12071178                        end
     
    12361207        case 'tps'
    12371208            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}));
    12431214                end
    12441215                coord_x_proj=XMin:DX:XMax;
     
    12491220                XI=XI+ObjectData.Coord(1,1);
    12501221                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));   
    12521223                ListFieldProj=(fieldnames(DataOut))';
    12531224                VarDimName=cell(size(ListFieldProj));
     
    15091480                        end
    15101481                        %filter the field (image) if option 'filter' is used
    1511                         if test_filter
    1512                             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 values
    1516                             end
    1517                         end
     1482%                         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
    15181489                        eval(['vec_A=reshape(FieldData.' VarName ',[],nbcolor);'])%put the original image in line
    15191490                        %ind_in=find(flagin);
     
    17021673%-----------------------------------------------------------------
    17031674idimvar=0;
    1704 % [CellVarIndex,NbDimVec,VarTypeCell,errormsg]=find_field_cells(FieldData);
    1705 % if ~isempty(errormsg)
    1706 %     errormsg=['error in proj_field/proj_plane:' errormsg];
    1707 %     return
    1708 % end
    1709 
    17101675% LOOP ON GROUPS OF VARIABLES SHARING THE SAME DIMENSIONS
    17111676% CellVarIndex=cells of variable index arrays
Note: See TracChangeset for help on using the changeset viewer.