Skip to main content

A Python Package for Map Matching Algorithm Based on Hidden Markov Model

Project description


Documentation Status PyPI - Version GitHub License PyPI - Downloads PyPI - Downloads

~ 一个包搞定:路网获取、路网优化、宏微观地图匹配、匹配可视化、问题路段快速定位 ~

Developed by Tang Kai, Email: 794568794@qq.com & tangkai@zhechengdata.com


版本状态:05.07已经更新: v0.2.3

更新命令:pip install --upgrade -i https://pypi.org/simple/ gotrackit

  • 效率优化, 相较于v0.2.2小幅度提升

  • crs判断BUG修复、境外路网构建失败BUG修复

  • 报错机制优化

  • 输出文件目录指定参数html_fldr废除, 改为out_fldr

  • 增加环路处理功能

  • 增加匹配结果即时输出参数, 每匹配完一条轨迹可马上进行结果存储


~ v0.2.2效率将大幅度提升, 最高可以提升10倍的性能 !~

与上一版本对比:

样例数据 有效的GPS点数 top_k(k邻近候选参数) gps_buffer(临域半径) 候选路段条数 状态转移次数 v0.2.1版解算时间 v0.2.2版解算时间
1辆车,深圳稀疏轨迹点样例1 190 60 500m 10615 629788次 28秒 3.3秒
1辆车,深圳稀疏轨迹点样例2 400 20 120m 5137 82006次 7.8秒 1.7秒

v0.2.2多核效率对比:

基于上表深圳稀疏轨迹点样例2,我们将他复制150份,进行多核测试,可以看到到6核时, 效率已经不再提升,最快96s解算完150条轨迹,平均每条轨迹0.64s,相较于1.7s再次提升了60%,在车辆数较多时,多核的效率提升很明显。

样例数据 有效的GPS点数 top_k gps_buffer 候选路段条数 状态转移次数 v0.2.2解算时间
150辆车的GPS轨迹(单核串行,子图搜索,有构建子图的额外开销,提前预计算路径) 6w 20 120m 75W 1200W次 300.0秒
150辆车的GPS轨迹(3核并行,子图搜索,有构建子图的额外开销,提前预计算路径) 6w 20 120m 75W 1200W次 139.6秒
150辆车的GPS轨迹(3核并行,全图搜索,无构建子图的额外开销,提前预计算路径) 6w 20 120m 75W 1200W次 120.3秒
150辆车的GPS轨迹(4核并行,全图搜索,无构建子图的额外开销,提前预计算路径) 6w 20 120m 75W 1200W次 104.9秒
150辆车的GPS轨迹(5核并行,全图搜索,无构建子图的额外开销,提前预计算路径) 6w 20 120m 75W 1200W次 96.4秒
150辆车的GPS轨迹(6核并行,全图搜索,无构建子图的额外开销,提前预计算路径) 6w 20 120m 75W 1200W次 97.5秒

~ 稀疏轨迹匹配与路径补全 ~

深圳稀疏轨迹点样例1:


~ 常规匹配 ~


~ 用户交流群, 遇到BUG无法解决请进群交流,别忘了给项目一颗star哦, 您的支持是我迭代的动力 ~

1. 简介

本地图匹配包基于隐马尔可夫模型(HMM)实现了连续GPS点位的概率建模,利用这个包可以轻松对GPS数据进行地图匹配,本开源包的特点如下:

数据无忧

  • 提供路网生产模块以及路网优化接口,您不需要准备任何路网和GPS数据即可玩转地图匹配;
  • 提供GPS样例数据生产模块,解决没有GPS数据的难题;
  • 提供GPS数据清洗接口,包括滑动窗口降噪、数据降频。

文档齐全

  • 中文文档,有详细的操作指引;
  • 算法原理讲解部分不涉及复杂的公式推导,使用动画形式剖析算法原理,简洁明了。

匹配结果自动优化

  • 对基于HMM匹配的初步路径进行了优化,对于不连通的位置会自动搜路补全,对于实际路网不连通的位置会输出警告信息,方便用户回溯问题。

1.1. 如何安装gotrackit

所需前置依赖

  • geopy(2.4.1)
  • gdal(3.4.3)
  • shapely(2.0.3)
  • fiona(1.9.5)
  • pyproj(3.6.1)
  • geopandas(0.14.3)
  • networkx(3.2.1)
  • pandas(2.0.3)
  • numpy(1.26.2)
  • keplergl(0.3.2)

括号中为作者使用版本(基于python3.11), 仅供参考

使用pip安装

安装:

pip install -i https://pypi.org/simple/ gotrackit

更新:

pip install --upgrade  -i https://pypi.org/simple/ gotrackit

1.2 用户手册与视频教程

用户手册

基于隐马尔可夫模型(HMM)的地图匹配算法动画版!学不会你来打我!

一个python包搞定路网获取+地图匹配!

gotrackit地图匹配包参数详解与问题排查

QGIS路网拓扑显示、底图加载、样式复用、map保存

2. 地图匹配问题

car_gps.png

where_car.png

如何依据GPS数据推算车辆的实际路径?

main.png

main.png

main.png

main.png

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gotrackit-0.2.3.tar.gz (137.1 kB view details)

Uploaded Source

Built Distribution

gotrackit-0.2.3-py3-none-any.whl (174.5 kB view details)

Uploaded Python 3

File details

Details for the file gotrackit-0.2.3.tar.gz.

File metadata

  • Download URL: gotrackit-0.2.3.tar.gz
  • Upload date:
  • Size: 137.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for gotrackit-0.2.3.tar.gz
Algorithm Hash digest
SHA256 20e8a65c451cb525da20f5b942e68ab4be10242abc74d5b5d7613f6c02d5ce4c
MD5 ec3c565ba4470fe1f0fde748f471b7a9
BLAKE2b-256 73fe5f1d9fb62b07aaba4e1538c9ea2d55938f5a88fad1322d3a2847aa8c523a

See more details on using hashes here.

File details

Details for the file gotrackit-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: gotrackit-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 174.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.5

File hashes

Hashes for gotrackit-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 7f0ba0bcce4754ebedf2cb7f699b1377e241dfe0eee683f35622c92c053e6acf
MD5 7b4da97ecc1ba587e5498b3effacf4fe
BLAKE2b-256 3a49e258b780dac4d116dde1b55335e2416f751bbcdb09e75e6d860dd2fbc39b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page