Changeset 1045 for trunk/src/get_field.m
- Timestamp:
- May 21, 2018, 7:06:45 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/get_field.m
r1040 r1045 135 135 return 136 136 end 137 [Field.MaxDim,imax]=max(NbDim); 137 if isempty(CellInfo) 138 Field.MaxDim=max(cellfun(@numel,Field.Display.VarDimName)); 139 check_cellinfo=false; 140 else 141 [Field.MaxDim,imax]=max(NbDim); 142 check_cellinfo=true; 143 end 138 144 139 145 %% set time mode … … 210 216 %% set default field options 211 217 checknbdim=cellfun('size',Field.Display.VarDimName,2); 212 if max(checknbdim)<=1213 Field.MaxDim=1;% only 1D fields, considered as a time series by default214 end218 % if max(checknbdim)<=1 219 % Field.MaxDim=1;% only 1D fields, considered as a time series by default 220 % end 215 221 if Field.MaxDim>=2 && ~checkseries% case of 2D (or 3D) fields 216 222 check_vec_input=0; 223 % case of vector initially selected from uvmat input 217 224 if isfield(ParamIn,'vector_x')&& isfield(ParamIn,'vector_y') 218 225 ichoice_x=find(strcmp(ParamIn.vector_x,Field.Display.ListVarName),1); … … 224 231 end 225 232 end 226 if ~check_vec_input && isfield(CellInfo{imax},'VarIndex_vector_x') && isfield(CellInfo{imax},'VarIndex_vector_y') 233 % otherwise select vectors marked as attributes in the input field 234 if check_cellinfo && ~check_vec_input && isfield(CellInfo{imax},'VarIndex_vector_x') && isfield(CellInfo{imax},'VarIndex_vector_y') 227 235 set(handles.vector_x,'UserData',CellInfo{imax}.VarIndex_vector_x(1)) 228 236 set(handles.vector_y,'UserData',CellInfo{imax}.VarIndex_vector_y(1)) … … 252 260 253 261 %% Make choices of coordinates from input 254 if isfield(CellInfo{imax},'CoordIndex') 255 CoordIndex=CellInfo{imax}.CoordIndex; 256 if numel(CoordIndex)==2 257 if isfield(ParamIn,'Coord_x')&& isfield(ParamIn,'Coord_y') 258 YName=ParamIn.Coord_y; 259 XName=ParamIn.Coord_x; 260 else 261 YName=Field.ListVarName{CoordIndex(1)}; 262 XName=Field.ListVarName{CoordIndex(2)}; 263 end 264 ListCoord=get(handles.Coord_x,'String'); 265 XIndex=find(strcmp(XName,ListCoord)); 266 if ~isempty(XIndex) 267 set(handles.Coord_x,'Value',XIndex) 268 end 269 YIndex=find(strcmp(YName,ListCoord)); 270 if ~isempty(YIndex) 271 set(handles.Coord_y,'Value',YIndex) 272 end 273 end 274 end 262 % check_menu=false(1,numel(Data.ListVarName)); 263 % ListCoordMenu=1:numel(Data.ListVarName); 264 % CoordIndex=CellInfo{icell}.CoordIndex(CellInfo{icell}.CoordIndex~=0); 265 % 266 % for ivar=find(check_coord_names) 267 % check_dim=strcmp(Data.VarDimName{ivar},DimCell_var); 268 % if ~isempty(find(check_dim)) 269 % check_menu(ivar)=true; 270 % end 271 % end 272 % CellInfo{icell}.CoordMenu=[CoordIndex find(check_menu)]; 273 % ListCoordMenu(CoordIndex)=[]; 274 % for ivar=ListCoordMenu 275 % DimCell=Data.VarDimName{ivar}; 276 % if isequal(DimCell,DimCell_var) 277 % check_menu(ivar)=true; 278 % end 279 % end 280 % CellInfo{icell}.CoordMenu=[CellInfo{icell}.CoordMenu find(check_menu)]; 281 % 282 % if isfield(CellInfo{imax},'CoordIndex') 283 % CoordIndex=CellInfo{imax}.CoordIndex; 284 % if numel(CoordIndex)==2 285 % if isfield(ParamIn,'Coord_x')&& isfield(ParamIn,'Coord_y') 286 % YName=ParamIn.Coord_y; 287 % XName=ParamIn.Coord_x; 288 % else 289 % YName=Field.ListVarName{CoordIndex(1)}; 290 % XName=Field.ListVarName{CoordIndex(2)}; 291 % end 292 % ListCoord=get(handles.Coord_x,'String'); 293 % XIndex=find(strcmp(XName,ListCoord)); 294 % if ~isempty(XIndex) 295 % set(handles.Coord_x,'Value',XIndex) 296 % end 297 % YIndex=find(strcmp(YName,ListCoord)); 298 % if ~isempty(YIndex) 299 % set(handles.Coord_y,'Value',YIndex) 300 % end 301 % end 302 % end 275 303 276 304 %% put the GUI on the lower right of the sceen … … 304 332 % --- Activated by selection in the list of variables 305 333 % ---------------------------------------------------------------------- 306 function variables_Callback(hObject, eventdata, handles)334 function variables_Callback(hObject, VarName, handles) 307 335 308 336 Tabchar={''};%default … … 388 416 end 389 417 390 %% propose a plot by default if a variable has been selected391 if ~is equal(index,1)418 %% propose a plot by default if variables_Callback has not been already called by FieldOption_Callback (VarName is not a char string) 419 if ~ischar(VarName) && ~isequal(index,1) 392 420 if numel(DimCell)==1 393 421 set(handles.FieldOption,'Value',1)%propose 1D plot … … 412 440 FieldOption=FieldList{get(handles.FieldOption,'Value')}; 413 441 switch FieldOption 414 415 442 case '1D plot' 416 443 set(handles.Coordinates,'Visible','on') … … 423 450 set(handles.PanelScalar,'Visible','off') 424 451 set(handles.PanelVectors,'Visible','off') 425 set(handles.Coord_y,'Visible','o ff')426 set(handles.Y_title,'Visible','o ff')452 set(handles.Coord_y,'Visible','on') 453 set(handles.Y_title,'Visible','on') 427 454 set(handles.Coord_z,'Visible','off') 428 455 set(handles.Z_title,'Visible','off') 429 ordinate_Callback(hObject, VarName, handles) 430 456 %ordinate_Callback(hObject, VarName, handles) 431 457 case {'scalar'} 432 458 set(handles.Coordinates,'Visible','on') … … 440 466 set(handles.PanelScalar,'Position',pos) 441 467 set(handles.Coord_y,'Visible','on') 442 set(handles.Y_title,'Visible','on') 443 444 if ~ischar(VarName) 445 446 %default scalar selection 447 test_coord=zeros(size(Field.Display.VarDimName)); %=1 when variable #ilist is eligible as structured coordiante 448 for ilist=1:numel(Field.Display.VarDimName) 449 if isfield(Field.Display,'VarAttribute') && numel(Field.Display.VarAttribute)>=ilist && isfield(Field.Display.VarAttribute{ilist},'Role') 450 Role=Field.Display.VarAttribute{ilist}.Role; 451 if strcmp(Role,'coord_x')||strcmp(Role,'coord_y') 468 set(handles.Y_title,'Visible','on') 469 if ~ischar(VarName) 470 %default scalar selection 471 test_coord=zeros(size(Field.Display.VarDimName)); %=1 when variable #ilist is eligible as structured coordiante 472 for ilist=1:numel(Field.Display.VarDimName) 473 if isfield(Field.Display,'VarAttribute') && numel(Field.Display.VarAttribute)>=ilist && isfield(Field.Display.VarAttribute{ilist},'Role') 474 Role=Field.Display.VarAttribute{ilist}.Role; 475 if strcmp(Role,'coord_x')||strcmp(Role,'coord_y') 476 test_coord(ilist)=1; 477 end 478 end 479 dimnames=Field.Display.VarDimName{ilist}; %list of dimensions for variable #ilist 480 if numel(dimnames)==1 && strcmp(dimnames{1},Field.Display.ListVarName{ilist})%dimension variable 452 481 test_coord(ilist)=1; 453 482 end 454 483 end 455 dimnames=Field.Display.VarDimName{ilist}; %list of dimensions for variable #ilist 456 if numel(dimnames)==1 && strcmp(dimnames{1},Field.Display.ListVarName{ilist})%dimension variable 457 test_coord(ilist)=1; 458 end 459 end 460 scalar_index=find(~test_coord,1);%get the first variable not a coordinate 461 if isempty(scalar_index) 462 set(handles.scalar,'Value',1) 463 else 464 set(handles.scalar,'Value',scalar_index) 465 end 466 end 467 scalar_Callback(hObject,VarName, handles) 468 469 484 scalar_index=find(~test_coord,1);%get the first variable not a coordinate 485 if isempty(scalar_index) 486 set(handles.scalar,'Value',1) 487 else 488 set(handles.scalar,'Value',scalar_index) 489 end 490 end 491 scalar_Callback(hObject,VarName, handles) 470 492 case 'vectors' 471 493 set(handles.PanelVectors,'Visible','on') … … 509 531 end 510 532 end 511 vector_Callback(handles) 512 533 vector_Callback(handles) 513 534 case 'civdata...' 514 535 set(handles.PanelOrdinate,'Visible','off') … … 576 597 end 577 598 end 578 set(handles.Coord_x,'Value',coord_val )579 end 580 set(handles.Coord_x,'String', ListCoord)599 set(handles.Coord_x,'Value',coord_val+1) 600 end 601 set(handles.Coord_x,'String',[{''}; ListCoord]) 581 602 582 603 … … 611 632 function scalar_Callback(hObject, VarName, handles) 612 633 613 Field=get(handles.get_field,'UserData'); 614 scalar_menu=get(handles.scalar,'String'); 615 if ischar(VarName) 634 Field=get(handles.get_field,'UserData');% get the input field info stored in UserData of the GUI 635 scalar_menu=get(handles.scalar,'String');% read the menu for scalar selection 636 if ischar(VarName)% case of a call with input variable 616 637 ScalarName=VarName; 617 638 scalar_index=find(strcmp(VarName,scalar_menu)); 618 set(handles.scalar,'Value',scalar_index) 619 else 639 set(handles.scalar,'Value',scalar_index)% select the input variable field in the menu 640 else % no input variable, the variable ScalarName is selected from the menu 620 641 scalar_index=get(handles.scalar,'Value'); 621 642 ScalarName=scalar_menu{scalar_index}; … … 626 647 test_coord=zeros(size(Field.Display.VarDimName)); %=1 when variable #ilist is eligible as structured coordiante 627 648 dim_var=Field.Display.VarDimName{scalar_index};%list of dimensions of the selected variable 628 if ~get(handles.CheckDimensionX,'Value')649 %if ~get(handles.CheckDimensionX,'Value') 629 650 %look for coordinate variables among the other variables 630 651 for ilist=1:numel(Field.Display.VarDimName) … … 636 657 end 637 658 end 638 end659 %end 639 660 var_component=find(test_component);% list of variable indices elligible as unstructured coordinates 640 var_coord=find(test_coord);% % list of variable indices elligible as structured coordinates661 var_coord=find(test_coord);% % list of variable indices elligible as gridded coordinates 641 662 var_coord(var_coord==scalar_index)=[]; 642 663 var_component(var_component==scalar_index)=[]; … … 664 685 elseif strcmp(Role,'coord_y') 665 686 coord_val(2)=ilist; 666 687 elseif strcmp(Role,'coord_z') 667 688 coord_val(3)=ilist; 689 Check3D=1; 668 690 end 669 691 end … … 679 701 end 680 702 end 681 if get(handles.CheckDimensionX,'Value')682 set(handles.Coord_x,'Value',2)683 set(handles.Coord_x,'String',dim_var')684 else703 % if get(handles.CheckDimensionX,'Value') 704 % set(handles.Coord_x,'Value',2) 705 % set(handles.Coord_x,'String',dim_var') 706 % else 685 707 set(handles.Coord_x,'Value',coord_val(1)) 686 708 set(handles.Coord_x,'String',ListCoord) 687 end688 if get(handles.CheckDimensionX,'Value')689 set(handles.Coord_y,'Value',1)690 set(handles.Coord_y,'String',dim_var')691 else709 % end 710 % if get(handles.CheckDimensionX,'Value') 711 % set(handles.Coord_y,'Value',1) 712 % set(handles.Coord_y,'String',dim_var') 713 % else 692 714 set(handles.Coord_y,'Value',coord_val(2)) 693 715 set(handles.Coord_y,'String',ListCoord) 694 end 695 if get(handles.CheckDimensionX,'Value') 696 set(handles.Coord_z,'Value',1) 697 set(handles.Coord_z,'String',dim_var') 698 else 716 % end 717 % if get(handles.CheckDimensionX,'Value') 718 % set(handles.Coord_z,'Value',1) 719 % set(handles.Coord_z,'String',dim_var') 720 % else 721 if numel(test_coord)>=3 699 722 set(handles.Coord_z,'Value',coord_val(2)) 700 723 set(handles.Coord_z,'String',ListCoord) 724 set(handles.Coord_z,'Visible','on') 725 set(handles.Check3D,'Value', 1) 701 726 end 702 727 … … 911 936 string=get(handles.Coord_y,'String'); 912 937 VarName=string{index}; 938 913 939 if ~ischar(DimCell) 914 940 update_field(handles,VarName) … … 992 1018 if ~isempty(index) 993 1019 set(handles.variables,'Value',index+1) 994 variables_Callback(handles.variables, [], handles)1020 variables_Callback(handles.variables, VarName, handles) 995 1021 end 996 1022 … … 1022 1048 1023 1049 % --- Executes on button press in CheckDimensionY. 1024 function CheckDimensionX_Callback(hObject, eventdata, handles)1025 CheckDimensionX=get(handles.CheckDimensionX,'value')1026 if CheckDimensionX1027 set(handles.Coordinates,'visible','off')1028 else1029 set(handles.Coordinates,'visible','on')1030 end1050 % function CheckDimensionX_Callback(hObject, eventdata, handles) 1051 % CheckDimensionX=get(handles.CheckDimensionX,'value') 1052 % if CheckDimensionX 1053 % set(handles.Coordinates,'visible','off') 1054 % else 1055 % set(handles.Coordinates,'visible','on') 1056 % end 1031 1057 % FieldList=get(handles.FieldOption,'String'); 1032 1058 % FieldOption=FieldList{get(handles.FieldOption,'Value')};
Note: See TracChangeset
for help on using the changeset viewer.