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/merge_proj.m

    r478 r494  
    193193        for iview=1:nbview
    194194            % reading input file(s)
     195            filecell{iview,index}
    195196            [Data{iview},tild,errormsg] = read_field(filecell{iview,index},FileType{iview},Param.InputFields,frame_index{iview}(index));
    196197            if ~isempty(errormsg)
     
    207208                Data{iview}.ZIndex=mod(i1_series{iview}(index)-1,NbSlice_calib{iview})+1;%Zindex for phys transform
    208209            end
     210           
    209211            %transform the input field (e.g; phys) if requested
    210212            if ~isempty(transform_fct)
    211213                Data{iview}=transform_fct(Data{iview},XmlData{iview});  %transform to phys if requested
    212214            end
    213             % field calculation (vort, div...)
     215           
     216            %% check whether tps is needed, then calculate tps coefficients if needed
     217            check_tps=0;
     218            if ischar(Param.InputFields.FieldName)
     219                Param.InputFields.FieldName={Param.InputFields.FieldName};
     220            end
     221            for ilist=1:numel(Param.InputFields.FieldName)
     222                switch Param.InputFields.FieldName{ilist}
     223                    case {'vort','div','strain'}
     224                        check_tps=1;
     225                end
     226            end
     227            if strcmp(Param.ProjObject.ProjMode,'filter')
     228                check_tps=1;
     229            end
     230            if check_tps
     231                SubDomain=1500; %default, estimated nbre of vectors in a subdomain used for tps
     232                if isfield(Data{iview},'SubDomain')
     233                    SubDomain=Data{iview}.SubDomain;%
     234                end
     235                [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] =...
     236                    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);
     237                nbvar=numel(Data{iview}.ListVarName);
     238                Data{iview}.ListVarName=[Data{iview}.ListVarName {'SubRange','NbSites','Coord_tps','U_tps','V_tps'}];
     239                Data{iview}.VarDimName=[Data{iview}.VarDimName {{'nb_coord','nb_bounds','nb_subdomain'},{'nb_subdomain'},...
     240                    {'nb_tps','nb_coord','nb_subdomain'},{'nb_tps','nb_subdomain'},{'nb_tps','nb_subdomain'}}];
     241                Data{iview}.VarAttribute{nbvar+3}.Role='coord_tps';
     242                Data{iview}.VarAttribute{nbvar+4}.Role='vector_x';
     243                Data{iview}.VarAttribute{nbvar+5}.Role='vector_y';
     244                if isfield(Data{iview},'ListDimName')%cleaning
     245                    Data{iview}=rmfield(Data{iview},'ListDimName');
     246                end
     247                if isfield(Data{iview},'DimValue')%cleaning
     248                    Data{iview}=rmfield(Data{iview},'DimValue');
     249                end
     250            end
     251                 
     252            % field calculation (vort, div...)   
    214253            if strcmp(FileType{iview},'civx')||strcmp(FileType{iview},'civdata')
    215                 Data{iview}=calc_field(Param.InputFields.FieldName,Data{iview});%calculate field (vort..)
     254                if isfield(Data{iview},'Coord_tps')
     255                    Data{iview}.FieldList=Param.InputFields.FieldName;
     256                else
     257                    Data{iview}=calc_field(Param.InputFields.FieldName,Data{iview});%calculate field (vort..)
     258                end
    216259            end
    217260           
Note: See TracChangeset for help on using the changeset viewer.