Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
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])
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
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])