Có một thư viện phân tích theo dõi GPS tốt?


35

Tôi tiếp tục viết mã tùy chỉnh để hoạt động với các rãnh GPS: tệp GPX và nhật ký NMEA từ điện thoại của tôi, bộ ghi GPS chuyên dụng, v.v. Tôi cảm thấy như mình đang phát minh lại bánh xe và tự hỏi liệu có thư viện / công cụ tiêu chuẩn nào tôi có thể sử dụng để làm việc không với các bài hát GPS. Một số điều tôi thích làm:

  • Tính quãng đường đi được trên đường đua
  • Tính tốc độ trung bình và tốc độ tức thời dọc theo đường đua
  • Tính thời gian trong chuyển động so với thời gian đứng yên
  • Đơn giản hóa theo dõi, loại bỏ các phân đoạn văn phòng phẩm
  • Phân đoạn một bản nhạc thành các bản nhạc riêng biệt, mỗi bản một chuyến
  • Làm dịu lỗi lấy mẫu GPS
  • Tạo một hồ sơ độ cao bằng cách tìm kiếm các điểm trong DEM
  • Chuyển đổi các bản nhạc sang GPX, KML, v.v để trực quan hóa

Có một loạt các ứng dụng phân tích các bài hát GPS. Tôi đang tìm một thư viện phần mềm hoặc bộ công cụ có thể viết kịch bản để tôi có thể viết các ứng dụng của riêng mình. Tôi không quan tâm nhiều đến các định dạng đầu vào; bất kỳ loại điểm lat / lon được đánh dấu thời gian nào cũng tốt. Tôi chủ yếu làm việc với Python trên Unix nhưng hầu như mọi ngôn ngữ sẽ làm.

Các công cụ hiện có tôi sử dụng bao gồm GPSBabelGDAL / OGR để chuyển đổi và PostGIS để làm việc với hình dạng rãnh như một chuỗi dòng. Nhưng chủ yếu là cuối cùng tôi đã viết mã Python của riêng mình, hoạt động trên các mảng lat / lon và cảm giác đó quá thấp. Ngoài ra một số tác vụ trên (như xóa lỗi GPS) khá tinh tế. Có một số thư viện hiện có tôi nên sử dụng?


1
Sau một hoặc hai tuần và tiền thưởng tôi nghĩ câu trả lời cho câu hỏi của tôi ở đây là "không, không có thư viện để xử lý theo dõi GPX". Rất nhiều ứng dụng và mã, nhưng không có công cụ cho mục đích chung. Thật hữu ích khi biết điều đó. Đối với tôi, con đường phía trước là viết một số mã PostGIS hoạt động với lược đồ được tạo bởi quá trình nhập GPX của ogr2ogr. Lược đồ đó chứa cả LineString đơn giản cho bản nhạc và bảng các điểm có dấu thời gian cho thứ nguyên thời gian.
Nelson

Có phải mã Delphi cũng là một lựa chọn không?

Google vừa công bố API bài hát tôi đang đề cập ở đây để hoàn thiện. Nó có vẻ hữu ích nhưng theo một hướng khác so với tôi đang tìm kiếm; thêm về vụn bánh mì và geofences.
Nelson

1
@Nelson Hãy xem câu trả lời này, từ một trong những người tạo ra (biên tập viên đi xe trực tuyến khá xuất sắc) Ride With GPS: stackoverflow.com/a/13084082/401828
heltonbiker

@Nelson Câu hỏi này vẫn còn rất thời sự đối với tôi, gần 4 năm sau. Bạn đã tìm thấy một giải pháp tốt trong khi chờ đợi?
bóng tròn

Câu trả lời:


7

Chà, tùy thuộc vào ngôn ngữ lập trình của bạn, nhưng tôi đã phát triển mineturer.org bằng Java (trang web này thực chất là một trang để tải lên, phân tích và hiển thị dữ liệu GPX).

