Ignore:
Timestamp:
Mar 12, 2013, 12:52:13 PM (11 years ago)
Author:
sommeria
Message:

clean the transform field functions

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/read_civdata.m

    r580 r581  
    6262errormsg='';
    6363if ischar(FieldNames), FieldNames={FieldNames}; end;
    64 FieldRequest='';
     64ProjModeRequest='';
    6565for ilist=1:length(FieldNames)
    6666    if ~isempty(FieldNames{ilist})
    6767        switch FieldNames{ilist}
    6868            case{'U','V','norm(U,V)'}
    69                 FieldRequest='interp_lin';
     69                ProjModeRequest='interp_lin';
    7070            case {'curl(U,V)','div(U,V)','strain(U,V)'}
    71                 FieldRequest='interp_tps';
     71                ProjModeRequest='interp_tps';
    7272        end
    7373    end
     
    7676%% reading data
    7777Data=nc2struct(filename,'ListGlobalAttribute','CivStage');
    78 [varlist,role,VelTypeOut]=varcivx_generator(FieldRequest,VelType,Data.CivStage);
     78[varlist,role,VelTypeOut]=varcivx_generator(ProjModeRequest,VelType,Data.CivStage);
    7979if isempty(varlist)
    8080    erromsg=['error in read_civdata: unknow velocity type ' VelType];
     
    109109Field.ListGlobalAttribute=[Field.ListGlobalAttribute {'Dt','Time'}];
    110110ivar_U_tps=[];
     111ivar_V_tps=[];
    111112var_ind=find(vardetect);
    112113for ivar=1:numel(var_ind)
    113114    Field.VarAttribute{ivar}.Role=role{var_ind(ivar)};
    114     Field.VarAttribute{ivar}.FieldRequest=FieldRequest;
    115115    if strcmp(role{var_ind(ivar)},'vector_x')
    116116        Field.VarAttribute{ivar}.FieldName=FieldNames;
     117        Field.VarAttribute{ivar}.ProjModeRequest=ProjModeRequest;
    117118        ivar_U=ivar;
    118119    end
    119120    if strcmp(role{var_ind(ivar)},'vector_x_tps')
    120121        Field.VarAttribute{ivar}.FieldName=FieldNames;
     122        Field.VarAttribute{ivar}.ProjModeRequest=ProjModeRequest;
    121123        ivar_U_tps=ivar;
    122124    end
    123 %     Field.VarAttribute{ivar}.Unit=units{var_ind(ivar)};
     125    if strcmp(role{var_ind(ivar)},'vector_y')
     126        Field.VarAttribute{ivar}.FieldName=FieldNames;
     127        Field.VarAttribute{ivar}.ProjModeRequest=ProjModeRequest;
     128        ivar_V=ivar;
     129    end
     130    if strcmp(role{var_ind(ivar)},'vector_y_tps')
     131        Field.VarAttribute{ivar}.FieldName=FieldNames;
     132        Field.VarAttribute{ivar}.ProjModeRequest=ProjModeRequest;
     133        ivar_V_tps=ivar;
     134    end
    124135    Field.VarAttribute{ivar}.Mesh=0.1;%typical mesh for histograms O.1 pixel
    125136end
     
    127138    Field.VarAttribute{ivar_U}.VarIndex_tps=ivar_U_tps;
    128139end
    129 
     140if ~isempty(ivar_V_tps)
     141    Field.VarAttribute{ivar_V}.VarIndex_tps=ivar_V_tps;
     142end
     143
     144%% update list of global attributes
    130145Field.ListGlobalAttribute=[Field.ListGlobalAttribute {'NbCoord','NbDim','TimeUnit','CoordUnit'}];
    131 % %% update list of global attributes
    132146Field.NbCoord=2;
    133147Field.NbDim=2;
     
    146160%            if vel_type=[] or'*', a  priority choice is done, civ2 considered better than civ1 )
    147161
    148 function [var,role,vel_type_out,errormsg]=varcivx_generator(FieldRequest,vel_type,CivStage)
     162function [var,role,vel_type_out,errormsg]=varcivx_generator(ProjModeRequest,vel_type,CivStage)
    149163
    150164%% default input values
     
    154168
    155169%% select the priority order for automatic vel_type selection
    156 if strcmp(vel_type,'civ2') && strcmp(FieldRequest,'derivatives')
     170if strcmp(vel_type,'civ2') && strcmp(ProjModeRequest,'derivatives')
    157171    vel_type='filter2';
    158 elseif strcmp(vel_type,'civ1') && strcmp(FieldRequest,'derivatives')
     172elseif strcmp(vel_type,'civ1') && strcmp(ProjModeRequest,'derivatives')
    159173    vel_type='filter1';
    160174end
     
    164178            vel_type='filter2';
    165179        case {4,5}% civ2 available but not filter2
    166             if strcmp(FieldRequest,'derivatives')% derivatives needed
     180            if strcmp(ProjModeRequest,'derivatives')% derivatives needed
    167181                vel_type='filter1';
    168182            else
     
    203217       % units={'pixel','pixel','pixel','pixel','pixel','pixel','','','','pixel','pixel','pixel','pixel','pixel',''};
    204218end
    205 if ~strcmp(FieldRequest,'interp_tps')
     219if ~strcmp(ProjModeRequest,'interp_tps')
    206220    var=var(:,1:9);%suppress tps if not needed
    207221end
Note: See TracChangeset for help on using the changeset viewer.