def test_non_integer_nodeids(request): store = pd.HDFStore( os.path.join(os.path.dirname(__file__), 'osm_sample.h5'), "r") nodes, edges = store.nodes, store.edges # convert to string! nodes.index = nodes.index.astype("str") edges["from"] = edges["from"].astype("str") edges["to"] = edges["to"].astype("str") net = pdna.Network(nodes.x, nodes.y, edges["from"], edges.to, edges[["weight"]]) def fin(): store.close() request.addfinalizer(fin) # test accuracy compared to pandas functions ssize = 50 r = random_data(ssize) connected_nodes = get_connected_nodes(net) random_nodes = random_connected_nodes(net, ssize) net.set(random_nodes, variable=r) s = net.aggregate(100000, type="count").loc[connected_nodes] assert list(nodes.index), list(s.index)
def make_network(name, weight_col, max_distance): st = pd.HDFStore(os.path.join(misc.data_dir(), name), "r") nodes, edges = st.nodes, st.edges net = pdna.Network(nodes["x"], nodes["y"], edges["from"], edges["to"], edges[[weight_col]]) net.precompute(max_distance) return net
def sample_osm(request): store = pd.HDFStore( os.path.join(os.path.dirname(__file__), 'osm_sample.h5'), "r") nodes, edges = store.nodes, store.edges net = pdna.Network(nodes.x, nodes.y, edges["from"], edges.to, edges[["weight"]]) # try again to test for crash with pytest.raises(AssertionError): net = pdna.Network(nodes.x, nodes.y, edges["from"], edges.to, edges[["weight"]]) net.precompute(2000) def fin(): store.close() request.addfinalizer(fin) return net
def make_network(edge_name, node_name, weight_col, max_distance): if edge_name == node_name: st = pd.HDFStore(os.path.join(DATA_DIR, edge_name), "r") nodes, edges = st.nodes, st.edges else: edges = pd.read_csv(os.path.join(DATA_DIR, edge_name)) nodes = pd.read_csv(os.path.join(DATA_DIR, node_name), index_col="ID") net = pdna.Network(nodes["x"], nodes["y"], edges["from"], edges["to"], edges[[weight_col]]) net.precompute(max_distance) return net
def second_sample_osm(request): store = pd.HDFStore( os.path.join(os.path.dirname(__file__), 'osm_sample.h5'), "r") nodes, edges = store.nodes, store.edges net = pdna.Network(nodes.x, nodes.y, edges["from"], edges.to, edges[["weight"]]) net.precompute(2000) def fin(): store.close() request.addfinalizer(fin) return net
# allow test file to be passed as an argument storef = sys.argv[1] else: # if no argument provided look for it in the test data storef = os.path.normpath(os.path.join( os.path.dirname(os.path.abspath(__file__)), '../pandana/tests/osm_sample.h5')) if not os.path.isfile(storef): raise IOError('Could not find test input file: {!r}'.format(storef)) print('Building network from file: {!r}'.format(storef)) store = pd.HDFStore(storef, "r") nodes, edges = store.nodes, store.edges net = pdna.Network(nodes.x, nodes.y, edges["from"], edges.to, edges[["weight"]]) store.close() print() # Demonstrate shortest path code - the largest connected subgraph here has 477 nodes, # per the unit tests net.set(pd.Series(net.node_ids)) s = net.aggregate(10000, type='count') connected_nodes = s[s==477] n = 10000 nodes_a = np.random.choice(connected_nodes.index, n) nodes_b = np.random.choice(connected_nodes.index, n) print('Shortest path 1:')