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)]