Changeset 159 for trunk/src/proj_field.m
- Timestamp:
- Dec 23, 2010, 8:09:20 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/proj_field.m
r158 r159 1337 1337 % case with no rotation and interpolation 1338 1338 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; 1344 1341 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 1376 1380 else % case with rotation and/or interpolation 1377 1381 if isempty(Coord_z) %2D case
Note: See TracChangeset
for help on using the changeset viewer.