Changeset 1084 for trunk/src/get_field.m
- Timestamp:
- Aug 10, 2020, 3:20:45 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/get_field.m
r1083 r1084 414 414 set(handles.PanelVectors,'Visible','off') 415 415 set(handles.Coord_y,'Visible','on') 416 set(handles.Coord_y,'Max',2)%allow multiple selection 416 417 set(handles.Y_title,'Visible','on') 417 418 set(handles.Coord_z,'Visible','off') 418 419 set(handles.Z_title,'Visible','off') 419 %ordinate_Callback(hObject, VarName, handles) 420 set(handles.Coord_x,'String',Field.Display.ListVarName') 421 Coord_x_Callback(hObject, VarName, handles) 422 %set(handles.Coord_y,'String',Field.Display.ListVarName') 423 %Coord_x_Callback(hObject, VarName, handles) 420 424 case {'scalar'} 421 425 set(handles.Coordinates,'Visible','on') … … 502 506 end 503 507 504 %NOT USED : TO DELETE------------------------------------------------------------------------ 505 function ordinate_Callback(hObject, DimCell, handles)508 509 function set_coord_y_options(handles,VarName) 506 510 %------------------------------------------------------------------------ 507 511 Field=get(handles.get_field,'UserData'); 508 y_index=get(handles.ordinate,'Value'); 509 y_menu=get(handles.ordinate,'String'); 510 if isempty(y_menu) 511 return 512 else 513 YName=y_menu{y_index}; 514 end 512 VarIndex=find(strcmp(VarName,Field.Display.ListVarName),1); 513 DimCell=Field.Display.VarDimName{VarIndex}; 514 % y_index=get(handles.Coord_y,'Value'); 515 % y_menu=get(handles.Coord_y,'String'); 516 % if isempty(y_menu) 517 % return 518 % else 519 % YName=y_menu{y_index}; 520 % end 515 521 516 522 %% set list of possible coordinates 517 test_component=zeros(size(Field.Display.VarDimName));%=1 when variable #ilist is eligible as unstructured coordinate523 % test_component=zeros(size(Field.Display.VarDimName));%=1 when variable #ilist is eligible as unstructured coordinate 518 524 test_coord=zeros(size(Field.Display.VarDimName)); %=1 when variable #ilist is eligible as structured coordiante 519 ListCoord={''};520 dim_var=Field.Display.VarDimName{y_index};%list of dimensions of the selected variable525 % ListCoord={''}; 526 % dim_var=Field.Display.VarDimName{y_index};%list of dimensions of the selected variable 521 527 522 528 for ilist=1:numel(Field.Display.VarDimName) 523 529 dimnames=Field.Display.VarDimName{ilist}; %list of dimensions for variable #ilist 524 if isequal(dimnames,dim_var) 525 test_component(ilist)=1; 526 elseif numel(dimnames)==1 && ~isempty(find(strcmp(dimnames{1},dim_var)))%variable ilist is a 1D array which can be coordinate variable 530 if isequal(dimnames,DimCell)||isequal(dimnames(1:end-1),DimCell)||isequal(dimnames(2:end),DimCell) 527 531 test_coord(ilist)=1; 528 532 end 529 533 end 530 var_component=find(test_component);% list of variable indices elligible as unstructured coordinates 531 var_coord=find(test_coord);% % list of variable indices elligible as structured coordinates 532 ListCoord=Field.Display.ListVarName([var_component var_coord]); 534 ListCoord=Field.Display.ListVarName(find(test_coord)); 535 set(handles.Coord_y,'String',ListCoord) 536 val_y=1; 537 if strcmp(VarName,ListCoord{1})&& numel(ListCoord)>=2 538 val_y=2; 539 end 540 set(handles.Coord_y,'Value',val_y) 533 541 534 542 %% set default coord selection 535 if numel(find(test_coord))>3536 SwitchVarIndexTime=get(handles.SwitchVarIndexTime,'String');537 if numel(SwitchVarIndexTime)<3538 SwitchVarIndexTime=[SwitchVarIndexTime;'matrix_index'];539 set(handles.SwitchVarIndexTime,'String',SwitchVarIndexTime)540 end541 set(handles.SwitchVarIndexTime,'Value',3)% the last dim must be considered as time542 SwitchVarIndexTime_Callback([], [], handles)543 end544 if numel(var_component)<2545 if numel(test_coord)<2546 ListCoord={''};547 else548 set(handles.Coord_x,'Value',2)549 set(handles.Coord_y,'Value',1)550 end551 else552 coord_val=1;553 for ilist=1:numel(var_component)554 ivar=var_component(ilist);555 if isfield(Field.Display,'VarAttribute') && numel(Field.Display.VarAttribute)>=ivar && isfield(Field.Display.VarAttribute{ivar},'Role')556 Role=Field.Display.VarAttribute{ivar}.Role;557 if strcmp(Role,'coord_x')558 coord_val=ilist;559 end560 end561 end562 set(handles.Coord_x,'Value',coord_val+1)563 end564 set(handles.Coord_x,'String',[{''}; ListCoord])565 566 567 % % set list of time coordinates568 menu=get(handles.SwitchVarIndexTime,'String');569 TimeOption=menu{get(handles.SwitchVarIndexTime,'Value')};570 switch TimeOption571 case 'variable'572 if numel(find(test_coord))<3573 ListTime={''};574 else575 ListTime=Field.Display.ListVarName(find(test_coord,end));576 end577 set(handles.TimeName,'Value',1)578 set(handles.TimeName,'String',ListTime)579 case 'matrix index'580 if numel(find(test_coord))<3581 ListTime={''};582 else583 ListTime=Field.Display.VarDimName{find(test_coord,end)};584 end585 set(handles.TimeName,'Value',1)586 set(handles.TimeName,'String',ListTime)587 end588 if ~ischar(DimCell)589 update_field(handles,YName)590 end543 % if numel(find(test_coord))>3 544 % SwitchVarIndexTime=get(handles.SwitchVarIndexTime,'String'); 545 % if numel(SwitchVarIndexTime)<3 546 % SwitchVarIndexTime=[SwitchVarIndexTime;'matrix_index']; 547 % set(handles.SwitchVarIndexTime,'String',SwitchVarIndexTime) 548 % end 549 % set(handles.SwitchVarIndexTime,'Value',3)% the last dim must be considered as time 550 % SwitchVarIndexTime_Callback([], [], handles) 551 % end 552 % if numel(var_component)<2 553 % if numel(test_coord)<2 554 % ListCoord={''}; 555 % else 556 % set(handles.Coord_x,'Value',2) 557 % set(handles.Coord_y,'Value',1) 558 % end 559 % else 560 % coord_val=1; 561 % for ilist=1:numel(var_component) 562 % ivar=var_component(ilist); 563 % if isfield(Field.Display,'VarAttribute') && numel(Field.Display.VarAttribute)>=ivar && isfield(Field.Display.VarAttribute{ivar},'Role') 564 % Role=Field.Display.VarAttribute{ivar}.Role; 565 % if strcmp(Role,'coord_x') 566 % coord_val=ilist; 567 % end 568 % end 569 % end 570 % set(handles.Coord_x,'Value',coord_val+1) 571 % end 572 % set(handles.Coord_x,'String',[{''}; ListCoord]) 573 574 575 % %% set list of time coordinates 576 % menu=get(handles.SwitchVarIndexTime,'String'); 577 % TimeOption=menu{get(handles.SwitchVarIndexTime,'Value')}; 578 % switch TimeOption 579 % case 'variable' 580 % if numel(find(test_coord))<3 581 % ListTime={''}; 582 % else 583 % ListTime=Field.Display.ListVarName(find(test_coord,end)); 584 % end 585 % set(handles.TimeName,'Value',1) 586 % set(handles.TimeName,'String',ListTime) 587 % case 'matrix index' 588 % if numel(find(test_coord))<3 589 % ListTime={''}; 590 % else 591 % ListTime=Field.Display.VarDimName{find(test_coord,end)}; 592 % end 593 % set(handles.TimeName,'Value',1) 594 % set(handles.TimeName,'String',ListTime) 595 % end 596 % if ~ischar(DimCell) 597 % update_field(handles,YName) 598 % end 591 599 592 600 %------------------------------------------------------------------------ … … 672 680 set(handles.Coord_y,'Value',coord_val(2)) 673 681 set(handles.Coord_y,'String',ListCoord) 674 if numel( coord_val)>=3682 if numel(find(coord_val))>=3 675 683 set(handles.Coord_z,'Value',coord_val(3)) 676 684 set(handles.Coord_z,'String',ListCoord) … … 873 881 %------------------------------------------------------------------------ 874 882 function Coord_x_Callback(hObject, DimCell, handles) 875 883 DimCell 876 884 index=get(handles.Coord_x,'Value'); 877 885 string=get(handles.Coord_x,'String'); 878 886 VarName=string{index}; 879 887 if ~ischar(DimCell) 880 update_field(handles,VarName) 881 end 888 update_field(handles,VarName) 889 end 890 if isequal(get(handles.FieldOption,'Value'),1) 891 set_coord_y_options(handles,VarName) 892 end 893 882 894 %------------------------------------------------------------------------ 883 895 % --- Executes on selection change in Coord_y. … … 964 976 965 977 %----------------------------------------------------------------------- 978 % update the display of the variable 'VarName' and its dimensions in the list of variables 966 979 function update_field(handles,VarName) 967 980 %-----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.