Skip to main content

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

Project description

GoTrackIt

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

作者: 唐铠, 794568794@qq.com, tangkai@zhechengdata.com

2024.03.29即将更新: v0.1.9

  • 增加GPS增密功能

  • 引入GPS点差分方向向量来修正发射概率

  • 地图匹配接口升级,使用更加简单,暴露了更多的可调参数

  • 构建Net对象限制为:输入的link和node的数据必须为WGS-84 EPSG:4326地理坐标,平面投影坐标系不再需要手动指定,可自动进行6度带的确定

  • 增加了路网处理函数:路段划分功能

  • 增加了路网处理函数:路段-link_id字段、from_node字段、to_node字段,节点-node_id字段重映射函数

  • 修复GPS生成接口中速度为负数的BUG

  • 修复Net初始化过程中由于节点ID过大导致内存溢出的问题

  • 新增路径缓存开关、ID缓存开关参数

遇到BUG无法解决请进群交流,别忘了给项目一颗star哦~

car_gps.png

1. 简介

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

数据无忧

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

文档齐全

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

匹配结果自动优化

  • 对基于HMM匹配的初步路径进行了优化,对于不连通的位置会自动补路,对于实际路网不连通的位置会输出警告,方便用户检查路网。

1.1. 如何安装gotrackit

所需前置依赖

  • geopandas(0.14.1)
  • geopy(2.4.1)
  • gdal(3.4.3)
  • networkx(3.2.1)
  • shapely(2.0.2)
  • pandas(2.0.3)
  • numpy(1.26.2)
  • pyproj(3.6.1)
  • keplergl(0.3.2)

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

geopandas为最新版本, 如果不是最新版本可能会报错(有个函数旧版本没有)

使用pip安装

安装:

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

更新:

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

1.2 用户手册

用户手册视频教程1视频教程2

2. 地图匹配问题

car_gps.png

where_car.png

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

3. 地图匹配算法动画演示

想了解算法过程的可以参考B站视频: 基于隐马尔可夫模型(HMM)的地图匹配算法动画版!学不会你来打我!

main.png

main.png

main.png

main.png

4. 匹配结果可视化

中高频GPS匹配效果:

main.png

低频GPS匹配效果:

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.1.9.tar.gz (121.3 kB view details)

Uploaded Source

Built Distribution

gotrackit-0.1.9-py3-none-any.whl (159.2 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for gotrackit-0.1.9.tar.gz
Algorithm Hash digest
SHA256 3d5264136a86d523a60720a33cbdb37b8d7366b10d39134d48c7f8b3a1550b67
MD5 7e13ca4f5811c179a70ccc92c83280d3
BLAKE2b-256 84fb62ddfb1616795d5f87a460bd7c3d71816c7c4878d0e8c54a358d75210f98

See more details on using hashes here.

File details

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

File metadata

  • Download URL: gotrackit-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 159.2 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.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 cd5ff3a351b9ceeff2c287bf74eac49ea92cf029aa4a24a7e49439729180872d
MD5 2c9f389d3734fc7a0f7c00d8437d3932
BLAKE2b-256 fe86dc39e1ec9a53190edc8ba902f27c39724404dcacf6a799f6a21405439068

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