gotrackit


Namegotrackit JSON
Version 0.2.2 PyPI version JSON
download
home_pageNone
SummaryA Python Package for Map Matching Algorithm Based on Hidden Markov Model
upload_time2024-04-27 14:45:07
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseLICENCE
keywords hmm mapmatching net link node hidden markov model algorithm
VCS
bugtrack_url
requirements geopandas geopy gdal networkx shapely pandas numpy pyproj keplergl pytest
Travis-CI
coveralls test coverage No coveralls.
            

<div align="center">
    <img src="docs/_static/images/gotrackit.png" />
</div>

<br>

<div align=center>

[![Documentation Status](https://readthedocs.org/projects/gotrackit/badge/?version=latest)](https://gotrackit.readthedocs.io/en/latest/?badge=latest)
![PyPI - Version](https://img.shields.io/pypi/v/gotrackit)
![GitHub License](https://img.shields.io/github/license/zdsjjtTLG/Trackit)
![PyPI - Downloads](https://img.shields.io/pypi/dw/gotrackit)
![PyPI - Downloads](https://img.shields.io/pypi/dm/gotrackit)

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

唐铠, 794568794@qq.com, tangkai@zhechengdata.com
</div>
<br>



**版本状态:04.27即将更新更新: v0.2.2**

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

- 向量化改造, 且引入FMM(Fast Map Matching)路径预存储机制, 大规模路网匹配效率大幅度提升

- 完善报错机制, 遇到GPS脏数据不再报错停止, 而是跳过, 并且在所有的agents计算完毕后输出有问题的agent编号

- BUG修复

<br>

<div align=center>
~ v0.2.2效率将大幅度提升 ~
</div>

<br>

与上一版本对比:

| 样例数据           | 有效的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秒      | 


<br>

<div align=center>
~ 稀疏轨迹匹配与路径补全 ~
</div>

<br>

深圳稀疏轨迹点样例1:
<div align="center">
    <img src="docs/_static/images/极稀疏轨迹匹配.gif" />
</div>


<div align="center">
    <img src="docs/_static/images/匹配动画样例3.gif" />
</div>


<br>

<div align=center>
~ 常规匹配 ~
</div>

<br>

<div align="center">
    <img src="docs/_static/images/匹配动画样例1.gif" />
</div>

<div align="center">
    <img src="docs/_static/images/匹配动画样例2.gif" />
</div>


<div align="center">
    <img src="docs/_static/images/匹配动画样例4.gif" />
</div>

<div align="center">
    <img src="docs/_static/images/geojson_res.jpg" />
</div>

<br>

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

<br>

<div align="center">
    <img src="docs/_static/images/wxq.jpg" />
</div>


## 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安装__

安装:

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

更新:
``` shell
pip install --upgrade  -i https://pypi.org/simple/ gotrackit
```

### 1.2 用户手册与视频教程

[用户手册](https://gotrackit.readthedocs.io/en/latest/)

[基于隐马尔可夫模型(HMM)的地图匹配算法动画版!学不会你来打我!](https://www.bilibili.com/video/BV1gQ4y1w7dC)

[一个python包搞定路网获取+地图匹配!](https://www.bilibili.com/video/BV1nC411z7Vg)

[gotrackit地图匹配包参数详解与问题排查](https://www.bilibili.com/video/BV1qK421Y7hV)

[QGIS路网拓扑显示、底图加载、样式复用、map保存](https://www.bilibili.com/video/BV1Sq421F7QX)


## 2. 地图匹配问题

![car_gps.png](docs/_static/images/car_gps.png)

![where_car.png](docs/_static/images/whereIsCar.png)

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

![main.png](docs/_static/images/single_p.png)

![main.png](docs/_static/images/transition.png)

![main.png](docs/_static/images/viterbi.png)

![main.png](docs/_static/images/trace.png)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "gotrackit",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "HMM, MapMatching, Net, Link, Node, Hidden Markov Model, Algorithm",
    "author": null,
    "author_email": "Kai Tang <794568794@qq.com>",
    "download_url": "https://files.pythonhosted.org/packages/38/d5/cc50a3673b6ce7bcb9f592703e76f47078b8ea0e942b1bc2e8dfe820aa84/gotrackit-0.2.2.tar.gz",
    "platform": null,
    "description": "\r\n\r\n<div align=\"center\">\r\n    <img src=\"docs/_static/images/gotrackit.png\" />\r\n</div>\r\n\r\n<br>\r\n\r\n<div align=center>\r\n\r\n[![Documentation Status](https://readthedocs.org/projects/gotrackit/badge/?version=latest)](https://gotrackit.readthedocs.io/en/latest/?badge=latest)\r\n![PyPI - Version](https://img.shields.io/pypi/v/gotrackit)\r\n![GitHub License](https://img.shields.io/github/license/zdsjjtTLG/Trackit)\r\n![PyPI - Downloads](https://img.shields.io/pypi/dw/gotrackit)\r\n![PyPI - Downloads](https://img.shields.io/pypi/dm/gotrackit)\r\n\r\n~ \u4e00\u4e2a\u5305\u641e\u5b9a\uff1a\u8def\u7f51\u83b7\u53d6\u3001\u8def\u7f51\u4f18\u5316\u3001\u5b8f\u5fae\u89c2\u5730\u56fe\u5339\u914d\u3001\u5339\u914d\u53ef\u89c6\u5316\u3001\u95ee\u9898\u8def\u6bb5\u5feb\u901f\u5b9a\u4f4d ~\r\n\r\n\u5510\u94e0, 794568794@qq.com, tangkai@zhechengdata.com\r\n</div>\r\n<br>\r\n\r\n\r\n\r\n**\u7248\u672c\u72b6\u6001\uff1a04.27\u5373\u5c06\u66f4\u65b0\u66f4\u65b0: v0.2.2**\r\n\r\n\u66f4\u65b0\u547d\u4ee4\uff1apip install --upgrade  -i https://pypi.org/simple/ gotrackit\r\n\r\n- \u5411\u91cf\u5316\u6539\u9020, \u4e14\u5f15\u5165FMM(Fast Map Matching)\u8def\u5f84\u9884\u5b58\u50a8\u673a\u5236, \u5927\u89c4\u6a21\u8def\u7f51\u5339\u914d\u6548\u7387\u5927\u5e45\u5ea6\u63d0\u5347\r\n\r\n- \u5b8c\u5584\u62a5\u9519\u673a\u5236, \u9047\u5230GPS\u810f\u6570\u636e\u4e0d\u518d\u62a5\u9519\u505c\u6b62, \u800c\u662f\u8df3\u8fc7, \u5e76\u4e14\u5728\u6240\u6709\u7684agents\u8ba1\u7b97\u5b8c\u6bd5\u540e\u8f93\u51fa\u6709\u95ee\u9898\u7684agent\u7f16\u53f7\r\n\r\n- BUG\u4fee\u590d\r\n\r\n<br>\r\n\r\n<div align=center>\r\n~ v0.2.2\u6548\u7387\u5c06\u5927\u5e45\u5ea6\u63d0\u5347 ~\r\n</div>\r\n\r\n<br>\r\n\r\n\u4e0e\u4e0a\u4e00\u7248\u672c\u5bf9\u6bd4:\r\n\r\n| \u6837\u4f8b\u6570\u636e           | \u6709\u6548\u7684GPS\u70b9\u6570 | top_k(k\u90bb\u8fd1\u5019\u9009\u53c2\u6570) | gps_buffer(\u4e34\u57df\u534a\u5f84) | \u5019\u9009\u8def\u6bb5\u6761\u6570 | \u72b6\u6001\u8f6c\u79fb\u6b21\u6570  | v0.2.1\u7248\u89e3\u7b97\u65f6\u95f4 | v0.2.2\u7248\u89e3\u7b97\u65f6\u95f4 |\r\n|----------------|----------|----------------|------------------|---------|------------|-------------|-----------|\r\n| 1\u8f86\u8f66,\u6df1\u5733\u7a00\u758f\u8f68\u8ff9\u70b9\u6837\u4f8b1 | 190      | 60             | 500m             | 10615 | 629788\u6b21 | 28\u79d2         | **3.3\u79d2**  |\r\n| 1\u8f86\u8f66,\u6df1\u5733\u7a00\u758f\u8f68\u8ff9\u70b9\u6837\u4f8b2 | 400      | 20             | 120m             | 5137 | 82006\u6b21  | 7.8\u79d2        | **1.7\u79d2**    |\r\n\r\n\r\nv0.2.2\u591a\u6838\u6548\u7387\u5bf9\u6bd4:\r\n\r\n\u57fa\u4e8e\u4e0a\u8868\u6df1\u5733\u7a00\u758f\u8f68\u8ff9\u70b9\u6837\u4f8b2\uff0c\u6211\u4eec\u5c06\u4ed6\u590d\u5236150\u4efd\uff0c\u8fdb\u884c\u591a\u6838\u6d4b\u8bd5\uff0c\u53ef\u4ee5\u770b\u5230\u52306\u6838\u65f6, \u6548\u7387\u5df2\u7ecf\u4e0d\u518d\u63d0\u5347\uff0c\u6700\u5feb96s\u89e3\u7b97\u5b8c150\u6761\u8f68\u8ff9\uff0c\u5e73\u5747\u6bcf\u6761\u8f68\u8ff90.64s\uff0c\u76f8\u8f83\u4e8e1.7s\u518d\u6b21\u63d0\u5347\u4e8660%\uff0c\u5728\u8f66\u8f86\u6570\u8f83\u591a\u65f6\uff0c\u591a\u6838\u7684\u6548\u7387\u63d0\u5347\u5f88\u660e\u663e\u3002\r\n\r\n| \u6837\u4f8b\u6570\u636e                                      | \u6709\u6548\u7684GPS\u70b9\u6570 | top_k | gps_buffer | \u5019\u9009\u8def\u6bb5\u6761\u6570 | \u72b6\u6001\u8f6c\u79fb\u6b21\u6570 | v0.2.2\u89e3\u7b97\u65f6\u95f4 |\r\n|-------------------------------------------|----------|----------------|------------------|-----|--------|------------|\r\n| 150\u8f86\u8f66\u7684GPS\u8f68\u8ff9(\u5355\u6838\u4e32\u884c,\u5b50\u56fe\u641c\u7d22,\u6709\u6784\u5efa\u5b50\u56fe\u7684\u989d\u5916\u5f00\u9500,\u63d0\u524d\u9884\u8ba1\u7b97\u8def\u5f84) | 6w       | 20             | 120m             | 75W | 1200W\u6b21 | 300.0\u79d2     | \r\n| 150\u8f86\u8f66\u7684GPS\u8f68\u8ff9(3\u6838\u5e76\u884c,\u5b50\u56fe\u641c\u7d22,\u6709\u6784\u5efa\u5b50\u56fe\u7684\u989d\u5916\u5f00\u9500,\u63d0\u524d\u9884\u8ba1\u7b97\u8def\u5f84) | 6w       | 20             | 120m             | 75W | 1200W\u6b21 | 139.6\u79d2     |\r\n| 150\u8f86\u8f66\u7684GPS\u8f68\u8ff9(3\u6838\u5e76\u884c,\u5168\u56fe\u641c\u7d22,\u65e0\u6784\u5efa\u5b50\u56fe\u7684\u989d\u5916\u5f00\u9500,\u63d0\u524d\u9884\u8ba1\u7b97\u8def\u5f84) | 6w       | 20             | 120m             | 75W | 1200W\u6b21 | 120.3\u79d2     |\r\n| 150\u8f86\u8f66\u7684GPS\u8f68\u8ff9(4\u6838\u5e76\u884c,\u5168\u56fe\u641c\u7d22,\u65e0\u6784\u5efa\u5b50\u56fe\u7684\u989d\u5916\u5f00\u9500,\u63d0\u524d\u9884\u8ba1\u7b97\u8def\u5f84) | 6w       | 20             | 120m             | 75W | 1200W\u6b21 | 104.9\u79d2     | \r\n| 150\u8f86\u8f66\u7684GPS\u8f68\u8ff9(5\u6838\u5e76\u884c,\u5168\u56fe\u641c\u7d22,\u65e0\u6784\u5efa\u5b50\u56fe\u7684\u989d\u5916\u5f00\u9500,\u63d0\u524d\u9884\u8ba1\u7b97\u8def\u5f84) | 6w       | 20             | 120m             | 75W | 1200W\u6b21 | 96.4\u79d2      | \r\n| 150\u8f86\u8f66\u7684GPS\u8f68\u8ff9(6\u6838\u5e76\u884c,\u5168\u56fe\u641c\u7d22,\u65e0\u6784\u5efa\u5b50\u56fe\u7684\u989d\u5916\u5f00\u9500,\u63d0\u524d\u9884\u8ba1\u7b97\u8def\u5f84) | 6w       | 20             | 120m             | 75W | 1200W\u6b21 | 97.5\u79d2      | \r\n\r\n\r\n<br>\r\n\r\n<div align=center>\r\n~ \u7a00\u758f\u8f68\u8ff9\u5339\u914d\u4e0e\u8def\u5f84\u8865\u5168 ~\r\n</div>\r\n\r\n<br>\r\n\r\n\u6df1\u5733\u7a00\u758f\u8f68\u8ff9\u70b9\u6837\u4f8b1\uff1a\r\n<div align=\"center\">\r\n    <img src=\"docs/_static/images/\u6781\u7a00\u758f\u8f68\u8ff9\u5339\u914d.gif\" />\r\n</div>\r\n\r\n\r\n<div align=\"center\">\r\n    <img src=\"docs/_static/images/\u5339\u914d\u52a8\u753b\u6837\u4f8b3.gif\" />\r\n</div>\r\n\r\n\r\n<br>\r\n\r\n<div align=center>\r\n~ \u5e38\u89c4\u5339\u914d ~\r\n</div>\r\n\r\n<br>\r\n\r\n<div align=\"center\">\r\n    <img src=\"docs/_static/images/\u5339\u914d\u52a8\u753b\u6837\u4f8b1.gif\" />\r\n</div>\r\n\r\n<div align=\"center\">\r\n    <img src=\"docs/_static/images/\u5339\u914d\u52a8\u753b\u6837\u4f8b2.gif\" />\r\n</div>\r\n\r\n\r\n<div align=\"center\">\r\n    <img src=\"docs/_static/images/\u5339\u914d\u52a8\u753b\u6837\u4f8b4.gif\" />\r\n</div>\r\n\r\n<div align=\"center\">\r\n    <img src=\"docs/_static/images/geojson_res.jpg\" />\r\n</div>\r\n\r\n<br>\r\n\r\n<div align=center>\r\n~ \u7528\u6237\u4ea4\u6d41\u7fa4\uff0c \u9047\u5230BUG\u65e0\u6cd5\u89e3\u51b3\u8bf7\u8fdb\u7fa4\u4ea4\u6d41\uff0c\u522b\u5fd8\u4e86\u7ed9\u9879\u76ee\u4e00\u9897star\u54e6\uff0c \u60a8\u7684\u652f\u6301\u662f\u6211\u8fed\u4ee3\u7684\u52a8\u529b ~\r\n</div>\r\n\r\n<br>\r\n\r\n<div align=\"center\">\r\n    <img src=\"docs/_static/images/wxq.jpg\" />\r\n</div>\r\n\r\n\r\n## 1. \u7b80\u4ecb\r\n\u672c\u5730\u56fe\u5339\u914d\u5305\u57fa\u4e8e\u9690\u9a6c\u5c14\u53ef\u592b\u6a21\u578b(HMM)\u5b9e\u73b0\u4e86\u8fde\u7eedGPS\u70b9\u4f4d\u7684\u6982\u7387\u5efa\u6a21\uff0c\u5229\u7528\u8fd9\u4e2a\u5305\u53ef\u4ee5\u8f7b\u677e\u5bf9GPS\u6570\u636e\u8fdb\u884c\u5730\u56fe\u5339\u914d\uff0c\u672c\u5f00\u6e90\u5305\u7684\u7279\u70b9\u5982\u4e0b:\r\n\r\n**\u6570\u636e\u65e0\u5fe7**\r\n- \u63d0\u4f9b\u8def\u7f51\u751f\u4ea7\u6a21\u5757\u4ee5\u53ca\u8def\u7f51\u4f18\u5316\u63a5\u53e3\uff0c\u60a8\u4e0d\u9700\u8981\u51c6\u5907\u4efb\u4f55\u8def\u7f51\u548cGPS\u6570\u636e\u5373\u53ef\u73a9\u8f6c\u5730\u56fe\u5339\u914d\uff1b\r\n- \u63d0\u4f9bGPS\u6837\u4f8b\u6570\u636e\u751f\u4ea7\u6a21\u5757\uff0c\u89e3\u51b3\u6ca1\u6709GPS\u6570\u636e\u7684\u96be\u9898\uff1b\r\n- \u63d0\u4f9bGPS\u6570\u636e\u6e05\u6d17\u63a5\u53e3\uff0c\u5305\u62ec\u6ed1\u52a8\u7a97\u53e3\u964d\u566a\u3001\u6570\u636e\u964d\u9891\u3002\r\n\r\n**\u6587\u6863\u9f50\u5168**\r\n\r\n- \u4e2d\u6587\u6587\u6863\uff0c\u6709\u8be6\u7ec6\u7684\u64cd\u4f5c\u6307\u5f15\uff1b\r\n- \u7b97\u6cd5\u539f\u7406\u8bb2\u89e3\u90e8\u5206\u4e0d\u6d89\u53ca\u590d\u6742\u7684\u516c\u5f0f\u63a8\u5bfc\uff0c\u4f7f\u7528\u52a8\u753b\u5f62\u5f0f\u5256\u6790\u7b97\u6cd5\u539f\u7406,\u7b80\u6d01\u660e\u4e86\u3002\r\n\r\n**\u5339\u914d\u7ed3\u679c\u81ea\u52a8\u4f18\u5316**\r\n- \u5bf9\u57fa\u4e8eHMM\u5339\u914d\u7684\u521d\u6b65\u8def\u5f84\u8fdb\u884c\u4e86\u4f18\u5316\uff0c\u5bf9\u4e8e\u4e0d\u8fde\u901a\u7684\u4f4d\u7f6e\u4f1a\u81ea\u52a8\u8865\u8def\uff0c\u5bf9\u4e8e\u5b9e\u9645\u8def\u7f51\u4e0d\u8fde\u901a\u7684\u4f4d\u7f6e\u4f1a\u8f93\u51fa\u8b66\u544a\uff0c\u65b9\u4fbf\u7528\u6237\u68c0\u67e5\u8def\u7f51\u3002\r\n\r\n\r\n\r\n### 1.1. \u5982\u4f55\u5b89\u88c5gotrackit\r\n\r\n#### __\u6240\u9700\u524d\u7f6e\u4f9d\u8d56__\r\n\r\n- geopy(2.4.1)\r\n- gdal(3.4.3)\r\n- shapely(2.0.3)\r\n- fiona(1.9.5)\r\n- pyproj(3.6.1)\r\n- geopandas(0.14.3)\r\n- networkx(3.2.1)\r\n- pandas(2.0.3)\r\n- numpy(1.26.2)\r\n- keplergl(0.3.2)\r\n\r\n\u62ec\u53f7\u4e2d\u4e3a\u4f5c\u8005\u4f7f\u7528\u7248\u672c(\u57fa\u4e8epython3.11), \u4ec5\u4f9b\u53c2\u8003\r\n\r\n#### __\u4f7f\u7528pip\u5b89\u88c5__\r\n\r\n\u5b89\u88c5\uff1a\r\n\r\n``` shell\r\npip install -i https://pypi.org/simple/ gotrackit\r\n```\r\n\r\n\u66f4\u65b0\uff1a\r\n``` shell\r\npip install --upgrade  -i https://pypi.org/simple/ gotrackit\r\n```\r\n\r\n### 1.2 \u7528\u6237\u624b\u518c\u4e0e\u89c6\u9891\u6559\u7a0b\r\n\r\n[\u7528\u6237\u624b\u518c](https://gotrackit.readthedocs.io/en/latest/)\r\n\r\n[\u57fa\u4e8e\u9690\u9a6c\u5c14\u53ef\u592b\u6a21\u578b(HMM)\u7684\u5730\u56fe\u5339\u914d\u7b97\u6cd5\u52a8\u753b\u7248\uff01\u5b66\u4e0d\u4f1a\u4f60\u6765\u6253\u6211\uff01](https://www.bilibili.com/video/BV1gQ4y1w7dC)\r\n\r\n[\u4e00\u4e2apython\u5305\u641e\u5b9a\u8def\u7f51\u83b7\u53d6+\u5730\u56fe\u5339\u914d\uff01](https://www.bilibili.com/video/BV1nC411z7Vg)\r\n\r\n[gotrackit\u5730\u56fe\u5339\u914d\u5305\u53c2\u6570\u8be6\u89e3\u4e0e\u95ee\u9898\u6392\u67e5](https://www.bilibili.com/video/BV1qK421Y7hV)\r\n\r\n[QGIS\u8def\u7f51\u62d3\u6251\u663e\u793a\u3001\u5e95\u56fe\u52a0\u8f7d\u3001\u6837\u5f0f\u590d\u7528\u3001map\u4fdd\u5b58](https://www.bilibili.com/video/BV1Sq421F7QX)\r\n\r\n\r\n## 2. \u5730\u56fe\u5339\u914d\u95ee\u9898\r\n\r\n![car_gps.png](docs/_static/images/car_gps.png)\r\n\r\n![where_car.png](docs/_static/images/whereIsCar.png)\r\n\r\n__\u5982\u4f55\u4f9d\u636eGPS\u6570\u636e\u63a8\u7b97\u8f66\u8f86\u7684\u5b9e\u9645\u8def\u5f84\uff1f__\r\n\r\n![main.png](docs/_static/images/single_p.png)\r\n\r\n![main.png](docs/_static/images/transition.png)\r\n\r\n![main.png](docs/_static/images/viterbi.png)\r\n\r\n![main.png](docs/_static/images/trace.png)\r\n",
    "bugtrack_url": null,
    "license": "LICENCE",
    "summary": "A Python Package for Map Matching Algorithm Based on Hidden Markov Model",
    "version": "0.2.2",
    "project_urls": {
        "Homepage": "https://github.com/zdsjjtTLG/TrackIt"
    },
    "split_keywords": [
        "hmm",
        " mapmatching",
        " net",
        " link",
        " node",
        " hidden markov model",
        " algorithm"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ee662441e6f78689e10a0deb9fe3afe325abe85b24bb29d15f06fccf022df7e4",
                "md5": "1f6ae9a79bf77b6651822d2cf81844eb",
                "sha256": "fcacf50585fb77d4355a77e11ca0fe61da25dbac1ba147417dda919fca3f8015"
            },
            "downloads": -1,
            "filename": "gotrackit-0.2.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "1f6ae9a79bf77b6651822d2cf81844eb",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 172905,
            "upload_time": "2024-04-27T14:45:04",
            "upload_time_iso_8601": "2024-04-27T14:45:04.806525Z",
            "url": "https://files.pythonhosted.org/packages/ee/66/2441e6f78689e10a0deb9fe3afe325abe85b24bb29d15f06fccf022df7e4/gotrackit-0.2.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "38d5cc50a3673b6ce7bcb9f592703e76f47078b8ea0e942b1bc2e8dfe820aa84",
                "md5": "0d870f943585f2e8d302bfb219cc344d",
                "sha256": "0888fe6663a2026defd8a0fe6fd1cc9c1a0e2602a0b91b1a23c713f127113a50"
            },
            "downloads": -1,
            "filename": "gotrackit-0.2.2.tar.gz",
            "has_sig": false,
            "md5_digest": "0d870f943585f2e8d302bfb219cc344d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 135566,
            "upload_time": "2024-04-27T14:45:07",
            "upload_time_iso_8601": "2024-04-27T14:45:07.677198Z",
            "url": "https://files.pythonhosted.org/packages/38/d5/cc50a3673b6ce7bcb9f592703e76f47078b8ea0e942b1bc2e8dfe820aa84/gotrackit-0.2.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-27 14:45:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "zdsjjtTLG",
    "github_project": "TrackIt",
    "travis_ci": true,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "geopandas",
            "specs": [
                [
                    "==",
                    "0.14.1"
                ]
            ]
        },
        {
            "name": "geopy",
            "specs": [
                [
                    "==",
                    "2.4.1"
                ]
            ]
        },
        {
            "name": "gdal",
            "specs": [
                [
                    "==",
                    "3.4.3"
                ]
            ]
        },
        {
            "name": "networkx",
            "specs": [
                [
                    "==",
                    "3.2.1"
                ]
            ]
        },
        {
            "name": "shapely",
            "specs": [
                [
                    "==",
                    "2.0.2"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "2.0.3"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.26.2"
                ]
            ]
        },
        {
            "name": "pyproj",
            "specs": [
                [
                    "==",
                    "3.6.1"
                ]
            ]
        },
        {
            "name": "keplergl",
            "specs": [
                [
                    "==",
                    "0.3.2"
                ]
            ]
        },
        {
            "name": "pytest",
            "specs": []
        }
    ],
    "lcname": "gotrackit"
}
        
Elapsed time: 0.34673s