osmnx,如何去除边缘?

问题描述

有关从osmnx网络中删除边缘的问题。

我编写了下面的代码,使用以下示例进行分析。 示例:https://github.com/gboeing/osmnx-examples/blob/master/notebooks/13-isolines-isochrones.ipynb

我的代码

import geopandas as gpd
import matplotlib.pyplot as plt
import networkx as nx
import osmnx as ox
from descartes import polygonPatch
from shapely.geometry import Point,Linestring,polygon
%matplotlib inline
ox.config(log_console=True,use_cache=True)

point = 35.334023,129.314150
network_type = 'drive'
trip_times = [10,20,30,40] #in minutes
travel_speed = 20 #walking speed in km/hour

# download the street network
G = ox.graph_from_point(point,network_type='drive',dist=8000)
ox.plot_graph(G,node_size=1,edge_color='#999999',node_color='#dc4343',edge_linewidth=0.5,figsize=(15,20))

在这里,我想从配置的网络中删除特定的边缘。 例如

edges = edges.loc[edges['name'].str.contains("천산로")==False]

尚未解决这些问题。如果您能给我一个很好的答案,我将不胜感激。

解决方法

您可以遍历所有图形边,检查边名称,然后在适用时删除边:

for u,v,name in nxG.edges(name='name'):
    if name == 'some_name': nxG.remove_edge(u,v)