좋은 GPS 트랙 분석 라이브러리가 있습니까?


35

GPS 트랙과 함께 작동하는 사용자 정의 코드를 계속 작성합니다. GPX 파일 및 휴대 전화의 NMEA 로그, 전용 GPS 로거 등. 휠을 재발 명하고 표준 라이브러리 / 도구가 있는지 궁금합니다. GPS 트랙. 내가 좋아하는 것 중 일부 :

  • 트랙에서 이동 한 거리 계산
  • 트랙을 따라 평균 속도와 순간 속도를 계산
  • 운동 시간과 정지 시간 계산
  • 트랙을 단순화하고 고정 세그먼트를 제거
  • 여행 당 하나씩 트랙을 별도의 트랙으로 분할
  • GPS 샘플링 오류 제거
  • DEM에서 점을 조회하여 입면도 프로파일 작성
  • 시각화를 위해 트랙을 GPX, KML 등으로 변환

GPS 트랙을 분석하는 다양한 응용 프로그램이 있습니다. 소프트웨어 라이브러리 또는 스크립트 가능한 도구 세트를 찾고 있으므로 자체 응용 프로그램을 작성할 수 있습니다. 입력 형식에 대해서는별로 신경 쓰지 않습니다. 타임 스탬프가 지정된 위도 / 경도 포인트는 괜찮습니다. 나는 주로 유닉스에서 파이썬으로 일하지만 거의 모든 언어가 할 것입니다.

내가 사용하는 기존 도구에는 변환을 위한 GPSBabelGDAL / OGR 과 트랙 지오메트리를 선 문자열로 사용하기위한 PostGIS 가 있습니다. 그러나 대부분 나는 위도 / 경도 쌍의 배열에서 작동하고 너무 낮은 수준으로 느끼는 자체 Python 코드를 작성하게됩니다. 또한 위의 일부 작업 (GPS 오류 제거 등)은 매우 미묘합니다. 사용해야하는 기존 라이브러리가 있습니까?


1
1 주일에서 2 주일 동안 현상금을 지불 한 후 여기에 제 질문에 대한 답변은 "아니요, GPX 트랙 처리를위한 라이브러리가 없습니다"라고 생각합니다. 응용 프로그램과 코드가 많지만 범용 도구는 없습니다. 그것을 아는 것이 도움이됩니다. 나에게 앞으로 나아갈 길은 ogr2ogr의 GPX 임포트로 생성 된 스키마와 작동하는 PostGIS 코드를 작성하는 것입니다. 이 스키마에는 트랙에 대한 간단한 LineString과 시간 차원에 대한 타임 스탬프가있는 포인트 테이블이 모두 포함됩니다.
Nelson

델파이 코드도 옵션입니까?

Google은 여기 완전성에 대해 언급 한 Tracks API를 발표했습니다 . 유용하지만 내가 찾는 것과 다른 방향으로 보입니다. 빵 부스러기와 지오 펜스에 대해 자세히 알아보십시오.
Nelson

1
(오히려 우수한 온라인 타고 편집기)를 타고와 GPS의 창조자 중 하나에서,이 답변을 살펴보십시오 @Nelson stackoverflow.com/a/13084082/401828
heltonbiker

@Nelson이 질문은 거의 4 년이 지난 지금도 여전히 최신 질문입니다. 그 동안 좋은 해결책을 찾았습니까?
amball

답변:


7

글쎄, 종류는 선택한 프로그래밍 언어에 달려 있지만 Java에서 mineturer.org를 개발했습니다 (이 사이트는 본질적으로 GPX 데이터 업로드, 분석 및 표시 사이트입니다).

