如何在OSMnx中将路网设为双向?相关全局设置疑问
OSMnx 设置全双向路网的解决方案
问题1:如何自定义OSMnx的设置文件?
不需要单独创建新的settings.py文件替换原文件,直接在代码里动态修改全局设置更简单高效。直接调用osmnx.settings模块的属性就能修改,完全不用动源码文件。示例代码:
import osmnx as ox # 修改全局设置 ox.settings.bidirectional_network_types = ['all']
如果非要替换文件,你可以把自己写的settings.py放在Python解释器优先搜索的路径(比如当前项目根目录),导入时会优先加载你的文件,但这种方法不推荐——后续OSMnx版本更新时容易出现兼容性问题,动态修改才是更稳妥的方式。
问题2:设置bidirectional_network_types=['all']能否实现所有边双向?
没错,这个参数的作用就是指定哪些类型的路网要被OSMnx当作双向边处理。设置为['all']后,所有从OSM获取的路网都会被处理成双向边,生成的图会保留有向图结构(每个方向对应一条边),这样你就能正常使用osmnx.truncate这类依赖有向图的函数,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Xudong
相关产品推荐
相关产品推荐

