def high_low_check(r, tbin='(0, 4)'): print('Pulling data...') obslist=rb.lrange('label:rms', 0, -1) ob04 = [i for i, o in enumerate(obslist) if o == tbin] traj = backProjection(r, ob04) alpha = datareduce.filter_alpha(traj) print('Kpca') kpca1 = PCAKernel(6, 'rbf') kpca1.solve(alpha.xyz) X = kpca1.project(alpha.xyz) print('KDTree1') kdtree1 = KDTree(50, maxdepth=4, data=X, method='median') hc1 = kdtree1.getleaves() print('KDTree2') Y = alpha.xyz.reshape(alpha.n_frames, 174) kdtree2 = KDTree(50, maxdepth=4, data=Y, method='median') hc2 = kdtree2.getleaves() hc1k = sorted(hc1.keys()) hc2k = sorted(hc2.keys()) s1 = [set(hc1[k]['elm']) for k in hc1k] s2 = [set(hc2[k]['elm']) for k in hc2k] dd = np.zeros(shape=(len(s1), len(s2))) print(' ', ' '.join(hc1k)) for i, a in enumerate(s1): print(' ' +hc1k[i], end=' ') for j, b in enumerate(s2): n = len(a & b) print('%4d'%n, end=' ') dd[i][j] = n print('\n', end=' ') return dd
def doTree(self, pc=4, ktype='rbf', leafsize=100, maxdepth=6, split='middle'): diag = np.array([np.diag(i) for i in self.covar]) kpca = PCAKernel(pc, ktype) kpca.solve(diag) gdata = kpca.project(diag) # Create KDTree over reduced-dim subspace (4-PCs) gtree = KDTree(leafsize, maxdepth, gdata, split) # Or Max Gap self.hc = gtree.getleaves()
def kpca_check(red_db, tbin='(0, 4)'): if isinstance(red_db, list): rlist = red_db else: rlist = [red_db] trajlist = [] for r in rlist: print('Pulling data...') obslist = r.lrange('label:rms', 0, -1) idxlist = [i for i, o in enumerate(obslist) if o == tbin] traj = dh.backProjection(r, idxlist) alpha = datareduce.filter_alpha(traj) trajlist.append(alpha) deidx = lambda i: deidx_cutlist(i, [t.n_frames for t in trajlist]) print('Kpca') kpca1 = PCAKernel(6, 'rbf') kpca1.solve(alpha.xyz) X = kpca1.project(alpha.xyz) print('KDTree1') kdtree1 = KDTree(50, maxdepth=4, data=X, method='median') hc1 = kdtree1.getleaves() srcidx = [[i[0] \ for i in db.runquery("select idx from jc where bin='0_4' and expid=%d"%e)] \ for e in range(32, 36)] src_traj = [dh.backProjection(r, i) for r, i in zip(rlist, srcidx)] src_xyz = [datareduce.filter_alpha(t).xyz for t in src_traj] probe_res = [[kdtree1.project(i.reshape(174,)) for i in xyz] for xyz in src_xyz] grp_src = [] for p, s in zip(probe_res, srcidx): grp = {} for h, i in zip(p, s): if h not in grp: grp[h] = [] grp[h].append(i) grp_src.append(grp) idx_se_map = [{i: (s, e) for i, s, e in db.runquery("select idx, start, end from jc where bin='0_4' and expid=%d"%eid)} for eid in range(32, 36)]