Iv'e đã ​​sử dụng JAX-B (http://jaxb.java.net/) để đọc các tệp GPX (dựa trên lược đồ GPX) và JTS (http://www.vividsolutions.com/jts/) + mã riêng cho phân tích.

Mã nguồn cho mineturer.org có sẵn theo giấy phép MIT tại https://bitbucket.org/atlefren/gpsorganizer/

Tôi đoán mã ít nhất có thể cung cấp cho bạn một số gợi ý?


Cảm ơn! Trang web của bạn trông rất tuyệt (và khá hữu dụng thông qua Google Dịch ngay cả khi bạn không đọc tiếng Na Uy). Bạn đang thực hiện chính xác loại phân tích tôi muốn và đó là một sự trợ giúp lớn mà bạn đã mở nguồn. Đối với Python tôi có thể sử dụng GEOS thay vì JTS; có ràng buộc tốt.
Nelson

2
nếu bạn thích nó ... hãy ủng hộ nó !!
Stev_k

1
Chỉ cần theo dõi ở đây: Tôi đã bắt đầu chuyển dự án này sang Python, sử dụng Shapely và GeoAlchemy (và Flask), nó hoạt động nhưng hiện tại khá chậm. Mã tại github.com/atlefren/mineturer2 cho người tò mò
atlefren

3

Tôi đã viết một toán học C # -lib cho việc xử lý GPS 2d / 3d nhắm mục tiêu GPS: đọc GPX & TCX, lọc và đơn giản hóa các bản nhạc, phân cụm các bản nhạc / phân đoạn và chuyển đổi sang mặt phẳng 2d.

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

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


Có thể lấy một số mô tả hoặc tài liệu cho Nugets đó không?
Petr Krampl

Tôi sẽ xem liệu tôi có thể thêm Readme.MD vào pkg NuGet không.
TMA

Cảm ơn bạn, kho lưu trữ không thể truy cập. Có thể phân tích cú pháp các tệp gpx chứa <rte><rtept>các phần tử, bên cạnh các <trk>phần tử không?
Petr Krampl

1
Hiện tại chỉ hỗ trợ trrk-> trkseg-> trkpt với tiện ích mở rộng điểm theo dõi của Garmin, nhưng tôi đã thêm rte-> rtept trong 2.3.0, nhưng cho đến nay vẫn chưa có xác nhận.
TMA

1
Đã thêm tài liệu cho cả hai gói trên nuget.org.
tma

2

Các GPS Toolkit sẽ giúp. Đây là một thư viện mã nguồn mở và bộ ứng dụng nhằm mục đích giải phóng các nhà nghiên cứu khỏi mã hóa cấp thấp hơn.

Nó cung cấp các chức năng sau:

  • Tiện ích RINEX
  • Định vị
  • Phân tích dư
  • Mô hình tầng điện ly
  • Mô phỏng theo dõi tín hiệu T
  • Các phép biến đổi cơ bản
  • Thu thập và chuyển đổi dữ liệu quan sát
  • So sánh và xác nhận tập tin.
  • Chỉnh sửa dữ liệu
  • Định vị tự chủ và tương đối.

Cảm ơn câu trả lời! GPSTk trông hấp dẫn nhưng nó ở cấp độ thấp hơn tôi đang tìm kiếm. Nó dường như là về làm việc với các tín hiệu vô tuyến GPS thô và sửa lỗi vị trí từ chúng. Tôi đã có bản sửa lỗi vị trí từ phần cứng GPS tiêu dùng của mình và không có quyền truy cập vào dữ liệu vệ tinh cấp thấp.
Nelson

1

Có một lib nguồn mở tôi vừa hoàn thành phát triển (để ổn định) và UI để phân tích GPX, TCX và phù hợp với các tệp.

Lib là https://github.com/jimmykane/quantified-elf-lib Giao diện người dùng dựa trên Angular https://github.com/jimmykane/quantified-elf

Bản demo trực tiếp https://www.quantified-elf.io

Những gì nó có thể làm là phân tích tệp GPX, TCX hoặc Fit, tạo các số liệu thống kê như tăng, giảm, khoảng cách,


