Negative weights during odf interpolation

68 views
Skip to first unread message

miroslav...@gmail.com

unread,
May 11, 2016, 4:05:54 PM5/11/16
to MTEX
Hello,

I am importing an ODF given as ODF values on discrete regular grid in Euler space. The issue I was encountering is that in function loadODF_generic, the case 'interp' produces some of the weights (array w) to be negative:

  case 'interp'
  
    disp('  Interpolating the ODF. This might take some time...')
    res = get_option(varargin,'resolution',3*degree);
  
    % interpolate
    S3G = equispacedSO3Grid(cs,ss,'resolution',res);

    % get kernel
    psi = get_option(varargin,'kernel',deLaValeePoussinKernel('halfwidth',res));

    M = psi.K_symmetrised(S3G,q,cs,ss);

    MM = M * M';
    mw = M * weights;
    w = pcg(MM,mw,1e-2,30);
    %sum(w)
    
    odf = unimodalODF(S3G,psi,cs,ss,'weights',w./sum(w));
    
I have tried tightening the tolerances and increasing the number of iterations for pcg, but it does not help.
In addition, I can actually plot the ODF and work with it just fine, it is only when I try to export it in VPSC format that I get the error somewhere else.
If I would just remove the negative weights in w, I can actually export ODF without any problems, but then the fit created by pcg is no longer valid?

Thanks,
Miroslav

Ralf Hielscher

unread,
May 12, 2016, 5:17:49 PM5/12/16
to MTEX
Hi Miroslav,

you observation is correct. The coefficients might become negative. Could you please explain more in detail why this a problem for you.

Indeed, if you set those negative values to zero the fit will be worse.

Ralf.

miroslav...@gmail.com

unread,
May 13, 2016, 11:33:10 AM5/13/16
to MTEX
Dear Dr Ralf,

Thank you for the prompt response.
Weights of particular orientations should represent volume fractions of those orientations. Should they be allowed to have negative values since volume fractions can only be positive?
The problem arises when we try to draw random orientations from ODF (calcOrientations) and it seems to be directly due to negative weights. I have attached the problematic ODF.

Thanks,
Miroslav
odf.mat
Reply all
Reply to author
Forward
0 new messages