Сначала спасибо за то, что действительно нашли время, чтобы помочь мне :-) Я хочу создать неориентированный график по водным путям, например, по каналам Венеции или Амстердама.
В OpenStreetMaps есть такой график водной сети этих городов, но в пакете OSMnx нет такого фильтра для фильтрации водных путей (или, может быть, я этого еще не знаю ;-)).
import osmnx as ox
G = ox.graph_from_bbox(52.36309012572587,4.890326718121118,52.36590601699889,4.898316757037793, network_type='all')
G_projected = ox.project_graph(G)
ox.plot_graph(G_projected)
Я думал, что можно просто загрузить всю карту, а затем отфильтровать только сеть водных путей. Но я не знаю, что делать дальше. OSMnx был бы лучшим вариантом, поскольку тогда у меня сразу же появился график, который я мог бы использовать для функций сетей x, таких как кратчайший путь Дейкстры.
Другой способ, о котором я думал, - это пакет путепровода:
import overpass
import networkx as nx
import matplotlib.pyplot as plt
api= overpass.API()
data = api.get('way(52.36309012572587,4.890326718121118,52.36590601699889,4.898316757037793);(._;>;)', verbosity='geom')
[f for f in data.features if f.geometry['type'] == "LineString"]
Но это по-прежнему не работает, потому что я не понял, как фильтровать данные и преобразовывать их в граф, чтобы networkx мог их использовать.
Надеюсь, вы, ребята (и девушки :-)), сможете мне помочь, потому что я понятия не имею, как двигаться дальше.
С уважением,
Jeroen