İyi bir GPS izi analiz kütüphanesi var mı?


35

GPS izleriyle çalışmak için özel kod yazmaya devam ediyorum: Telefonumdan GPX dosyaları ve NMEA günlükleri, özel GPS günlüğü, vb. GPS izleri ile. Yapmayı sevdiğim bazı şeyler:

  • Pistte kat edilen mesafeyi hesaplayın
  • Parça boyunca ortalama hızı ve anlık hızları hesaplayın
  • Harekete göre zamanı hesapla, durağan zamanı
  • Parçayı basitleştirin, sabit bölümleri ortadan kaldırın
  • Parçayı her seferinde bir olmak üzere ayrı izlere ayır
  • GPS örnekleme hatasını düzeltin
  • Bir DEM'deki noktalara bakarak bir yükseklik profili oluşturun
  • Görselleştirme için parçaları GPX'e, KML'ye vb. Dönüştürün

GPS izlerini analiz eden çeşitli uygulamalar vardır. Kendi uygulamalarımı yazabilmem için bir yazılım kütüphanesi veya komut dosyası araçları arıyorum. Giriş formatlarını pek umursamıyorum; herhangi bir zaman damgalı lat / lon noktası iyi. Çoğunlukla Unix'teki Python'da çalışıyorum ama hemen hemen her dilde çalışacak.

Kullandığım mevcut araçlar arasında dönüşüm için GPSBabel ve GDAL / OGR ve çizgi dizgisi olarak iz geometrisi ile çalışmak için PostGIS bulunmaktadır. Fakat çoğunlukla, en son / çift çiftlerin dizileri üzerinde çalışan ve çok düşük seviyede olan kendi Python kodumu yazarım. Ayrıca yukarıdaki görevlerden bazıları (GPS hatasını silmek gibi) oldukça incedir. Kullanmam gereken bazı kütüphane var mı?


1
Bir ya da iki hafta sonra ve bir ödül aldıktan sonra, buradaki sorumun cevabı "hayır, GPX iz işleme için kütüphane yok" olduğunu düşünüyorum. Birçok uygulama ve kod var, ancak genel amaçlı bir araç yok. Bunu bilmek yardımcı olur. Benim için ileriye yönelik yol, ogr2ogr'un GPX içe aktarması tarafından oluşturulan şema ile çalışan bazı PostGIS kodları yazmak. Bu şema hem parça için basit bir LineString hem de zaman boyutu için zaman damgalı noktalardan oluşan bir tablo içerir.
Nelson,

Delphi kodu da bir seçenek midir?

Google daha az önce burada tamlıktan bahsettiğim bir Parça API'sini duyurdu . İşe yarar görünüyor, ancak aradığımdan farklı bir yönde; kırıntıları ve geofences hakkında daha fazla.
Nelson

1
@Nelson Bu cevaba bir göz atın (oldukça mükemmel bir çevrimiçi sürüş editörü). Ride With GPS: stackoverflow.com/a/13084082/401828
heltonbiker

@Nelson Bu soru, neredeyse 4 yıl sonra, benim için hala çok güncel. Bu arada iyi bir çözüm buldunuz mu?
amball

Yanıtlar:


7

Pekala, biraz programlama dilinize bağlı, ama Java'da mineturer.org'u geliştirdim (site aslında GPX verilerini yüklemek, analiz etmek ve görüntülemek için bir sitedir).