필자는 JAX-B (http://jaxb.java.net/)를 사용하여 GPX 파일 (GPX 스키마 기반) 및 JTS (http://www.vividsolutions.com/jts/) + 분석하는.

mineturer.org의 소스 코드는 https://bitbucket.org/atlefren/gpsorganizer/ 의 MIT 라이센스에 따라 제공됩니다.

코드가 최소한 포인터를 줄 수 있다고 생각합니까?


감사! 귀하의 사이트는 멋지게 보입니다 (노르웨이어를 읽지 않아도 Google 번역을 통해 꽤 유용합니다). 내가 원하는 종류의 분석을 정확히 수행하고 있으며이를 오픈 소스 화하는 데 큰 도움이됩니다. 파이썬의 경우 아마도 JTS 대신 GEOS를 사용했을 것입니다. 알맞은 바인딩이 있습니다.
넬슨

2
당신이 그것을 좋아한다면 ... 그것을 upvote !!
Stev_k

1
후속 작업 : Shapely 및 GeoAlchemy (및 Flask)를 사용 하여이 프로젝트를 Python으로 이식하기 시작했지만 작동하지만 현재 속도가 느립니다. 궁금한 점에 대한 github.com/atlefren/mineturer2의 코드
atlefren

3

GPS 처리를 목표로하는 2d / 3d 수학을위한 math C # -lib를 작성했습니다 : GPX & TCX 읽기, 트랙 필터링 및 단순화, 트랙 / 세그먼트 클러스터링 및 2d 평면으로의 변환.

https://www.nuget.org/packages/Math.Matthey/

https://www.nuget.org/packages/Math.Matthey.Tools.TrackReaders/


해당 Nugets에 대한 설명이나 문서를 얻을 수 있습니까?
Petr Krampl

NuGet pkg에 Readme.MD를 추가 할 수 있는지 살펴 보겠습니다.
tma

저장소에 액세스 할 수 없습니다. 또한 GPX 포함 된 파일을 구문 분석하는 것이 가능 <rte>하고 <rtept>외에, 요소 <trk>요소?
Petr Krampl

1
현재 Garmin 트랙 포인트 확장으로 trrk-> trkseg-> trkpt 만 지원하지만 2.3.0에서 rte-> rtept를 추가했지만 지금까지는 검증되지 않았습니다.
tma

1
nuget.org에 두 패키지에 대한 설명서가 추가되었습니다.
tma

2

GPS Toolkit은 도움이 될 것입니다. 오픈 소스 라이브러리 및 응용 프로그램 모음으로, 연구원이 저수준 코딩을 자유롭게 할 수 있습니다.

다음과 같은 기능을 제공합니다.

  • RINEX 유틸리티
  • 포지셔닝
  • 잔류 분석
  • 전리층 모델링
  • 신호 추적 시뮬레이션 T
  • 기본 변환
  • 관찰 데이터 수집 및 변환
  • 파일 비교 및 ​​유효성 검사
  • 데이터 편집
  • 자율적 및 상대적 위치.

답변 해주셔서 감사합니다! GPSTk는 매력적으로 보이지만 내가 찾고있는 것보다 낮은 수준입니다. 원시 GPS 라디오 신호로 작업하고 위치 수정을 유도하는 것 같습니다. 이미 소비자 GPS 하드웨어에서 위치를 수정했으며 하위 수준의 위성 데이터에 액세스 할 수 없습니다.
Nelson


0

훌륭한 질문입니다! 최근 GPX 데이터로 많은 작업을 해왔으며 가장 간단한 해결책은 트랙 포인트를 공간 DB 형식으로 변환 한 다음 필요에 따라 데이터를 요약하는 뷰 (공간 및 표)를 만드는 것입니다. GPX 데이터를 가져 오기 위해 OGR을 사용하여 필요한 결과를 얻을 수 없었기 때문에 GPX의 XML 트리 구조를 통과하여 db (내 경우에는 SpatiaLite)로로드하기 위해 간단한 python 스크립트 사용을 종료했습니다. 이것은 바퀴를 재발 명하는 것을 피하는 데 도움이되지 않지만 기존 SQL 및 공간 SQL 함수를 사용하여 트랙을 요약하여 원하는 결과를 얻을 수 있음을 알았습니다.


1
PostGIS LineStrings를 사용하여 본 주요 단점은 타임 스탬프 데이터가 포함되어 있지 않다는 것입니다. 별도의 스키마에서 직접 추적 할 수는 있지만 PostGIS는 시간 기반 계산을 수행하는 데 도움이되는 작업을 수행하지 않습니다. 그 트릭이 있습니까?
Nelson

0

나는 자신의 사용을 위해이 작은 소프트 를 개발하고 있습니다. 주로 시각화 용이며 모든 요구 사항을 지원하지는 않지만 도움이 될 수 있습니다!


감사! 오픈 소스이며 Java로되어 있으므로 확실히 도움이됩니다.
Nelson

0

실제 질문에 대답하지 않을 위험이 있습니다.

GPX를보고, 편집하고, 전송할 수있는 원 스톱 상점입니다.

그리고 아마도 더 많은 주제에 대해서는 dotSpatial (.NET)의 Positioning 네임 스페이스를 확인 하십시오 : http://dotspatial.codeplex.com/wikipage?title=DotSpatial.Positioning

문안 인사.


감사! TopoFusion은 Windows를위한 훌륭한 응용 프로그램이지만 실제로 라이브러리가 필요합니다. dotSpatial에는 유용한 코드가 있습니다. Mozilla Public License하에 있습니다.
Nelson

0

언어 중립적 인 API에 대한 추상 사양을 원한다면 GeoAPI가 있습니다.

"GIS 솔루션을 개발하는 개발 커뮤니티는 엄청난 노력을 기울이고 있습니다. GeoAPI 프로젝트는 OGC / ISO 표준에서 파생 된 중립적 인 인터페이스 전용 API를 제공함으로써 중복을 줄이고 상호 운용성을 향상시키는 것을 목표로합니다."

http://www.geoapi.org/

보다 구체적으로 구현 표준 (PDF)


0

URL에 GPX 트랙을 업로드

귀하가 요청한 대부분의 서비스가 구체적으로 제공됩니다 :

  • 트랙에서 이동 한 거리 계산
  • 평균 속도 계산
  • 동작 시간과 정지 시간 계산 (속도 프로파일에서 볼 수 있음)
  • 트랙을 단순화하고 고정 세그먼트를 제거
  • GPS 샘플링 오류 제거
  • 시각화를 위해 트랙 KML / KMZ 등을 변환
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.