def main(): probes, links = read_data() link_points, belong = flatten_uniq(links) print "%d probe points loaded" % len(probes) print "%d link points loaded" % len(link_points) # probes = np.array(random.sample(probes, 10000)) # print probes probes = np.array(probes) link_points = np.array(link_points) probes_rad = np.deg2rad(probes) link_points_rad = np.deg2rad(link_points) knns_kd = nearest_kdtree(probes_rad, link_points_rad, n=100, is_filter=False) link_candidates = [ set([ bel for lat, lon in link_points_[knns] for bel in belong[lat, lon] ]) for knns in knns_kd ] with open("data/link_candidates.pkl", "wb") as fout: cPickle.dump(link_candidates, fout, 2)
def test(): probes, links = read_data() link_points, belong = flatten_uniq(links) print "%d probe points loaded" % len(probes) print "%d link points loaded" % len(link_points) probes = np.array(random.sample(probes, 100)) # print probes link_points = np.array(link_points) probes_rad = np.deg2rad(probes) link_points_rad = np.deg2rad(link_points) knns_kd = evaluate( lambda: nearest_kdtree( probes_rad, link_points_rad, n=30, is_filter=True), "kdtree") knns_force = evaluate( lambda: nearest_force(probes_rad, link_points_rad, n=30), "brute force") for idx, (k1, k2) in enumerate(izip(knns_kd, knns_force)): diff = np.setdiff1d(k2, k1) if diff.size > 0: print diff print probes[idx] print link_points[diff] print haversine_np(probes_rad[idx], link_points_rad[diff])
def main(): probes, links = read_data() link_points, belong = flatten_uniq(links) print "%d probe points loaded" % len(probes) print "%d link points loaded" % len(link_points) # probes = np.array(random.sample(probes, 10000)) # print probes probes = np.array(probes) link_points = np.array(link_points) probes_rad = np.deg2rad(probes) link_points_rad = np.deg2rad(link_points) knns_kd = nearest_kdtree(probes_rad, link_points_rad, n=100, is_filter=False) link_candidates = [set([bel for lat, lon in link_points_[knns] for bel in belong[lat, lon]]) for knns in knns_kd] with open("data/link_candidates.pkl", "wb") as fout: cPickle.dump(link_candidates, fout, 2)
def test(): probes, links = read_data() link_points, belong = flatten_uniq(links) print "%d probe points loaded" % len(probes) print "%d link points loaded" % len(link_points) probes = np.array(random.sample(probes, 100)) # print probes link_points = np.array(link_points) probes_rad = np.deg2rad(probes) link_points_rad = np.deg2rad(link_points) knns_kd = evaluate(lambda: nearest_kdtree(probes_rad, link_points_rad, n=30, is_filter=True), "kdtree") knns_force = evaluate(lambda: nearest_force(probes_rad, link_points_rad, n=30), "brute force") for idx, (k1, k2) in enumerate(izip(knns_kd, knns_force)): diff = np.setdiff1d(k2, k1) if diff.size > 0: print diff print probes[idx] print link_points[diff] print haversine_np(probes_rad[idx], link_points_rad[diff])