Python 分析— 使用 LeuvenMapMatching 包进行地图匹配用于道路导航

        在道路导航中,我们有了街道网络地图。轨迹/GPS 数据必须与街道相匹配才能进行导航,因为 GPS 读数提供纯粹的纬度和经度坐标,但我们想知道车辆行驶的具体道路。

        我首先尝试了一种简单的方法来匹配点,将每个点独立地匹配到最近的路段。如果没有道路,只需扩大缓冲距离范围即可。它不准确,因为 GPS 数据本身就有噪声,而且道路可能很复杂。,你很快就能找到这篇 StackOverflow 帖子,它指向一个名为LeuvenMapMatching的 Python 包。

1. 如何使用库

(1)轨迹数据

我目前正在使用Pneuma,从中可以提取大量的轨迹。数据应包含表示位置的元组列表。这里我以2018年10月30日1区的数据为例。

基本整理后的数据如下所示:

选择一个进行演示,您可以复制本文末尾的数组。

gps_data= [group[['lat', 'lon', ]].to_numpy() for _, group in df.groupby('track_id')]
traj= gps_data[30]

(2) 图(街道网络)

您需要图表或街道网络进行匹配;我在这篇文章中写了如何获取它。在这里,我使用边界框来创建图形。

import osmnx as ox

points = [[37.976879,23.735855],
    [37.982292,23.731264],
    [37.984309,23.734908],
    [37.978052,23.739889]
]

lats = [point[0] for point in points]
lons = [point[1] for point in points]

north, south = max(lats), min(lats)
east, west = max(lons), min(lons)

import osmnx 
  • 37
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gis收藏家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值