0

Câu hỏi tuyệt vời! Gần đây tôi đã làm việc khá nhiều với dữ liệu GPX và giải pháp đơn giản nhất mà tôi đã tìm thấy là chuyển đổi các điểm theo dõi của bạn thành định dạng db không gian và sau đó tạo chế độ xem (không gian và bảng) để tóm tắt dữ liệu khi cần. Tôi không thể nhận được kết quả cần thiết khi sử dụng OGR để nhập dữ liệu GPX của mình, vì vậy tôi đã kết thúc bằng cách sử dụng tập lệnh python đơn giản để duyệt qua cấu trúc cây XML của GPX và tải nó vào db (trong trường hợp của tôi là SpatiaLite). Điều này chắc chắn không giúp bạn trong việc tránh phát minh lại bánh xe, tuy nhiên tôi thấy rằng tôi có thể nhận được kết quả mong muốn của việc tóm tắt các bản nhạc bằng cách sử dụng các hàm SQL và SQL không gian hiện có.


1
Hạn chế chính mà tôi đã thấy khi sử dụng PostGIS LineStrings là chúng không chứa dữ liệu dấu thời gian. Tôi chắc chắn có thể tự theo dõi chúng trong một lược đồ riêng, nhưng sau đó PostGIS không làm gì để giúp tôi thực hiện các phép tính dựa trên thời gian. Bạn có bất kỳ thủ thuật cho điều đó?
Nelson

0

Tôi đang phát triển phần mềm nhỏ này để sử dụng riêng của tôi. Nó chủ yếu để trực quan hóa và không hỗ trợ tất cả các nhu cầu của bạn, nhưng có lẽ nó có thể giúp!


Cảm ơn! Đó là nguồn mở và trong Java, vì vậy đó chắc chắn là một sự trợ giúp.
Nelson

0

có nguy cơ không trả lời câu hỏi thực tế của bạn :-), hãy để tôi đề xuất một ứng dụng tuyệt vời mà bạn có thể chưa nghe nói đến, đó là tất cả những gì bạn liệt kê -

đó là nơi lý tưởng để tôi xem, chỉnh sửa và chuyển GPX, trong số những thứ khác.

Và có lẽ nhiều hơn về chủ đề, có thể kiểm tra không gian tên Định vị của dotSpatial (.NET): http://dotspatial.codeplex.com/wikipage?title=DotSpatial.Pocationing

Trân trọng.


Cảm ơn! TopoFusion là một ứng dụng tuyệt vời cho Windows, nhưng tôi thực sự cần một thư viện. dotSpatial có một số mã tìm kiếm hữu ích để cũi. Đó là theo Giấy phép Công cộng Mozilla.
Nelson

0

Nếu bạn muốn một số đặc tả trừu tượng cho API trung lập về ngôn ngữ, thì có GeoAPI:

"Cộng đồng phát triển trong việc xây dựng các giải pháp GIS đang duy trì một mức độ nỗ lực rất lớn. Dự án GeoAPI nhằm giảm sự trùng lặp và tăng khả năng tương tác bằng cách cung cấp các API trung tính, chỉ giao diện có nguồn gốc từ Tiêu chuẩn OGC / ISO."

http://www.geoapi.org/

và cụ thể hơn là Tiêu chuẩn thực hiện (PDF)


0

Tải bản nhạc GPX của bạn lên URL này

Bạn sẽ được cung cấp hầu hết các dịch vụ mà bạn yêu cầu, cụ thể:

  • Tính quãng đường đi được trên đường đua
  • Tính tốc độ trung bình
  • Tính thời gian trong chuyển động so với thời gian đứng yên (hiển thị trên cấu hình tốc độ)
  • Đơn giản hóa theo dõi, loại bỏ các phân đoạn văn phòng phẩm
  • Làm dịu lỗi lấy mẫu GPS
  • Chuyển đổi KML / KMZ theo dõi để hiển thị
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.