Iv'e JAX-B'yi (http://jaxb.java.net/) GPX dosyalarını (GPX şemasına göre) ve JTS'yi (http://www.vividsolutions.com/jts/) + kendi kodunu okumak için kullandı. analiz.

Mineturer.org'un kaynak kodu, https://bitbucket.org/atlefren/gpsorganizer/ adresindeki MIT lisansı altında bulunur.

Sanırım kod sana en azından bazı işaretçiler verebilir?


Teşekkürler! Siteniz harika görünüyor (ve Norveççe okumamış olsanız bile Google Translate üzerinden oldukça kullanışlıdır). Tam olarak istediğim türden bir analiz yapıyorsunuz ve bu açık kaynaklı bir yardım. Python için muhtemelen JTS yerine GEOS kullanırdım; iyi ciltler var.
Nelson

2
eğer istersen ... oy ver !!
Stev_k

1
Burada sadece bir takip: Bu projeyi Python'a aktarmaya başladım, Shapely ve GeoAlchemy (ve Flask) kullanarak işe yaradı, fakat şu anda oldukça yavaş. Meraklı için github.com/atlefren/mineturer2 at
atlefren

3

GPS işlemeyi hedefleyen 2d / 3d matematik için bir C # -lib matematik yazdım: GPX ve TCX okuma, izleri filtreleme ve basitleştirme, izleri / bölümleri kümeleme ve 2d düzlemine dönüştürme.

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

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


Bu Nugets için bir açıklama veya dokümantasyon almak mümkün müdür?
Petr Krampl

NuGet pkg’ye Benioku.MD ekleyebilir miyim, göreceğim.
tma

Teşekkürler, depo erişilebilir değil. Öğelerin yanı sıra gpx dosyalarını <rte>ve <rtept>öğelerini de çözümlemek mümkün müdür <trk>?
Petr Krampl

1
Şu anda sadece Garmin parça uzantılarına sahip trrk-> trkseg-> trkpt'ı destekliyorum, ancak 2.3.0'da rtept ekledim, ancak şimdiye kadar doğrulama yapmadım.
tma

1
Nuget.org'daki her iki paket için de dokümantasyon eklendi.
tma

2

GPS Toolkit yardımcı olmalıdır. Araştırmacıları alt seviye kodlamadan kurtarmayı amaçlayan açık kaynaklı bir kütüphane ve uygulama paketidir.

Aşağıdaki işlevleri sağlar:

  • RINEX yardımcı programları
  • Konumlandırma
  • Artık analiz
  • İyonosferik modelleme
  • Sinyal İzleme Simülasyonu T
  • Temel dönüşümler
  • Gözlem veri toplama ve dönüştürme
  • Dosya karşılaştırma ve doğrulama.
  • Veri düzenleme
  • Özerk ve göreceli konumlandırma.

Cevap için teşekkürler! GPSTk büyüleyici görünüyor ama aradığımdan daha düşük bir seviyede. Ham GPS radyo sinyalleriyle çalışmak ve onlardan konum düzeltmeleri yapmak gibi görünüyor. Zaten tüketici GPS donanımımdan konum düzeltmelerim var ve düşük seviye uydu verilerine erişimim yok.
Nelson


0

Mükemmel soru! Son zamanlarda GPX verileriyle biraz çalışıyorum ve bulduğum en basit çözüm, iz puanlarınızı uzamsal bir db biçimine dönüştürmek ve ardından verileri gerektiği gibi özetlemek için görünümler (uzamsal ve tablo) oluşturmaktı. GPX verilerimi içe aktarmak için OGR kullanarak gereken sonuçları alamadım, bu yüzden GPX'in XML ağacı yapısını geçmek ve bunu db'ye (SpatiaLite) yüklemek için basit bir python betiği kullandım. Bu kesinlikle tekerleği yeniden icat etmekten kaçınmanıza yardımcı olmaz, ancak mevcut SQL ve mekansal SQL işlevlerini kullanarak izleri özetleyerek istenen sonuçları elde edebileceğimi öğrendim.


1
PostGIS LineStrings kullanırken gördüğüm en büyük dezavantajı, zaman damgası verileri içermemesidir. Onları kesinlikle ayrı bir şemada izleyebiliyorum, ancak PostGIS zamana dayalı hesaplamalar yapmama yardımcı olacak hiçbir şey yapmıyor. Bunun için herhangi bir püf noktan var mı?
Nelson

0

Kendi kullanımım için bu küçük yumuşak geliştiriyorum . Esas olarak görselleştirme içindir ve tüm ihtiyaçlarınızı desteklemez, ancak belki de yardımı olabilir!


Teşekkürler! Açık kaynak kodludur ve Java’dır, bu kesinlikle bir yardımdır.
Nelson

0

Asıl sorunuzu yanıtlamama riski altında :-), duymamış olabileceğiniz, listelediğiniz her şeyi yapan harika bir uygulama önereyim.

GPX'i görüntülemek, düzenlemek ve aktarmak için tek adresim.

Ve belki konu hakkında daha fazla, belki dotSpatial (.NET) Konumlandırma ad alanını kontrol etmeliyim: http://dotspatial.codeplex.com/wikipage?title=DotSpatial.Positioning

Saygılarımızla.


Teşekkürler! TopoFusion, Windows için harika bir uygulamadır, ancak gerçekten bir kütüphaneye ihtiyacım var. dotSpatial beşik için kullanışlı bir kod içeriyor. Mozilla Public License altında.
Nelson

0

Bir dil-nötr API için bazı özet özellikler istiyorsanız, GeoAPI var:

“GIS çözümlerinin geliştirilmesindeki gelişim topluluğu muazzam bir çaba sarf ediyor. GeoAPI projesi, OGC / ISO Standartlarından türetilmiş tarafsız, yalnızca arayüz içeren API'ler sağlayarak çoğaltmayı azaltmayı ve birlikte çalışabilirliği artırmayı hedefliyor.”

http://www.geoapi.org/

ve daha spesifik olarak Uygulama Standardı (PDF)


0

GPX parçanızı bu URL’ye yükleyin

İstediğiniz hizmetlerin çoğu, özellikle:

  • Pistte kat edilen mesafeyi hesaplayın
  • Ortalama hızı hesapla
  • Harekete karşı zamana karşı durağan süreyi hesaplayın (hız profilinde görünür)
  • Parçayı basitleştirin, sabit bölümleri ortadan kaldırın
  • GPS örnekleme hatasını düzeltin
  • Görselleştirme için KML / KMZ parçasını dönüştürür
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.