gpt4 book ai didi

Python:如何从 OpenStreetMaps 导入水道作为图形,以便我可以使用 networkx 进行图形分析

转载 作者:行者123 更新时间:2023-12-01 09:03:02 25 4
gpt4 key购买 nike

首先感谢您花时间帮助我:-)我想从水道(例如威尼斯或阿姆斯特丹的运河)创建一个无向图。

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)

我认为我可以下载整个 map ,然后仅过滤水路网络。但我不知道如何进一步解决这个问题。 OSMnx 将是最好的,因为我可以立即得到一个图表,可以将其用于networksx 的函数,例如 Dijkstra 的最短路径。

我想到的另一种方式是立交桥套餐:

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可以使用它。

希望你们(和女孩:-))可以帮助我,因为我不知道如何走得更远。

亲切的问候,

杰罗恩

最佳答案

您可以使用 OSMnx 获取其他类型的基础设施,例如运河、铁路、电力线等,如 this example 中所述。 ,使用 custom_filter 参数:

import osmnx as ox
ox.config(use_cache=True, log_console=True)
G = ox.graph_from_place('Amsterdam', retain_all=False, truncate_by_edge=False,
simplify=True, custom_filter='["waterway"~"canal"]')
fig, ax = ox.plot_graph(G)

关于Python:如何从 OpenStreetMaps 导入水道作为图形,以便我可以使用 networkx 进行图形分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52311549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com