center_of_mass_i = center_of_mass_i / float(nPt)

    pt_mat_i = np.zeros([2, nPt])

    for j in range(nPt):
        pt_ij = output_i.GetPoint(j)

        pt_ij_norm = [(pt_ij[0] - center_of_mass_i) / size_i,
                      (pt_ij[1] - center_of_mass_i) / size_i]

        pt_mat_i[0, j] = pt_ij_norm[0]
        pt_mat_i[1, j] = pt_ij_norm[1]

    shape_i = manifolds.kendall2D(nPt)
    scale_i = manifolds.pos_real(1)
    scale_i.SetPoint(scale_obs_list[i])
    shape_i.SetPoint(pt_mat_i)

    scale_shape_i = manifolds.scale_kendall2D(nPt)
    scale_shape_i.SetPoint([scale_i, shape_i])

    # Covariates
    if i in male_list:
        s_i = 1
    else:
        s_i = 0

    # if i in autism_list:
    # 	autism_i = 1
    # else:
예제 #2
0
            polyData = reader.GetOutput()

            if cnt == 0:
                meanPolyDataList[a].DeepCopy(polyData)
                # print( polyData )

            nAtoms_a = polyData.GetNumberOfPoints()
            nAtoms += nAtoms_a

            for k in range(nAtoms_a):
                pos = polyData.GetPoint(k)
                rad = polyData.GetPointData().GetArray(
                    "Radius Function").GetValue(k)

                cmrep_ij_pos_a_k = manifolds.euclidean(3)
                cmrep_ij_rad_a_k = manifolds.pos_real(1)

                cmrep_ij_pos_a_k.SetPoint(pos)
                cmrep_ij_rad_a_k.SetPoint(rad)

                cmrep_ij.AppendAtom([cmrep_ij_pos_a_k, cmrep_ij_rad_a_k])

            # cmrep_ij.UpdateMeanRadius()

        CMRepDataList.append(cmrep_ij)
        riskGroupList.append(dataInfoList[i].CAPGroupList[j])
        ageList.append(dataInfoList[i].AgeList[j])
        SubjectList.append(dataInfoList[i].ID)
        CAPList.append(dataInfoList[i].CAPList[j])
        cnt += 1
            print(np.linalg.norm(Z_H_flatten))

            print(length)
            print(length_HX)

            # Set CM-Rep Abstract Point
            cmrep_ij = manifolds.cmrep_abstract(nAtoms)

            # Center
            center_ij = manifolds.euclidean(3)
            # print( "Center Of Mass " )
            center_ij.SetPoint(cenOfMass)

            # Scale
            scale_ij = manifolds.pos_real(1)
            # print( "Scale" )

            scale_ij.SetPoint(length_HX)

            # Abstract Position
            pos_ij = manifolds.sphere(3 * (nAtoms - 1))

            # print( "Abstract Position" )
            # print( np.array( Z_H_flatten ).flatten().shape )
            # print( 3 * ( nAtoms - 1 ) )

            pos_ij.SetPoint(np.array(Z_H_flatten).flatten())

            # Radius
            rad_ij = manifolds.pos_real(nAtoms)
# Geodesic Regression on Sphere Manifold
# Manifolds
import manifolds
import numpy as np
import StatsModel as sm

# Visualization
import matplotlib.pyplot as plt

# Ground Truth
nManifoldDim = 1

p_interp = manifolds.pos_real(nManifoldDim)
v_slope = manifolds.pos_real_tVec(nManifoldDim)

p_interp_vec = 2.0

p_interp.SetPoint(p_interp_vec)
v_slope.SetTangentVector(2.0)

## Random Ground Truth Generation
# random_interp = np.random.rand(3)
# random_interp_n = np.divide( random_interp, np.linalg.norm( random_interp ) )

# random_tangent_vector = np.random.rand(3)
# random_scale = np.random.rand(1) * 2
# random_tangent_vector = np.multiply( random_tangent_vector, random_scale )

# p_interp.SetSpherePt( random_interp_n )
# v_slope.SetTangentVector( random_tangent_vector )
예제 #5
0
print( sphere_pt_r.Type )

# Pos Real 
pos_real_tVec = manifolds.pos_real_tVec( 1 )
pos_real_tVec.SetTangentVector( 2 ) 

pos_real_tVec.Write( "pos_real_tVec.tvec" )

pos_real_tVec_r = manifolds.pos_real_tVec( 1 )
pos_real_tVec_r.Read( "pos_real_tVec.tvec" )

print( pos_real_tVec_r.tVector )
print( pos_real_tVec_r.nDim )
print( pos_real_tVec_r.Type )

pos_real_pt = manifolds.pos_real( 1 )
pos_real_pt.SetPoint( 4.0 )
pos_real_pt.Write( "pos_real.rpt" )

pos_real_pt_r = manifolds.pos_real( 1 )
pos_real_pt_r.Read( "pos_real.rpt" )

print( pos_real_pt_r.pt )
print( pos_real_pt_r.nDim ) 
print( pos_real_pt_r.Type )

# CMRep
cmrep_tVec = manifolds.cmrep_tVec( 2 )
cmrep_tVec.SetTangentVector( [ [ eucl_tVec, pos_real_tVec ], [ eucl_tVec, pos_real_tVec ] ] ) 

cmrep_pt = manifolds.cmrep( 2 )