Ignore:
Timestamp:
Jul 19, 2012, 11:50:39 AM (12 years ago)
Author:
sommeria
Message:

various bugs corrected after testing in Windows OS. Introduction
of filter tps

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/series/aver_stat.m

    r478 r494  
    227227            end
    228228           
    229             % field calculation (vort, div...)
     229            %% check whether tps is needed, then calculate tps coefficients if needed
     230            check_tps=0;
     231            if ischar(Param.InputFields.FieldName)
     232                Param.InputFields.FieldName={Param.InputFields.FieldName};
     233            end
     234            for ilist=1:numel(Param.InputFields.FieldName)
     235                switch Param.InputFields.FieldName{ilist}
     236                    case {'vort','div','strain'}
     237                        check_tps=1;
     238                end
     239            end
     240            if strcmp(Param.ProjObject.ProjMode,'filter')
     241                check_tps=1;
     242            end
     243            if check_tps
     244                SubDomain=1500; %default, estimated nbre of vectors in a subdomain used for tps
     245                if isfield(Data{iview},'SubDomain')
     246                    SubDomain=Data{iview}.SubDomain;%
     247                end
     248                [Data{iview}.SubRange,Data{iview}.NbSites,Data{iview}.Coord_tps,Data{iview}.U_tps,Data{iview}.V_tps,tild,U_smooth,V_smooth,W_smooth,FF] =...
     249                    filter_tps([Data{iview}.X(Data{iview}.FF==0) Data{iview}.Y(Data{iview}.FF==0)],Data{iview}.U(Data{iview}.FF==0),Data{iview}.V(Data{iview}.FF==0),[],SubDomain,0);
     250                nbvar=numel(Data{iview}.ListVarName);
     251                Data{iview}.ListVarName=[Data{iview}.ListVarName {'SubRange','NbSites','Coord_tps','U_tps','V_tps'}];
     252                Data{iview}.VarDimName=[Data{iview}.VarDimName {{'nb_coord','nb_bounds','nb_subdomain'},{'nb_subdomain'},...
     253                    {'nb_tps','nb_coord','nb_subdomain'},{'nb_tps','nb_subdomain'},{'nb_tps','nb_subdomain'}}];
     254                Data{iview}.VarAttribute{nbvar+3}.Role='coord_tps';
     255                Data{iview}.VarAttribute{nbvar+4}.Role='vector_x';
     256                Data{iview}.VarAttribute{nbvar+5}.Role='vector_y';
     257                if isfield(Data{iview},'ListDimName')%cleaning
     258                    Data{iview}=rmfield(Data{iview},'ListDimName');
     259                end
     260                if isfield(Data{iview},'DimValue')%cleaning
     261                    Data{iview}=rmfield(Data{iview},'DimValue');
     262                end
     263            end
     264                 
     265            % field calculation (vort, div...)   
    230266            if strcmp(FileType{1},'civx')||strcmp(FileType{1},'civdata')
    231                 Data{1}=calc_field(InputFields{1}.FieldName,Data{1});%calculate field (vort..)
    232             end
    233            
     267                if isfield(Data{1},'Coord_tps')
     268                    Data{1}.FieldList=Param.InputFields.FieldName;
     269                else
     270                    Data{1}=calc_field(Param.InputFields.FieldName,Data{1});%calculate field (vort..)
     271                end
     272            end
     273         
    234274            % field substration (for two input file series)
    235275            if length(Data)==2
    236                 if strcmp(FileType{2},'civx')||strcmp(FileType{2},'civ')
    237                     Data{2}=calc_field(InputFields{2}.FieldName,Data{2});%calculate field (vort..)
     276                if strcmp(FileType{2},'civx')||strcmp(FileType{2},'civdata')
     277                    if isfield(Data{2},'Coord_tps')
     278                        Data{2}.FieldList=Param.InputFields.FieldName;
     279                    else
     280                        Data{2}=calc_field(Param.InputFields.FieldName,Data{2});%calculate field (vort..)
     281                    end
    238282                end
    239283                [Field,errormsg]=sub_field(Data{1},Data{2}); %substract the two fields
Note: See TracChangeset for help on using the changeset viewer.