Changeset 159 for trunk/src/proj_field.m


Ignore:
Timestamp:
Dec 23, 2010, 8:09:20 AM (13 years ago)
Author:
sommeria
Message:

bug in civ corrected: civ2 was not lauched for Windows system
various bugs corrections and cleaning

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/proj_field.m

    r158 r159  
    13371337        % case with no rotation and interpolation
    13381338        if isequal(ProjMode,'projection') && isequal(Phi,0) && isequal(Theta,0) && isequal(Psi,0)
    1339             if test_direct(1)
    1340                 min_ind1=ceil((YMin-Coord{1}(1))/DYinit)+1;
    1341                 max_ind1=floor((YMax-Coord{1}(1))/DYinit)+1;
    1342                 Ybound(1)=Coord{1}(1)+DYinit*(min_ind1-1);
    1343                 Ybound(2)=Coord{1}(1)+DYinit*(max_ind1-1);
     1339            if ~testXMin && ~testXMax && ~testYMin && ~testYMax
     1340                ProjData=FieldData;
    13441341            else
    1345                 min_ind1=ceil((Coord{1}(1)-YMax)/DYinit)+1;
    1346                 max_ind1=floor((Coord{1}(1)-YMin)/DYinit)+1;
    1347                 Ybound(2)=Coord{1}(1)-DYinit*(max_ind1-1);
    1348                 Ybound(1)=Coord{1}(1)-DYinit*(min_ind1-1);
    1349             end             
    1350             if test_direct(2)==1
    1351                 min_ind2=ceil((XMin-Coord{2}(1))/DXinit)+1;
    1352                 max_ind2=floor((XMax-Coord{2}(1))/DXinit)+1;
    1353                 Xbound(1)=Coord{2}(1)+DXinit*(min_ind2-1);
    1354                 Xbound(2)=Coord{2}(1)+DXinit*(max_ind2-1);
    1355             else
    1356                 min_ind2=ceil((Coord{2}(1)-XMax)/DXinit)+1;
    1357                 max_ind2=floor((Coord{2}(1)-XMin)/DXinit)+1;
    1358                 Xbound(2)=Coord{2}(1)+DXinit*(max_ind2-1);
    1359                 Xbound(1)=Coord{2}(1)+DXinit*(min_ind2-1);
    1360             end
    1361             min_ind1=max(min_ind1,1);% deals with margin (bound lower than the first index)
    1362             min_ind2=max(min_ind2,1);
    1363             max_ind1=min(max_ind1,DimValue(1));
    1364             max_ind2=min(max_ind2,DimValue(2));
    1365             for ivar=VarIndex
    1366                 VarName=FieldData.ListVarName{ivar};
    1367                 ProjData.ListVarName=[ProjData.ListVarName VarName];
    1368                 ProjData.VarDimName=[ProjData.VarDimName {DimCell}];
    1369                 if isfield(FieldData,'VarAttribute') && length(FieldData.VarAttribute)>=ivar
    1370                     ProjData.VarAttribute{length(ProjData.ListVarName)}=FieldData.VarAttribute{ivar};
    1371                 end
    1372                 eval(['ProjData.' VarName '=FieldData.' VarName '(min_ind1:max_ind1,min_ind2:max_ind2) ;']);
    1373             end 
    1374             eval(['ProjData.' AYName '=FieldData.' AYName ';']) %record the new (projected ) y coordinates
    1375             eval(['ProjData.' AXName '=FieldData.' AXName ';']) %record the new (projected ) x coordinates
     1342                if test_direct(1)
     1343                    min_ind1=ceil((YMin-Coord{1}(1))/DYinit)+1;
     1344                    max_ind1=floor((YMax-Coord{1}(1))/DYinit)+1;
     1345                    Ybound(1)=Coord{1}(1)+DYinit*(min_ind1-1);
     1346                    Ybound(2)=Coord{1}(1)+DYinit*(max_ind1-1);
     1347                else
     1348                    min_ind1=ceil((Coord{1}(1)-YMax)/DYinit)+1;
     1349                    max_ind1=floor((Coord{1}(1)-YMin)/DYinit)+1;
     1350                    Ybound(2)=Coord{1}(1)-DYinit*(max_ind1-1);
     1351                    Ybound(1)=Coord{1}(1)-DYinit*(min_ind1-1);
     1352                end             
     1353                if test_direct(2)==1
     1354                    min_ind2=ceil((XMin-Coord{2}(1))/DXinit)+1;
     1355                    max_ind2=floor((XMax-Coord{2}(1))/DXinit)+1;
     1356                    Xbound(1)=Coord{2}(1)+DXinit*(min_ind2-1);
     1357                    Xbound(2)=Coord{2}(1)+DXinit*(max_ind2-1);
     1358                else
     1359                    min_ind2=ceil((Coord{2}(1)-XMax)/DXinit)+1;
     1360                    max_ind2=floor((Coord{2}(1)-XMin)/DXinit)+1;
     1361                    Xbound(2)=Coord{2}(1)+DXinit*(max_ind2-1);
     1362                    Xbound(1)=Coord{2}(1)+DXinit*(min_ind2-1);
     1363                end
     1364                min_ind1=max(min_ind1,1);% deals with margin (bound lower than the first index)
     1365                min_ind2=max(min_ind2,1);
     1366                max_ind1=min(max_ind1,DimValue(1));
     1367                max_ind2=min(max_ind2,DimValue(2));
     1368                for ivar=VarIndex
     1369                    VarName=FieldData.ListVarName{ivar};
     1370                    ProjData.ListVarName=[ProjData.ListVarName VarName];
     1371                    ProjData.VarDimName=[ProjData.VarDimName {DimCell}];
     1372                    if isfield(FieldData,'VarAttribute') && length(FieldData.VarAttribute)>=ivar
     1373                        ProjData.VarAttribute{length(ProjData.ListVarName)}=FieldData.VarAttribute{ivar};
     1374                    end
     1375                    eval(['ProjData.' VarName '=FieldData.' VarName '(min_ind1:max_ind1,min_ind2:max_ind2,:) ;']);
     1376                end 
     1377                eval(['ProjData.' AYName '=[Ybound(1) Ybound(2)];']) %record the new (projected ) y coordinates
     1378                eval(['ProjData.' AXName '=[Xbound(1) Xbound(2)];']) %record the new (projected ) x coordinates
     1379            end
    13761380        else       % case with rotation and/or interpolation
    13771381            if isempty(Coord_z) %2D case
Note: See TracChangeset for help on using the changeset viewer.