计算在轨道上的行驶距离
计算在轨道上的平均速度和瞬时速度
计算运动时间相对于固定时间的变化
简化轨道,消除静止的部分
将一条轨道分段成单独的轨道,每趟一个在DEM中
将轨迹转换为GPX,KML等以进行可视化
分析GPS轨迹的应用程序很多。我正在寻找软件库或可编写脚本的工具集,以便可以编写自己的应用程序。我不太在乎输入格式;任何带有时间戳的经/纬度点都可以。我主要在Unix上使用Python进行工作,但是几乎所有语言都可以。但是大多数情况下,我最终还是写了自己的Python代码,该代码可用于经纬度对数组,而且感觉太低了。同样,上述某些任务(例如消除GPS错误)非常微妙。我应该使用一些现有的库吗?
#1 楼
好吧,这取决于您选择的编程语言,但是我已经用Java开发了mineturer.org(该站点实质上是一个用于上传,分析和显示GPX数据的站点)。Iv' e使用JAX-B(http://jaxb.java.net/)读取GPX文件(基于GPX架构)和JTS(http://www.vividsolutions.com/jts/)以及自己的代码进行分析。
mineturer.org的源代码可在MIT许可证下获得,网址为https://bitbucket.org/atlefren/gpsorganizer/
我想代码可以给您至少有一些指针?
评论
谢谢!您的网站看起来不错(即使您不阅读挪威语,也可以通过Google翻译使用)。您正是在进行我想要的分析,这对您开源它有很大的帮助。对于Python,我可能会使用GEOS而不是JTS。有不错的绑定。
–尼尔森
2012年4月16日在18:49
如果你喜欢它...赞它!!
– Stev_k
2012年4月17日14:50
这里只是一个后续步骤:我已经开始使用Shapely和GeoAlchemy(和Flask)将该项目移植到Python,它可以工作,但目前还很慢。出于好奇,请访问github.com/atlefren/mineturer2上的代码
– atlefren
2014年8月28日在14:15
#2 楼
我为2d / 3d数学编写了一个针对GPS处理的数学C#-lib:读取GPX和TCX,过滤和简化轨迹,将轨迹/线段聚类以及转换为2d平面。https://www.nuget.org/packages/Math.Matthey/
https://www.nuget.org/packages/Math.Matthey.Tools。 TrackReaders /
评论
是否可以获取有关该Nugets的一些描述或文档?
–Petr Krampl
19 Mar 29 '19在9:53
我看看是否可以将Readme.MD添加到NuGet pkg中。
–tma
19 Mar 30 '19 at 18:12
谢谢,无法访问存储库。除了
–Petr Krampl
19 Mar 30 '19 at 19:24
目前,仅支持带有Garmin跟踪点扩展的trrk-> trkseg-> trkpt,但我在2.3.0中添加了rte-> rtept,但到目前为止尚未进行验证。
–tma
19 Mar 30 '19 at 22:10
在nuget.org上添加了两个软件包的文档。
–tma
19年3月31日在19:34
#3 楼
GPS工具包应该会有所帮助。这是一个开放源代码库和应用程序套件,旨在使研究人员摆脱底层编码的困扰。它提供以下功能:
RINEX实用程序
定位
残差分析
电离层建模
信号跟踪模拟T
基本转换
观测数据的收集和转换
文件比较和验证。
数据编辑
自主和相对定位。
评论
感谢你的回答! GPSTk看起来很迷人,但是它的水平比我想要的低。这似乎与处理原始GPS无线电信号并从中获取位置信息有关。我的消费者GPS硬件已经提供了定位信息,无法访问低层卫星数据。
–尼尔森
2012年4月15日18:52
#4 楼
我刚刚完成了一个开放源代码库(已稳定)并分析了GPX,TCX和Fit文件。库为https://github.com/jimmykane/quantified-self-lib
基于Angular的UI https://github.com/jimmykane/quantified-self
实时演示https://www.quantified-self.io
它可以做的是解析GPX,TCX或Fit文件,生成诸如上升,下降,距离之类的统计信息,
#5 楼
很好的问题!最近我一直在处理GPX数据,而我发现的最简单的解决方案是将跟踪点转换为空间db格式,然后创建视图(空间和表格)以根据需要汇总数据。我无法使用OGR获得导入GPX数据所需的结果,因此我结束了使用简单的python脚本遍历GPX的XML树结构并将其加载到数据库(在我的情况下为SpatiaLite)的情况。这绝对不会帮助您避免重新发明轮子,但是我发现使用现有的SQL和空间SQL函数,我可以通过行程获得汇总轨道的理想结果。评论
我在使用PostGIS LineString时看到的主要缺点是它们不包含时间戳数据。我当然可以自己在单独的模式中跟踪它们,但是PostGIS并没有做任何事情来帮助我进行基于时间的计算。你有什么花招吗?
–尼尔森
2012年4月16日18:43
#6 楼
我正在开发这种小软件供我自己使用。它主要用于可视化,并不能满足您的所有需求,但也许有帮助!评论
谢谢!它是开源的,并且使用Java编写,因此绝对有帮助。
–尼尔森
2012年4月21日,0:47
#7 楼
如果您需要某种与语言无关的API的抽象规范,可以使用GeoAPI:“构建GIS解决方案的开发社区正在付出巨大的努力。GeoAPI项目旨在减少通过提供从OGC / ISO标准派生的中性,仅接口的API来实现重复并提高互操作性。“实施标准(PDF)
#8 楼
将您的GPX轨道上传到此URL,您将获得所需的大多数服务,特别是:
计算轨道上的行进距离
计算平均速度
计算运动时间与静止时间(在速度曲线上可见)
简化轨道,消除静止段
消除GPS采样误差轨道KML / KMZ等用于可视化
#9 楼
冒着无法回答您实际问题的风险:-),让我建议一个您可能没有听说过的出色应用程序,它可以完成您列出的所有内容-http:// www .topofusion.com /
http://www.topofusion.com/features.php
这是我的一站式商店,用于查看,编辑和传输GPX等。
也许还有更多的话题,也许请查看dotSpatial(.NET)的定位名称空间:http://dotspatial.codeplex.com/wikipage?title=DotSpatial.Positioning
。
评论
谢谢! TopoFusion是Windows的出色应用程序,但我确实需要一个库。 dotSpatial可以为婴儿床添加一些有用的代码。它已获得Mozilla公共许可。
–尼尔森
2012年4月21日,0:53
评论
经过一两个星期的赏金后,我认为这里的问题答案是“不,没有用于GPX音轨处理的库”。许多应用程序和代码,但没有通用工具。知道这一点很有帮助。对我而言,前进的道路是编写一些与ogr2ogr的GPX导入创建的架构兼容的PostGIS代码。该模式既包含用于轨道的简单LineString,又包含具有时间维度的时间戳的点表。Delphi代码也可以吗?
Google刚刚宣布了Tracks API,为完整性起见,我在此提及。它看起来很有用,但与我所寻找的方向不同;有关面包屑和地理围栏的更多信息。
@Nelson(来自出色的在线乘车编辑)的创建者之一,看看这个答案:GPS骑行:stackoverflow.com/a/13084082/401828
@Nelson这个问题对我来说仍然是最新的问题,将近四年之后。在此期间您找到了一个好的解决方案吗?