Changeset 675 for trunk/src/read_field.m


Ignore:
Timestamp:
Aug 27, 2013, 11:25:21 PM (11 years ago)
Author:
sommeria
Message:

various bugs corrected

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/read_field.m

    r667 r675  
    6969    case 'netcdf'
    7070        ListVar={};
     71        Role={};
     72        ProjModeRequest={};
    7173        for ilist=1:numel(InputField)
    7274            r=regexp(InputField{ilist},'(?<Operator>(^vec|^norm))\((?<UName>.+),(?<VName>.+)\)$','names');
     
    8183                end
    8284            else  % an operator 'vec' or 'norm' is used
    83                 ListVar=[ListVar {r.UName,r.VName}];
    84                 Role{numel(ListVar)}='vector_y';
    85                 Role{numel(ListVar)-1}='vector_x';
    8685                if ~check_colorvar(ilist) && strcmp(r.Operator,'norm')
    87                     ProjModeRequest{numel(ListVar)-1}='interp_lin';%scalar field (requires interpolation for plot)
    88                     ProjModeRequest{numel(ListVar)}='interp_lin';
     86                    ProjModeRequestVar='interp_lin';%scalar field (requires interpolation for plot)
    8987                else
    90                     ProjModeRequest{numel(ListVar)-1}='';
    91                     ProjModeRequest{numel(ListVar)}='';
     88                    ProjModeRequestVar='';
     89                end
     90                ind_var_U=find(strcmp(r.UName,ListVar));%check previous listing of variable r.UName
     91                ind_var_V=find(strcmp(r.VName,ListVar));%check previous listing of variable r.VName
     92                if isempty(ind_var_U)
     93                    ListVar=[ListVar r.UName]; % append the variable in the list if not previously listed
     94                    Role=[Role {'vector_x'}];
     95                    ProjModeRequest=[ProjModeRequest {ProjModeRequestVar}];
     96                end
     97                if isempty(ind_var_V)
     98                    ListVar=[ListVar r.VName];% append the variable in the list if not previously listed
     99                    Role=[Role {'vector_y'}];
     100                    ProjModeRequest=[ProjModeRequest {ProjModeRequestVar}];
    92101                end
    93102            end
     
    101110            errormsg=Field.Txt;
    102111            return
     112        end
     113        for ilist=3:numel(Field.VarDimName)
     114            if isequal(Field.VarDimName{1},Field.VarDimName{ilist})
     115                Field.VarAttribute{1}.Role='coord_x';%unstructured coordinates
     116                Field.VarAttribute{2}.Role='coord_y';
     117                break
     118            end
    103119        end
    104120        for ivar=1:numel(ListVar)
     
    109125            Field.VarAttribute{ivar+2}.ProjModeRequest=ProjModeRequest{ivar};
    110126        end
     127
    111128    case 'video'
    112129        if strcmp(class(ParamIn),'VideoReader')
Note: See TracChangeset for help on using the changeset viewer.