English
登录
加入联盟
找回密码
航空人生
新一代连飞客户端下载
空管人生
中国航空运动协会推荐
WEFLY
模拟飞行玩家聊天工具
门户
文章
商城
原创商城
官方淘宝
二手市场
学院
云课堂
考试
资料下载
论坛
模拟飞行
低空飞行
太空探索
航圈
联机
航空人生(连飞)
飞行人生(虚航)
空管人生(虚管)
空战人生(对战)
工具
联飞地图
航路查询
航图查询
气象报文
资源
插件库
素材库
云网盘
企业
飞行者联盟
»
论坛
›
【飞行仿真实验室】
›
软件开发
›
OpenStreetMap
›
Osmnx,一个下载和分析 OpenStreetMap 数据的神奇Python ...
返回列表
发新帖
查看:
610
|
回复:
0
Osmnx,一个下载和分析 OpenStreetMap 数据的神奇Python库!
[复制链接]
lyh20050329
lyh20050329
当前离线
UID
4917
注册时间
2014-4-12
在线时间
小时
最后登录
1970-1-1
精华
阅读权限
50
听众
收听
雷达卡
发表于 2024-11-29 10:16:29
|
显示全部楼层
|
阅读模式
点击蓝字关注我们
Osmnx:用Python玩转OpenStreetMap地图数据
Python搞地理信息分析有福啦!Osmnx这个库简直就是给咱们开发者准备的一把瑞士军刀,它让从OpenStreetMap下载和分析地理数据变得超easy。说实话,没有它我可能还在手动下载那些杂乱的地图数据呢…
1.
安装那些事儿
pip install osmnx
装这个库可能会卡一下下,别着急,它底层用到了不少地理信息相关的依赖。要是遇到报错,八成是缺了gdal或者rtree这些包,补装一下就好啦~
2.
下载地图数据有多简单
python
import osmnx as ox
1# 获取北京天安门周边的街道网络
2G = ox.graph_from_address('Tiananmen Square, Beijing, China', dist=1000)
4# 把地图画出来看看
5ox.plot_graph(G)
看到没,就这两行代码,北京天安门附近1公里的路网就到手了!这图里的点就是路口,线就是道路。酷不酷?
温馨提示:第一次下载可能会比较慢,建议挂个代理,不然容易超时。
3.
地图分析也不难# 基础统计信息
1stats = ox.basic_stats(G)
2print(f“路网总长度:{stats['street_length_total']:.2f}米”)
3print(f“路口数量:{len(G.nodes)}”)
5# 找最短路径
6origin = list(G.nodes())[0]
7destination = list(G.nodes())[-1]
8route = ox.shortest_path(G, origin, destination)
这些数据都是现成的,想统计路网密度、计算两点之间最短路径,都不用自己写算法,库里全都给准备好啦~
4.
地图数据过滤很灵活# 只要主干道
1tags = {'highway':['primary', 'secondary', 'tertiary']}
2G_main = ox.graph_from_address('Tiananmen Square, Beijing, China',
3 dist=1000,
4 custom_filter=tags)
6# 要啥过滤啥
7places = ox.geometries_from_address('Tiananmen Square, Beijing, China',
8 tags={'amenity':'restaurant'},
9 dist=1000)
不光是道路,饭店、学校、公园这些地理要素也都能轻松获取。OpenStreetMap的标签系统特别强大,想要啥数据玩啥数据。
5.
存档和加载# 保存地图数据
1ox.save_graph_xml(G, filepath='beijing_roads.osm')
3# 读取已存地图
4G_loaded = ox.load_graphml('beijing_roads.osm')
下载的数据记得存到本地,下次用直接加载就好,省得重复下载浪费时间。
温馨提示:这些地图文件可能会比较大,存档前最好压缩一下。别忘了定期清理不用的数据,不然硬盘分分钟就满啦。
今天聊的这个Osmnx用起来贼爽,对地理数据分析感兴趣的小伙伴赶紧去试试。对了,趁着这会儿,赶紧动手实践一下,找个你感兴趣的地方,把它的地图数据下载下来玩玩~
点分享
点在看
点点赞
OpenStreetMap
,
Python
,
Osmnx
,
下载和
,
一个
相关帖子
•
如何导出openstreetmap中的街道网络数据呢?
•
分享一个B737-800的本场起落航线训练方法
•
在Python中玩转OpenStreetMap数据!osmapi实战指南
•
OpenStreetMap数据下载与使用攻略,含ArcGIS Editor for OpenStreetMap插件
•
再发一个要飞币
•
再发一个要飞币
•
再发一个要飞币
•
获取OpenStreetMap(OSM)数据方法知多少?
•
OpenStreetMap项目获Sovereign Tech Fund投资38.4 万欧元
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
加入联盟
本版积分规则
发表回复
回帖后跳转到最后一页
快速回复
返回顶部
返回列表