Changeset 1094 for trunk/src/proj_field.m
- Timestamp:
- Mar 25, 2021, 9:37:04 AM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/proj_field.m
r1093 r1094 1125 1125 ProjMode=num2cell(blanks(numel(CellInfo))); 1126 1126 ProjMode=regexprep(ProjMode,' ',ObjectData.ProjMode); 1127 %ProjMode=cell(size(CellInfo));1128 % for icell=1:numel(CellInfo)1129 % ProjMode{icell}=ObjectData.ProjMode;% projection mode of the plane object1130 % end1131 1127 icell_grid=[];% field cell index which defines the grid 1132 1128 if strcmp(ObjectData.ProjMode,'projection') … … 1192 1188 [XI,YI]=meshgrid(coord_x_proj,coord_y_proj);%grid in the new coordinates 1193 1189 ProjData.VarDimName={AYName,AXName}; 1194 % XI=ObjectData.Coord(1,1)+(X)*cos(PlaneAngle(3))-YI*sin(PlaneAngle(3));%corresponding coordinates in the original system1195 % YI=ObjectData.Coord(1,2)+(X)*sin(PlaneAngle(3))+YI*cos(PlaneAngle(3));1196 1190 else% we use the existing grid from field cell #icell_grid 1197 1191 NbDim=NbDimArray(icell_grid); … … 1204 1198 ProjData.(AXName)=FieldData.(AXName); % new (projected ) y coordinates 1205 1199 end 1206 ProjData.ListVarName={AYName,AXName}; 1207 1200 ProjData.ListVarName={AYName,AXName}; 1208 1201 ProjData.VarAttribute{1}.Role='coord_y'; 1209 1202 ProjData.VarAttribute{2}.Role='coord_x'; 1203 YAttribute=FieldData.VarAttribute{CellInfo{icell_grid}.CoordIndex(NbDim-1)}; 1204 XAttribute=FieldData.VarAttribute{CellInfo{icell_grid}.CoordIndex(NbDim)}; 1205 if ~testangle 1206 if isfield(YAttribute,'units') 1207 ProjData.VarAttribute{1}.units=YAttribute.units; 1208 end 1209 if isfield(XAttribute,'units') 1210 ProjData.VarAttribute{2}.units=XAttribute.units; 1211 end 1212 end 1210 1213 end 1211 1214 … … 1244 1247 coord_x=FieldData.(CellInfo{icell}.XName);% initial x coordinates 1245 1248 coord_y=FieldData.(CellInfo{icell}.YName);% initial y coordinates 1246 1249 1247 1250 if check3D 1248 1251 coord_z=FieldData.(CellInfo{icell}.ZName); … … 1348 1351 VarName_FF=FieldData.ListVarName{CellInfo{icell}.VarIndex_errorflag}; 1349 1352 indsel=find(FieldData.(VarName_FF)==0); 1353 if isempty(indsel) 1354 errormsg='bad projection plane: no data found in the projection domain'; 1355 return 1356 end 1350 1357 coord_X=coord_X(indsel); 1351 1358 coord_Y=coord_Y(indsel); … … 1625 1632 end 1626 1633 [X,Y]=meshgrid(Coord{2},Coord{1});%initial coordinates 1627 %name of error flag variable 1628 % FFName='FF';%default name (if not already used) 1629 % if isfield(ProjData,'FF') 1630 % ind=1; 1631 % while isfield(ProjData,['FF_' num2str(ind)]) 1632 % ind=ind+1; 1633 % end 1634 % FFName=['FF_' num2str(ind)];% append an index to the name of error flag, FF_1,FF_2... 1635 % end 1634 1636 1635 % project all variables in the cell 1637 1636 for ivar=VarIndex … … 1656 1655 VarAttribute{length(ListVarName)+nbcoord}=FieldData.VarAttribute{ivar}; 1657 1656 end 1658 % ProjData.(FFName)=isnan(ProjData.(VarName));%detact NaN (points outside the interpolation range) 1659 % ProjData.(VarName)(ProjData.(FFName))=0; %set to 0 the NaN data 1660 end 1661 %update list of variables with error flag 1662 % ListVarName=[ListVarName FFName]; 1663 % VarDimName=[VarDimName {DimCell}]; 1664 % VarAttribute{numel(ListVarName)}.Role='errorflag'; 1657 end 1665 1658 elseif ~testangle % 3Dcase without change of angle 1666 1659 % unstructured z coordinate … … 1691 1684 Coord{2}=FieldData.(FieldData.ListVarName{CellInfo{icell}.CoordIndex(2)});%initial y coordinates 1692 1685 Coord{3}=FieldData.(FieldData.ListVarName{CellInfo{icell}.CoordIndex(3)});%initial x coordinates 1693 1694 1686 coord_x_proj=ObjectData.RangeX(1):InterpMesh:ObjectData.RangeX(2);% set of coordinates in the projection plane 1695 1687 coord_y_proj=ObjectData.RangeY(1):InterpMesh:ObjectData.RangeY(2); … … 1700 1692 YI_proj=M(2,1)*XI+M(2,2)*YI+ObjectData.Coord(1,2); 1701 1693 ZI_proj=M(3,1)*XI+M(3,2)*YI+ObjectData.Coord(1,3); 1702 1703 1704 1694 for ivar=VarIndex 1705 1695 VarName=FieldData.ListVarName{ivar}; … … 1763 1753 end 1764 1754 end 1765 % %prepare substraction in case of two input fields1766 % SubData.ListVarName={};1767 % SubData.VarDimName={};1768 % SubData.VarAttribute={};1769 % check_remove=zeros(size(ProjData.ListVarName));1770 % for iproj=1:numel(ProjData.VarAttribute)1771 % if isfield(ProjData.VarAttribute{iproj},'CheckSub')&&isequal(ProjData.VarAttribute{iproj}.CheckSub,1)1772 % VarName=ProjData.ListVarName{iproj};1773 % SubData.ListVarName=[SubData.ListVarName {VarName}];1774 % SubData.VarDimName=[SubData.VarDimName ProjData.VarDimName{iproj}];1775 % SubData.VarAttribute=[SubData.VarAttribute ProjData.VarAttribute{iproj}];1776 % SubData.(VarName)=ProjData.(VarName);1777 % check_remove(iproj)=1;1778 % end1779 % end1780 % if ~isempty(find(check_remove))1781 % ind_remove=find(check_remove);1782 % ProjData.ListVarName(ind_remove)=[];1783 % ProjData.VarDimName(ind_remove)=[];1784 % ProjData.VarAttribute(ind_remove)=[];1785 % ProjData=sub_field(ProjData,[],SubData);1786 % end1787 1755 1788 1756 %-----------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.