Exemple #1
0
def testQballOdfModel():
    sphere, vecs_xy, bval, bvec, sig = make_fake_signal()
    qball_fitter = QballOdfModel(bval, bvec.T, 6, sphere=sphere)
    qball_fitter.angular_spacing_threshould = 0.

    norm_sig = sig
    S = qball_fitter.fit(norm_sig).odf()
    stepper = ClosestPeakSelector(qball_fitter, norm_sig, angle_limit=39)
    for ii in xrange(len(vecs_xy)):
        if np.dot(vecs_xy[ii], [0, 1., 0]) < .84:
            assert_raises(StopIteration, stepper.next_step, ii, [0, 1., 0])
        else:
            step = stepper.next_step(ii, [0, 1., 0])
            s2 = stepper.next_step(ii, vecs_xy[ii])
            assert step is not None
            assert np.dot(vecs_xy[ii], step) > .98
            step = stepper.next_step(ii, [1., 0, 0.])
            assert_array_almost_equal([1., 0, 0.], step)