コード例 #1
0
def test_export_nodes():
    with test_db_session() as session:
        g = igraph.Graph(directed=True)
        # two boxes
        g.add_vertices(6)
        g.vs["osm_id"] = range(6)
        # the outer rectange
        g.add_edges([
            (1, 0),
            (0, 5),
            (2, 1),
            (2, 3),
            (4, 3),
            (4, 5),
        ])
        g.es["weight"] = [x + 1 for x in range(6)]
        g.vs["redundant"] = [False for _ in range(6)]

        for i in range(6):
            new_node = OSRMNode(i, 3400000, 11800000, False, False)
            session.add(new_node)
        session.commit()

        export_nodes(g, session)

        results = session.query(OSRMRouteNode).filter_by(osm_id=4).all()
        eq_(gt.output_weights(g, 4), [5, 6])
        eq_(results[0].n_outputs, 2)
        eq_(results[0].sum_out, 5 + 6)
        eq_(results[0].product_out, 5 * 6)
        assert_almost_equal(results[0].log_sum_out, math.log(5) + math.log(6))
コード例 #2
0
def main(args):
    parser = argparse.ArgumentParser()
    parser.add_argument('input', metavar='graph.pickle',
                        help='Input graph file')
    parser.add_argument(
        '--connection',
        default='postgresql://*****:*****@localhost/osrm',
        help='Postgres connection string.  Default %(default)s'
    )
    parser.add_argument('--verbose', action='store_true',
                        help='Increase logging level')

    args = parser.parse_args()

    logging.basicConfig(
        level=logging.INFO if args.verbose else logging.WARNING)

    log.info("Creating DB engine")
    engine = create_engine(args.connection, echo=False)

    log.info("Creating DB session")
    Session = sessionmaker(bind=engine)
    session = Session()

    log.info("Creating OSRM tables")
    models.Base.metadata.create_all(engine)
    session.query(models.OSRMRouteNode).delete()

    g = igraph.read(args.input)

    export_nodes(g, session)
コード例 #3
0
def test_export_nodes():
    with test_db_session() as session:
        g = igraph.Graph(directed=True)
        # two boxes
        g.add_vertices(6)
        g.vs["osm_id"] = range(6)
        # the outer rectange
        g.add_edges([
            (1, 0),
            (0, 5),

            (2, 1),
            (2, 3),

            (4, 3),
            (4, 5),
        ])
        g.es["weight"] = [x + 1 for x in range(6)]
        g.vs["redundant"] = [False for _ in range(6)]

        for i in range(6):
            new_node = OSRMNode(i, 3400000, 11800000, False, False)
            session.add(new_node)
        session.commit()

        export_nodes(g, session)

        results = session.query(OSRMRouteNode).filter_by(osm_id=4).all()
        eq_(gt.output_weights(g, 4), [5, 6])
        eq_(results[0].n_outputs, 2)
        eq_(results[0].sum_out, 5 + 6)
        eq_(results[0].product_out, 5 * 6)
        assert_almost_equal(results[0].log_sum_out,
                            math.log(5) + math.log(6))