def test_round_trip(): sph_io.savez('__test.npz', y=1) data = sph_io.load('__test.npz') assert_equal(data['y'], 1) sph_io.remove('__test.npz')
sys.path.insert(0, '..') import numpy as np import glob import os from sphdif import sph_io from sphdif import plot from sphdif.kernel import (kernel_matrix, std_kernel, even_kernel, inv_funk_radon_even_kernel, kernel_reconstruct) from sphdif.coord import car2sph, sph2car from dipy.sims.voxel import multi_tensor_odf from dipy.reconst.shm import SlowAdcOpdfModel, MonoExpOpdfModel, QballOdfModel coords = sph_io.load('sphere_pts.npz') #from dipy.data import get_sphere #verts, faces = get_sphere('symmetric724') ## from dipy.core.triangle_subdivide import create_unit_sphere ## verts, edges, sides = create_unit_sphere(5) ## faces = edges[sides, 0] from dipy.core.triangle_subdivide import create_unit_sphere verts, edges, sides = create_unit_sphere(5) faces = edges[sides, 0] theta, phi, r = car2sph(*verts.T) sampling_xyz = np.column_stack(
from __future__ import division import sys sys.path.insert(0, '..') import numpy as np eps = np.finfo(float).eps from sphdif import sph_io, sphere, plot data = sph_io.load('odf_coeffs.npz') # unpack beta, theta, phi, separation this_module = sys.modules[__name__] for k, v in data.items(): setattr(this_module, k, v) # Initialize centroids # TODO: Random intialization N = 4 c_theta = np.pi * np.array([-1/3, 1/3, 2/3, -2/3]) #c_phi = 2 * np.pi * np.array([0, 1/4, 2/4, 3/4]) c_phi = np.ones(N) def weighted_kmeans(c_theta, c_phi, p_theta, p_phi, v): D = 1 / (eps + sphere.arc_length(c_theta, c_phi, p_theta[:, None], p_phi[:, None]))**2 # D = np.exp(-sphere.arc_length(c_theta, c_phi, p_theta[:, None], p_phi[:, None])**2) D *= v[:, None] D /= D.sum(axis=0) P = np.column_stack((p_theta, p_phi))