Changeset 186 for trunk/src/proj_field.m


Ignore:
Timestamp:
Jan 28, 2011, 8:24:05 AM (13 years ago)
Author:
sommeria
Message:

introduction Mesh for histograms in proj_field

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/proj_field.m

    r180 r186  
    385385%A REVOIR, GENERALISER: UTILISER proj_line
    386386ProjData.NbDim=1;
    387 %ProjData.ListDimName={};%name of dimension
    388 %ProjData.DimValue=[];%values of dimension (nbre of vectors)
    389387ProjData.ListVarName={};
    390 %ProjData.VarDimIndex={};
    391388ProjData.VarDimName={};
    392 if isfield (FieldData,'ListVarAttribute')
    393     ProjData.ListVarAttribute=FieldData.ListVarAttribute;%list of variable attribute names
    394     for iattr=1:length(ProjData.ListVarAttribute)%initialization of variable attribute values
    395         AttrName=ProjData.ListVarAttribute{iattr};
    396         eval(['ProjData.' AttrName '={};'])
    397     end;
     389
     390Mesh=zeros(1,numel(FieldData.ListVarName));
     391if isfield (FieldData,'VarAttribute')
     392    ProjData.VarAttribute=FieldData.VarAttribute;%list of variable attribute names
     393    for iattr=1:length(ProjData.VarAttribute)%initialization of variable attribute values
     394%         ProjData.VarAttribute{iattr}={};
     395        if isfield(ProjData.VarAttribute{iattr},'Unit')
     396            unit{iattr}=ProjData.VarAttribute{iattr}.Unit;
     397        end
     398        if isfield(ProjData.VarAttribute{iattr},'Mesh')
     399            Mesh(iattr)=ProjData.VarAttribute{iattr}.Mesh;
     400        end
     401    end
    398402end
    399403
     
    449453    % image or 2D matrix
    450454    if numel(VarType.coord)>=2 & VarType.coord(1:2) > 0;
    451         test_Amat=1;%image or 2D matrix
     455        test_Amat=1;% test for image or 2D matrix
    452456        AYName=FieldData.ListVarName{VarType.coord(1)};
    453457        AXName=FieldData.ListVarName{VarType.coord(2)};
     
    456460        VarName=FieldData.ListVarName{VarIndex(1)};
    457461        eval(['DimValue=size(FieldData.' VarName ');'])
     462       if length(AX)==2
     463           AX=linspace(AX(1),AX(end),DimValue(2));
     464       end
     465       if length(AY)==2
     466           AY=linspace(AY(1),AY(end),DimValue(1));
     467       end
     468%         for idim=1:length(DimValue)       
     469%             Coord_i_str=['Coord_' num2str(idim)];
     470%             DCoord_min(idim)=1;%default
     471%             Coord{idim}=[0.5 DimValue(idim)];
     472%             test_direct(idim)=1;
     473%         end
     474%         AX=linspace(Coord{2}(1),Coord{2}(2),DimValue(2));
     475%         AY=linspace(Coord{1}(1),Coord{1}(2),DimValue(1));  %TODO : 3D case
    458476        testcolor=find(numel(DimValue)==3);
    459 %                     errormsg='multicomponent field not projected';
    460 
    461         for idim=1:length(DimValue)       
    462             Coord_i_str=['Coord_' num2str(idim)];
    463             DCoord_min(idim)=1;%default
    464             Coord{idim}=[0.5 DimValue(idim)];
    465             test_direct(idim)=1;
    466         end
    467         AX=linspace(Coord{2}(1),Coord{2}(2),DimValue(2));
    468         AY=linspace(Coord{1}(1),Coord{1}(2),DimValue(1));  %TODO : 3D case
    469477        if length(DimValue)==3
    470478            testcolor=1;
     
    533541            VarName=FieldData.ListVarName{ivar};
    534542            eval(['ProjData.' VarName 'Mean=mean(mean(double(FieldData.' VarName '(indsel,:))));']); % keep only non false vectors
    535             eval(['[ProjData.' VarName 'Histo,ProjData.' VarName ']=hist(double(FieldData.' VarName '(indsel,:)),100);']); % keep only non false vectors
     543            eval(['ProjData.' VarName 'Min=min(min(double(FieldData.' VarName '(indsel,:))));']); % keep only non false vectors
     544            eval(['ProjData.' VarName 'Max=max(max(double(FieldData.' VarName '(indsel,:))));']); % keep only non false vectors
     545            if isequal(Mesh(ivar),0)
     546                eval(['[ProjData.' VarName 'Histo,ProjData.' VarName ']=hist(double(FieldData.' VarName '(indsel,:)),100);']); % default histogram with 100 bins
     547            else
     548                eval(['ProjData.' VarName '=(ProjData.' VarName 'Min+Mesh(ivar)/2:Mesh(ivar):ProjData.' VarName 'Max);']); % list of bin values
     549                eval(['ProjData.' VarName 'Histo=hist(double(FieldData.' VarName '(indsel,:)),ProjData.' VarName ');']); % histogram at predefined bin positions
     550            end
    536551            ProjData.ListVarName=[ProjData.ListVarName {VarName} {[VarName 'Histo']} {[VarName 'Mean']}];
    537552            if test_Amat && testcolor
     
    550565%     end
    551566end
    552 
    553567
    554568
     
    17591773            end 
    17601774        elseif isequal(ObjectData.ProjMode,'interp')||isequal(ObjectData.ProjMode,'filter')%interpolate data on a regular grid
    1761             coord_x_proj=[XMin:DX:XMax];
    1762             coord_y_proj=[YMin:DY:YMax];
    1763             coord_z_proj=[ZMin:DZ:ZMax];
     1775            coord_x_proj=(XMin:DX:XMax);
     1776            coord_y_proj=(YMin:DY:YMax);
     1777            coord_z_proj=(ZMin:DZ:ZMax);
    17641778            [XI,YI,ZI]=meshgrid(coord_x_proj,coord_y_proj,coord_z_proj);
    17651779            DimCell={'coord_y','coord_x'};
Note: See TracChangeset for help on using the changeset viewer.