def preproc_open_curve(beta, T=100): n, M, k = beta.shape q = np.zeros((n, T, k)) beta2 = np.zeros((n, T, k)) for i in range(0, k): beta1 = fs.resamplecurve(beta[:, :, i], T) beta2[:, :, i] = beta1 q[:, :, i] = fs.curve_to_q(beta1) return (q, beta2)
C = C.T # calculate distance module SO(2) and/or gamma lam = 0 k = 5 elastic = 1 rotation = 1 returnpath = 1 Disp_geodesic_between_the_curves = 1 Disp_registration_between_curves = 1 beta1 = C[:, :, 0] beta2 = C[:, :, 2] n, T = beta1.shape beta1 = fs.resamplecurve(beta1, T) beta2 = fs.resamplecurve(beta2, T) centroid1 = fs.calculatecentroid(beta1) beta1 = beta1 - np.tile(centroid1, [T, 1]).T centroid2 = fs.calculatecentroid(beta2) beta2 = beta2 - np.tile(centroid2, [T, 1]).T q1 = fs.curve_to_q(beta1) if rotation: beta2, O1, tau = fs.find_rotation_and_seed_coord(beta1, beta2) q2 = fs.curve_to_q(beta2) else: O1 = np.eye(2) q2 = fs.curve_to_q(beta2)
return (q, beta2) fun = h5py.File( '/Users/jderektucker/Documents/Research/SRVF_FDA/Data/Full20shapedata.h5') C = fun['beta'][:] C = C.T a, b, c = C.shape beta = np.zeros((a, b, 40)) cnt = 0 for ii in range(40, 60): beta_tmp = np.zeros((a, b + 1)) beta_tmp[:, 0:b] = C[:, :, ii] beta_tmp[:, b] = C[:, 0, ii] beta[:, :, cnt] = fs.resamplecurve(beta_tmp, b) beta_tmp = np.zeros((a, b + 1)) beta_tmp[:, 0:b] = C[:, :, ii + 1080] beta_tmp[:, b] = C[:, 0, ii + 1080] beta[:, :, cnt + 20] = fs.resamplecurve(beta_tmp, b) cnt += 1 y = np.ones(40, dtype=int) y[20:40] = -1 n = beta.shape[0] N = beta.shape[2] T = 200 time = np.linspace(0, 1, T) B = bs(time, df=60, degree=4, include_intercept=True)
import fdasrsf as fs # import curve_functions as cf # import curve_regression as cr fun = h5py.File('/Users/jderektucker/Documents/Research/SRVF_FDA/Data/Full20shapedata.h5') C = fun['beta'][:] C = C.T a, b, c = C.shape beta = np.zeros((a, b, 40)) cnt = 0 for ii in range(200, 220): beta_tmp = np.zeros((a, b+1)) beta_tmp[:, 0:b] = C[:, :, ii] beta_tmp[:, b] = C[:, 0, ii] # beta_tmp, scale = fs.scale_curve(beta_tmp) beta[:, :, cnt] = fs.resamplecurve(beta_tmp, b) # centroid1 = fs.calculatecentroid(beta_tmp) # beta[:, :, cnt] = beta_tmp - np.tile(centroid1, [b, 1]).T beta_tmp = np.zeros((a, b+1)) beta_tmp[:, 0:b] = C[:, :, ii+1080] beta_tmp[:, b] = C[:, 0, ii+1080] # beta_tmp, scale = fs.scale_curve(beta_tmp) beta[:, :, cnt+20] = fs.resamplecurve(beta_tmp, b) # centroid1 = fs.calculatecentroid(beta_tmp) # beta[:, :, cnt+20] = beta_tmp - np.tile(centroid1, [b, 1]).T cnt +=1 y = np.ones(38, dtype=int) y[19:39] = -1 beta1 = beta[:, :, 0:19] beta2 = beta[:, :, 20:39]