Changeset 109 for trunk/src/sub_field.m


Ignore:
Timestamp:
Oct 4, 2010, 10:39:11 PM (13 years ago)
Author:
sommeria
Message:

merge_proj.m, proj_field.m: bugs repaired merging of images
plot_field.m: minor cleaning
imadoc2struct: introduce the possibility of readying the calibration point coordinates
sub_field.m:bugs repaired
geometry_calib, create_grid: introduction of new calibration methods, improvement of detect_grid

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sub_field.m

    r89 r109  
    102102   %check coincidence in positions
    103103   %unstructured coordinates
    104    if testX
     104   if testX     
     105       if testU % vector fields
     106            U_1_Name=Field_1.ListVarName{VarType_1.vector_x};
     107            V_1_Name=Field_1.ListVarName{VarType_1.vector_y};
     108            eval(['vec_U_1=Field_1.' U_1_Name ';'])
     109            eval(['vec_V_1=Field_1.' V_1_Name ';'])
     110            nbpoints_x_1=size(vec_U_1,2);
     111            nbpoints_y_1=size(vec_U_1,1);
     112            vec_U_1=reshape(vec_U_1,nbpoints_x_1*nbpoints_y_1,1);
     113            vec_V_1=reshape(vec_V_1,nbpoints_x_1*nbpoints_y_1,1);
     114            if testfalse_1
     115                vec_U_1=vec_U_1(indsel);
     116                vec_V_1=vec_V_1(indsel);
     117            end           
     118       else %(~testU && ~testU_1)
     119           A_1_Name=Field_1.ListVarName{ivar_C_1};
     120           eval(['vec_A_1=Field_1.' A_1_Name ';'])   
     121           nbpoints_x_1=size(vec_A_1,2);
     122           nbpoints_y_1=size(vec_A_1,1);%TODO: use a faster interpolation method for a regular grid (size(x)=2)
     123           vec_A_1=reshape(vec_A_1,nbpoints_x_1*nbpoints_y_1,1);
     124           if testfalse_1
     125                vec_A_1=vec_A_1(indsel);
     126           end
     127       end
    105128       XName=Field.ListVarName{VarType.coord_x};
    106129       YName=Field.ListVarName{VarType.coord_y};
     
    108131       eval(['vec_Y=Field.' YName ';'])
    109132       nbpoints=numel(vec_X);
    110        vec_X=reshape(vec_X,1,nbpoints);
    111        vec_Y=reshape(vec_Y,1,nbpoints);
     133       vec_X=reshape(vec_X,nbpoints,1);
     134       vec_Y=reshape(vec_Y,nbpoints,1);
    112135       if testX_1 %unstructured coordinates for the second field
    113136            X_1_Name=Field_1.ListVarName{VarType_1.coord_x};
     
    115138            eval(['vec_X_1=Field_1.' X_1_Name ';'])
    116139            eval(['vec_Y_1=Field_1.' Y_1_Name ';'])
    117             nbpoints_1=numel(vec_X_1);
     140
    118141       else   %structured coordinates for the second field
    119142           y_1_Name=Field_1.ListVarName{VarType_1.coord(1)};
    120143           x_1_Name=Field_1.ListVarName{VarType_1.coord(2)};
    121144           eval(['y_1=Field_1.' y_1_Name ';'])
    122            eval(['x_1=Field_1.' x_1_Name ';']) 
    123            npxy(1)=numel(y_1);
    124            npxy(2)=numel(x_1);
    125            nbpoints_1=npxy(1)*npxy(2);
     145           eval(['x_1=Field_1.' x_1_Name ';'])
     146           if isequal(numel(x_1),2) 
     147               x_1=linspace(x_1(1),x_1(2),nbpoints_x_1);
     148           end
     149           if isequal(numel(y_1),2) 
     150               y_1=linspace(y_1(1),y_1(2),nbpoints_y_1);
     151           end
    126152           [vec_X_1,vec_Y_1]=meshgrid(x_1,y_1);
    127153       end
    128        vec_X_1=reshape(vec_X_1,1,nbpoints_1);
    129        vec_Y_1=reshape(vec_Y_1,1,nbpoints_1);
     154       vec_X_1=reshape(vec_X_1,nbpoints_x_1*nbpoints_y_1,1);
     155       vec_Y_1=reshape(vec_Y_1,nbpoints_x_1*nbpoints_y_1,1);
    130156       if testfalse_1
    131157           FFName_1=Field_1.ListVarName{VarType_1.errorflag};         
    132158           eval(['vec_FF_1=Field_1.' FFName_1 ';'])
    133            vec_FF_1=reshape(vec_FF_1,1,nbpoints_1);
     159           vec_FF_1=reshape(vec_FF_1,nbpoints_1,1);
    134160           indsel=find(~vec_FF_1);
    135161           vec_X_1=vec_X_1(indsel);
    136162           vec_Y_1=vec_Y_1(indsel);
    137        end
    138        if testU % vector fields
    139             U_1_Name=Field_1.ListVarName{VarType_1.vector_x};
    140             V_1_Name=Field_1.ListVarName{VarType_1.vector_y};
    141             eval(['vec_U_1=Field_1.' U_1_Name ';'])
    142             eval(['vec_V_1=Field_1.' V_1_Name ';'])
    143             vec_U_1=reshape(vec_U_1,1,nbpoints_1);
    144             vec_V_1=reshape(vec_V_1,1,nbpoints_1);
    145             if testfalse_1
    146                 vec_U_1=vec_U_1(indsel);
    147                 vec_V_1=vec_V_1(indsel);
    148             end           
    149        else
    150            A_1_Name=Field_1.ListVarName{ivar_C_1};
    151            eval(['vec_A_1=Field_1.' A_1_Name ';'])
    152            vec_A_1=reshape(vec_A_1,1,nbpoints_1);
    153            if testfalse_1
    154                 vec_A_1=vec_A_1(indsel);
    155            end
    156163       end
    157164       if ~isequal(vec_X_1,vec_X) && ~isequal(vec_Y_1,vec_Y) % if the unstructured positions are not the same
     
    160167               vec_V_1=griddata_uvmat(vec_X_1,vec_Y_1,vec_V_1,vec_X,vec_Y);  %interpolate vectors in the second field   
    161168           else
    162                vec_A_1=griddata_uvmat(vec_X_1,vec_Y_1,vec_A_1,vec_X,vec_Y);  %interpolate vectors in the second field
     169               vec_A_1=griddata_uvmat(vec_X_1,vec_Y_1,double(vec_A_1),vec_X,vec_Y);  %interpolate vectors in the second field
    163170           end
    164171       end
     
    168175           eval(['vec_U=Field.' UName ';'])
    169176           eval(['vec_V=Field.' VName ';'])       
    170            vec_U=reshape(vec_U,1,numel(vec_U));
    171            vec_V=reshape(vec_V,1,numel(vec_V));
     177           vec_U=reshape(vec_U,numel(vec_U),1);
     178           vec_V=reshape(vec_V,numel(vec_V),1);
    172179           eval(['SubData.' UName '=vec_U-vec_U_1;'])
    173180           eval(['SubData.' VName '=vec_V-vec_V_1;'])
    174181       else
    175182           AName=Field.ListVarName{ivar_C};
     183           size(Field.vort)
    176184           eval(['SubData.' AName '=Field.' AName '-vec_A_1;'])
    177185       end
Note: See TracChangeset for help on using the changeset viewer.