Changeset 186


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

introduction Mesh for histograms in proj_field

Location:
trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/plot_field.m

    r185 r186  
    112112PlotType='text'; %default
    113113PlotParamOut=PlotParam;%default
    114 
     114if isempty(Data)
     115    PlotType='none';
     116   return
     117end
    115118% check input structure
    116119[Data,errormsg]=check_field_structure(Data);
  • 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'};
  • trunk/src/read_civxdata.m

    r180 r186  
    7070for ivar=1:length(var_ind)
    7171    Field.VarAttribute{ivar}.Role=role{var_ind(ivar)};
     72     Field.VarAttribute{ivar}.Mesh=0.1;%typical mesh for histograms O.1 pixel
    7273%     Field.VarAttribute{ivar}.units=units{var_ind(ivar)};% not necessary: set with calc_field
    7374end
  • trunk/src/read_field.m

    r183 r186  
    165165            ParamOut.Npx=npxy(2);% display image size on the interface
    166166            ParamOut.Npy=npxy(1);
     167            Field.VarAttribute{3}.Mesh=1;
    167168        else
    168169            Field.NbDim=3;
     
    174175            ParamOut.Npx=npxy(3);% display image size on the interface
    175176            ParamOut.Npy=npxy(2);
     177            Field.VarAttribute{4}.Mesh=1;
    176178        end
    177179    else
     
    181183        ParamOut.Npx=npxy(2);% display image size on the interface
    182184        ParamOut.Npy=npxy(1);
     185        Field.VarAttribute{3}.Mesh=1;
    183186    end
    184187    Field.A=A;
  • trunk/src/set_object.m

    r183 r186  
    702702end
    703703testnew=0;
     704ObjectData=read_set_object(handles);%read the input parameters defining the object in the GUI set_object
    704705PlotHandles=get_plot_handles(hhuvmat);
    705706projview='view_field';%default
     
    723724    if isempty(hview_field)
    724725        hview_field=view_field;
     726%     elseif strcmp(ObjectData.ProjMode,'none')||strcmp(ObjectData.ProjMode,'mask_inside')||strcmp(ObjectData.ProjMode,'mask_outside')
    725727    end
    726728    PlotHandles=guidata(hview_field);
    727729    plotaxes=PlotHandles.axes3;%handle of axes3 in view_field
    728730end   
    729 ObjectData=read_set_object(handles);%read the input parameters defining the object in the GUI set_object
     731
    730732
    731733%% naming the object
Note: See TracChangeset for help on using the changeset viewer.