GPS Programlama ve Geliştirmede Maceralar: Bir Jeo-uzaysal Eğitim
Yayınlanan: 2022-03-11Tüm bunlar, 10 yıldan uzun bir süre önce Zbevnica'ya yapılan bir yürüyüş gezisinde başladı. Yeni GPS'im yanımdaydı ve bir arkadaşımın Windows ME telefonuna bağlı bir GPS'i vardı. Yürüyüş harikaydı, ancak arabalarımıza döndüğümüzde, bir GPS'in 6,2 km yürüdüğümüzü iddia ederken diğerinin 6,7 km bildirdiğini görünce şaşırdık. Biri yükseklik kazancımızı (yani, yürüyüşümüzün tüm yokuş yukarı kısımlarının toplamı) 300m olduğunu iddia ederken, diğeri 500m olarak bildirdi.
Bir programcı (ve nihayetinde bir GIS programcısı) olarak, sorun hemen ilgimi çekti. Kendi kendime, "Bunu basit bir senaryo ile düzeltmek bu kadar zor olmamalı " dedim. Sonuçta, GPS izleri sadece (enlem, boylam, yükseklik) şeklindeki bir demet listesidir, değil mi?
Pek değil.
Böylece GPS izleri, izleme hataları ve daha genel olarak GIS programlamanın büyüleyici dünyasına yaptığım gezi başladı.
Jeo-uzamsal Bilgi Sistemleri (CBS), harita projeksiyonlarını ve jeodezik verileri), raste ve vekto veri işlemeyi ve uzaktan algılamayı kapsayan devasa ve karmaşık bir alandır. Bu alana kapsamlı bir giriş, bu makalenin kapsamının çok ötesinde olacaktır. Ve belirli bir soruna odaklanmak çoğu zaman kişinin kendini yeni bir alana tanıtmanın yararlı bir yolu olabileceğinden, karşılaştığım birkaç spesifik CBS sorununu ve bazı olası çözümleri sunacağım; yani:
- GPS izleme hatalarını tanıma, anlama ve programlı olarak düzeltme
- GPS izlerinden ek yararlı bilgiler nasıl hesaplanır ve türetilir
Yeni başlayanlar için, GPS izleri yalnızca bir dizi (enlem, boylam, yükseklik) demeti değildir. GPS özellikli birçok cihaz aynı zamanda zaman, kalp atış hızı vb. gibi meta veriler de sağlar. Hatta bazı GPS cihazları, verilerin ne kadar doğru olduğuna dair bilgi bile sağlar; aka, "hassas seyreltme". Ancak ne yazık ki, çoğu GPS cihazı - özellikle de piyasaya hakim olan alt uç cihazlar - bu bilgiyi sağlamayacaktır ve cihazın doğruluğunu kendi başımıza çıkarma (ve ideal olarak, mümkün olduğunda buna göre düzeltme) zorluğuyla karşı karşıyayız. ).
Genellikle düşük kaliteli GPS verilerine sahip düşük kaliteli GPS cihazlarını (çoğu akıllı telefon gibi) algılamak için olası bir algoritma ile başlayalım.
Yükseklik hataları ve özdeyişler
Dünyanın belirli bölgelerinde yaşıyorsanız, akıllı telefonunuzla parkurları kaydederken GPS yükseklik doğruluğu hakkında garip bir şey fark etmiş olabilirsiniz. Yükseltileri kontrol ettiğinizde, bunlar sürekli olarak doğru yükseklikten daha yüksek veya daha düşük (sabit bir değerle) olarak kaydedilir. Örneğin, Višnjan'da (Hırvatistan) yaşıyorum ve Android cihazım bana gerçek rakımın yaklaşık 35-40 metre üzerinde olduğumu söylüyor.
Örneğin, birkaç ay önce yaptığım kısa bir yürüyüşten bir GPS yükseklik grafiği:
Burada dikkat edilmesi gereken iki şey var.
İlk olarak, kaydedilen GPS verilerinin ilk bölümündeki “tepe” tamamen cihaz tarafından üretildi . Grafik, yürüyüşümüzün en yüksek noktasının başlangıçtan sadece birkaç yüz metre sonra olduğunu gösteriyor gibi görünse de, gerçekte 4 km sonraydı.
İkincisi, belki de daha önemli olan (ve grafikte görünmeyen ) tüm grafiğin hatalı olmasıdır . İrtifa değerleri, bu makalede daha ayrıntılı olarak tartışacağımız gibi, gerçekte olduğundan yaklaşık 30-40 metre daha yüksek olarak tutarlı bir şekilde rapor edildi.
Bunlar ucuz GPS cihazlarıyla olabilecek şeyler. Ve pistte bu hatalar olduğunu tespit edebildiğimizde, cihazın muhtemelen düşük kaliteli bir GPS olduğu sonucuna varabiliriz, bu nedenle bu tür cihazlarda yaygın olan başka hatalara da sahip olması beklenebilir – sadece yükseklik hataları değil – bu tür cihazlarda yaygın.
Başlangıç yükseltme hataları
GPS cihazlarının rakımı belirlemek için kullandığı esasen iki teknik vardır: “GPS irtifası” (GPS uydu sistemi tarafından cihaza bildirildiği gibi) ve “barometrik irtifa” (cihaz tarafından barometrik basınç okumalarına göre hesaplanır). İkisi de mükemmel değil.
GPS yükseklik değerlerinin birçok küçük hatası olabilir (tipik olarak +/- 10m aralığında), bu daha sonra kümülatif yükseklik kazancını hesaplamaya karar verirsek özellikle sorunlu olabilir. Barometrik irtifa ise sadece irtifaya değil, aynı zamanda kendi yanlışlıklarını ortaya çıkarabilecek hava koşullarına da duyarlıdır.
Bu nedenle bazı cihazlar, yüksekliği kaydetmek için barometrik okumaları kullanan ancak bu değerleri (yeniden) kalibre etmeye, hava (basınç) değişikliklerini vb. hesaba katmaya yardımcı olmak için GPS okumalarını kullanan hibrit bir yaklaşım kullanır. Bu tür cihazlarla, rotayı başlatırken, barometrik yükseklik tamamen yanlış olabilir, ancak daha sonra daha fazla GPS uydu verisi ile yeniden kalibre edildiğinde, yükseklik verileri daha güvenilir hale gelir. Bu nedenle, bu tür cihazlarda daha önce yükseklik grafiğimizde gözlemlediğimiz "sahte tepe" başlatma hatası türüyle karşılaşmak nadir değildir.
Devam eden GPS yükseklik hataları
Rakım raporlamasındaki tutarlı hatayı açıklamak için ilkokul coğrafyamıza dönmemiz gerekiyor. Coğrafya öğretmenleri genellikle Dünya'nın bir küre değil, bir elipsoid olduğunu açıklar. Bu aslında kesinlikle doğru olsaydı, yüksekliği matematiksel olarak hesaplamak kolay olurdu. Ama değil. Dünya düzensizdir; gerçekte, mükemmel bir elipsoidden çok bir elipsoidi andıran bir patates gibidir, bu da CBS geliştirmesi için dünyadaki hemen hemen her nokta için ayrıntılı bir irtifa veri setine ihtiyacınız olduğu anlamına gelir. Jeodezide, bu referans elipsoidi (aka veri), Dünya'nın "daha doğru" figürü olan jeoide yaklaşan matematiksel olarak tanımlanmış bir yüzeydir.
Ayrıca, bu verilerin bile Dünya yüzeyinin gerçek şeklinin yalnızca yaklaşık değerleri olduğunu kabul etmek önemlidir. Bazıları dünyanın belirli bölgelerinde daha iyi çalışır, bazıları ise diğerlerinde daha iyi çalışır. Örnek olarak, aşağıdaki görüntü (Ruby kitaplığım kullanılarak oluşturulmuştur), Dünya'nın en yaygın olarak kullanılan elipsoid modellerinden (WGS84 verisi) birinden nasıl farklı olduğunu gösterir. Siyah kısımlar, yukarıdaki Dünya'nın kısımlarını temsil eder ve beyaz, Dünya'nın aşağıdaki kısımlarını temsil eder, ideal elipsoid (kıta ve ada konturları kırmızı ile gösterilmiştir).
Hindistan'ın WGS84 elipsoidinin altında olduğunu ve güney kısmının mutlak minimum (neredeyse -100 metre!) olduğunu ve Avrupa'nın bunun üzerinde olduğunu görebilirsiniz.
Düşük kaliteli GPS cihazları böyle bir veri kullanmadığından, gerçekten mükemmel bir elipsoid varsayarak sadece yüksekliği hesaplıyorlar. Bu nedenle, tutarlı yanlışlıkları.
GPS yükseklik hatalarını algılama ve düzeltme
GPS uygulaması geliştirmede, izimizi kaydeden bir cihazın bu tür hatalara sahip olduğunu tespit etmek, bazen “jeoid dalgalanmalar” veri seti olarak da adlandırılan Dünya Yerçekimi Modeli EGM2008 veri seti kullanılarak yapılabilir. EGM2008 ile gerçek dünya yüzeyi ile ideal elipsoid arasındaki farkı yaklaşık olarak hesaplayabiliriz.
Ancak GPS izimizde bu hatanın olup olmadığını bilmek için bir şeye daha ihtiyacımız var – gerçek yükseklik. Bu amaç için yardımcı olabilecek bir kamu veritabanı, Mekik Radar Topografya Misyonudur (SRTM). SRTM, ABD için kabaca her 30 m'de bir (ekvatorda) ve dünyanın geri kalanı için her 90 m'de bir çözünürlükte yükseklik değerleri sağlayan raster tabanlı bir veritabanıdır. Örneğin, yukarıdaki izdeki noktalar için SRTM değerleri hesaplanırken farklı bir grafik (mavi çizgi) ortaya çıkıyor:
Buradaki küçük bir sıkıntı, grafiğin pürüzlü kenarlarıdır, ancak bu kolayca düzeltilebilir. Düzgünleştirmeyle (varsa) çok az hassasiyet kaybettiğimizi unutmayın, çünkü SRTM'nin kendisi yalnızca, her durumda aralarına enterpolasyon yapmamız gereken, eşit uzaklıkta konumlarda ayrık noktalar sağlar. Yumuşatılmış SRTM verilerini temsil eden bir kırmızı çizgi katmanına sahip önceki grafiğin bir sürümü burada:
Tüm bunlar, tesadüfen, GPS Python kitaplıklarımı kullanarak kolayca yapılabilir:
- srtm.py: Shuttle Radar Topography Mission (SRTM) yükseklik verileri için bir piton ayrıştırıcı
- gpxpy: GPX dosyalarını ayrıştırmak ve işlemek için basit bir python kitaplığı (GPX, GPS Değişim Biçimi, GPS verileri için hafif bir XML veri biçimidir)
Ruby kullanıcıları için ayrıca SRTM ve EGM2008 dalgalanmaları için Geoelevations.rb ayrıştırıcı kitaplığım da var.
Bu anormallikleri tespit ettikten sonra, birlikte çalıştığımız yazılımın türüne bağlı olarak, (a) hataları kendimiz otomatik olarak düzeltebiliriz veya (b) kullanıcıya yükseklik verilerinde yanlışlıklar tespit edildiğini bildirebiliriz.
Ayrıca, bu GPS yükseklik hatalarını programlı olarak düzeltmek için kullanılabilecek farklı algoritmalar olduğundan, kullanıcıya hangi algoritmayı kullanacağını seçme seçeneği vermek isteyebiliriz (örneğin, kullanıcı sadece düzleştirilmiş SRTM verilerini kullanmamızı istiyor mu? "olduğu gibi" veya kullanıcı, cihaz tarafından bildirilen yükselmeleri düzeltmeye yardımcı olmak için SRTM verilerini kullanmamızı istiyor mu?)
İzi yumuşatma ve aykırı değerleri kaldırma
Bir futbolcu bir GPS cihazı takar ve bir maçı kaydederse, ortaya çıkan parkur bir karmaşa olur. Oyun alanı, çok sayıda keskin dönüşler, hızlanmalar ve yavaşlamalardan oluşan bir parkurla yoğun bir şekilde doldurulacaktır.
Neyse ki, insanların GPS kullandığı çoğu durumda bu aynı kalıba sahip olmayacak - GPS iz çizgileri (ve hızlanmalar) nispeten düzgün olacaktır. Bu gibi durumlarda, izimizdeki düzensiz noktaların hata kaynaklı olduğu varsayılabilir ve bu nedenle bu tür aykırı değerler bir yumuşatma işleviyle makul bir şekilde kaldırılabilir.
Bir CBS geliştiricisi olarak, yumuşatma en yaygın olarak noktalar arasında yineleme yaparak ve komşu koordinatların değerlerine dayalı olarak koordinatları değiştirerek elde edilir. Örneğin, aşağıdaki gibi bir algoritma ile her enlem ve boylamı değiştirebiliriz:
points[n].latitude = points[n-1].latitude * 0.3 + points[n].latitude * .4 + points[n+1].latitude * .3 points[n].longitude = points[n-1].longitude * 0.3 + points[n].longitude * .4 + points[n+1].longitude * .3Katsayı ne kadar büyükse, mevcut noktanın değiştirilmiş konumuna karşılık gelen komşu noktanın etkisi o kadar büyük olur. Bu örnekte kullandığım katsayılar (0.3, 0.4, 0.3) biraz keyfidir, ancak çoğu durumda toplamlarının 1.0'a eşit olmasını isteyeceksiniz. (Örneğin, daha karmaşık bir yaklaşım, noktalar arasındaki mesafeyi kullanmak ve ardından nokta ne kadar yakınsa, karşılık gelen katsayı o kadar büyük olur.)

İşte çok sayıda rastgele hata içeren bir parça örneği:
Parkurun yolu nasıl iyi takip etmediğine, çok sayıda keskin ve pürüzlü dönüşlere sahip olduğuna ve bazen de beklenen yoldan tamamen saptığına dikkat edin.
Birkaç "yumuşatma" yinelemesinden sonra, aynı iz şuna dönüştürülür:
Bu çok daha iyi olsa da, kuşkusuz hala kusurlu. Pistlerin hala yoldan saptığı yerler (özellikle yolun ortasına yakın) olduğunu unutmayın.
Deneyebileceğiniz başka şeyler de var. Belirli bölgelerde ve belirli GPS uygulamaları için, doğru yolu tahmin etmeye çalışmak için OpenStreetMap (OSM) verilerini kullanabilir ve ardından noktaları bu yeni çizgiye "yakalayabilirsiniz". Bu genellikle yararlı olsa da, OSM verilerinin iki paralel çizgi (örneğin bir otoyol ve yakındaki yol) veya birçok yakın yol içerdiği durumlarda olduğu gibi kusurlu da olabilir.
Bu gibi durumlarda olası bir çözüm, bu makalenin ilerleyen bölümlerinde tartışılan tekniklerden bazılarını kullanarak aktivitenin türünü tespit etmeye çalışmak olabilir. Örneğin, parkurun bir yürüyüş parkuru olduğu sonucuna varabilirsek ve bir otoyola veya yakındaki bir yola geçme seçeneğine sahipsek, yürüyüşün otoban değil, yol boyunca olduğunu güvenle varsayabiliriz.
Ayrıca, bu örnek yüzey koordinatlarının (yani boylam/enlem) düzgünleştirilmesini gösterirken, düzleştirmenin yükseklik veya zamansal verilerdeki veya hatta kalp atış hızı ve bisiklet kadans verilerindeki sapmaları ortadan kaldırmak için eşit derecede geçerli bir teknik olabileceğini unutmayın.
Ek faydaların örnekleri ve yumuşatma kullanımları şunları içerebilir:
- Toplam yükseklik kazancının hesaplanması. Bir parkurdaki toplam yükseklik kazancını hesaplamak için, yokuş yukarı tüm küçük "sıçrayışları" toplamak yeterli değildir, çünkü bunlar genellikle küçük hatalar içerir. Toplamı yapmadan önce yüksekliği yumuşatmak genellikle bu sorunu hafifletmeye yardımcı olabilir.
- Aykırı değer kaldırma. Pürüzsüzleştirmeden sonra, raydan çok uzakta olan noktalar daha kolay tespit edilebilir. Bunların genellikle aykırı değerler olduğu varsayılabilir ve kullanıcıdan bunların kaldırılması gerekip gerekmediğini sorması istenebilir.
Bu algoritmanın yetersiz kaldığı bir tür sorun vardır: bazı durumlarda GPS düzgün bir yol kaydeder, ancak yol bir yönde sabit bir farkla "kaydırılır". Bu gibi durumlarda, yumuşatma çizgiyi daha da düzleştirebilir ancak bu kaydırma hatasını düzeltmez.
Tanımladığımız basit düzleştirme tekniğiyle ilgili daha az belirgin, ancak önemli bir sorun da, dönüşümün yoldaki tüm (veya neredeyse tüm) noktaları, hatta hatalı olmayabilecekleri bile değiştirmesidir. Bu daha basit yaklaşım, ortalama bir GPS kullanıcısı için makul bir çözüm olma eğiliminde olsa da, CBS programlamasında kesinlikle daha karmaşık yumuşatma algoritmaları kullanılabilir. Bazı durumlarda, kullanıcıya, cihaza ve uygulamaya bağlı olarak herhangi bir yumuşatma işlemi gerçekleştirmeden aykırı değerleri basitçe kaldırmak daha iyi olabilir.
Maksimum hızı algılama
Rotadaki tüm noktaların koordinatlarına ve zaman damgalarına sahipsek, bir parkurun maksimum hızını tespit etmek oldukça basittir. Sadece noktalar arasındaki hızları hesaplayın ve en yüksek değeri bulun. Basit görünüyor.
Ancak, düşük kaliteli GPS cihazlarıyla uğraştığımızı ve hesaplamamız için önemli sonuçları olabilecek verilere tam olarak güvenmiyoruz. Bir cihaz her 5 metrede bir konum kaydediyorsa ve bir noktada noktayı 10 metre kaydırarak hata yapıyorsa, parkurun o kısmı olduğundan 3 kat daha hızlı görünebilir!
CBS geliştirme dünyasında yaygın bir yaklaşım, noktalar arasındaki tüm hızları çıkarmak ve ardından ortadan kaldırılan %5'in hataların çoğunluğunu temsil ettiğini umarak en üstteki %5'i kaldırmaktır (yani, 95. yüzdelik dilimini kullanın). Ancak bu kuşkusuz bilimsel değildir ve doğru sonuçları garanti etmez. Bu teknikle yaptığım deneylerde, yüzdelikler için farklı değerler denedim ve bazılarının bir GPS cihazı için iyi çalıştığını, bazılarının başkaları için iyi çalıştığını gördüm. Bazıları yürüyüş için, bazıları ise bisiklet için iyi çalışır. Ancak çoğu durumda, sonuçlar bana doğru gelmedi.
Birçok algoritmayı denedikten sonra benim için işe yarayan şey basitti: Uç noktaları ortadan kaldırmak için yalnızca hıza göre değil, aynı zamanda mesafeye göre de aşağıdaki gibi başka bir filtre eklemek:
- Noktaları komşular arasındaki mesafeye göre sıralayın ve ilk %5'i kaldırın.
- (Opsiyonel:) Parkuru düzleştirin (yatay ve/veya dikey olarak).
- Noktaları komşular arasında hıza göre sıralayın ve ilk %5'i kaldırın.
Tecrübelerime göre, bu algoritma, rastgele hatalara sahip ucuz GPS cihazlarından gelen izler için bile oldukça güvenilir sonuçlar veriyor.
Aktivite türü çıkarımı
Çoğu durumda, aktivite türünü belirlemek için ortalama hız yeterlidir. Örneğin, ortalama hız 5kmh ise, muhtemelen bir yürüyüş/yürüyüş parkurudur, oysa ortalama hız 30kmh ise, muhtemelen bir bisiklet parkurudur, vb.
Ancak ortalama hız 12kmh ise, kullanıcının dağ bisikleti mi yoksa koşu mu olduğundan emin olamazsınız. Bu gibi durumlarda, maksimum hız bazen iki tür faaliyet arasında ayrım yapılmasına yardımcı olabilir. Spesifik olarak, koşucuların nadiren ortalamanın iki katından daha fazla hıza ulaştığı gerçeğini kullanabiliriz, ancak bisikletçiler bunu düzenli olarak yaparlar (örneğin, çok zorlu olmayan bir yolda yokuş aşağı inerken).
Buna göre, ortalama hızı 12kmh ve maksimum hızı 18kmh olan bir parkur muhtemelen koşarken kaydedilirken, ortalama hızı 12kmh ve maksimum hızı 30kmh olan bir parkur muhtemelen dağ bisikleti sırasında kaydedilmiştir. (Elbette bunun güvenilir bir şekilde çalışması için hesapladığımız maksimum hızımızın doğru olduğundan emin olmalıyız.)
Görünür gökyüzü yüzdesi: GPS hata tespiti için akıllı bir proxy
Her bir GPS ölçümünün (yani enlem, boylam ve yükseklik) kesinliği, büyük ölçüde kayıt anında görülebilen uyduların sayısına bağlıdır. Dolayısıyla, her kayıt sırasında kaç tane uydunun "görünümde" olduğunu bir şekilde belirleyebilirsek, bunu o kaydın doğruluğunu tahmin etmenin bir yolu olarak kullanabiliriz. Örneğin, gerekli tüm GPS uydularının görüş alanında olduğunu bir şekilde bilseydik, ilgili GPS verileri için yüksek derecede doğruluk olduğunu varsayabiliriz. Tersine, eğer bir şekilde hiçbir GPS uydusunun görüş alanında olmadığını bilseydik, verilerin hataya açık olduğunu varsayabiliriz.
Ancak çok heyecanlanmadan önce, böyle bir CBS problemini çözmeye çalışmanın karmaşıklığını düşünün. Her şeyden önce, cihazınızın hangi GPS uydu sistemleriyle iletişim kurabildiğini bilmeniz gerekir. Orijinal ABD merkezli Küresel Konumlandırma Sistemi, Avrupa Gallileo ve Rus GLONASS sistemi var. Bazı cihazlar bu uydu türlerinin tümü ile çalışır, ancak çoğu çalışmaz. Ve birçok cihaz hangi sistemleri kullandıklarını bile bildirmez.
Ancak, bu karmaşıklığı aşmanın ve görüntüdeki uydu sayısının kaba bir tahminini elde etmenin akıllıca bir yolu var: görünür uyduların sayısı için bir vekil olarak görünür gökyüzünün yüzdesini kullanın . Daha az görünür gökyüzü, GPS'imizin daha az uydu tarafından "görebileceği" (veya görülebileceği) anlamına gelir. Fakat Dünya üzerindeki herhangi bir noktada görünen gökyüzünün yüzdesini nasıl hesaplayabiliriz? Çözüm aslında oldukça basit: Daha önce tartışılan SRTM verilerini kullanarak çevremizdeki ufuk çizgisini hesaplayabiliriz.
Örneğin, SRTM kullanılarak hesaplandığı şekliyle Triglav (Slovenya'nın en yüksek zirvesi) körüğünün altındaki vadideyseniz bu ufuktur:
(İlgilenenler için bu resmi oluşturmak için kodum burada bulunabilir.)
Bu görüntü, temel olarak, merkezi bir noktadan görüldüğü gibi eşit mesafedeki yükseklik grafiklerinin katmanlarından oluşur. Mavi alan ne kadar koyu olursa, yükseklik katmanı o kadar uzak olur; mavi alan ne kadar açıksa, yükseklik katmanı o kadar yakın olur. Çizilen en yüksek noktalar ufuk çizgisini temsil eder. Gökyüzünde bu çizginin altında bir GPS uydusu varsa, cihazımız muhtemelen onu göremez (veya görülemez). (Görüntü düzleştirilmiş dikdörtgen olarak çizilmesine rağmen, gerçekte ufkun altındaki alanı doğru bir şekilde hesaplamak için bazı temel küresel geometri bilgisine ihtiyacınız olacağını unutmayın.)
Akılda tutulması gereken başka bir şey de, bunun GPS yükseklik hatalarını tespit etmek için gümüş bir kurşun olmadığıdır. Her şeyden önce, Dünya'nın çoğu kısmı dağlık değildir ve öyle olsalar bile, yükseltileri abartmak psikolojimizdedir; Görünür gökyüzünün gerçek yüzdesi, yerleşim bölgelerinin büyük çoğunluğunda %75'ten fazladır . Ancak yine de bu yöntem, derin bir kanyonda olmaktan (zayıf GPS alımı olan) bir dağ sırtında olmaya (uydu alımının muhtemelen çok daha iyi olduğu) dağ yürüyüşü gibi belirli durumlarda yardımcı olabilir. Bu yöntem, izinde kaç tane hata olduğunun mutlak bir ölçüsü olmasa da, parkurunuzun hangi bölümlerinin diğerlerinden daha fazla hataya açık olabileceğinin yararlı bir göstergesi olabilir.
Sarmak
Düşük kaliteli GPS cihazlarında beklenebilecek daha yaygın GPS izleme hatalarından bazılarını tartıştık. Bunlara neyin sebep olduğuna dair bir anlayış ve bunları düzeltmek için bazı CBS programlama teknikleri sağladık.
Bazı durumlarda, izi yüksek derecede güvenle düzeltebiliriz. Diğer durumlarda, en azından kullanıcıyı parkurun şüpheli görünen bölümleri konusunda uyarabiliriz. Emin olmadığımız durumlarda, kullanıcının havadan görüntüler ve haritalar yardımıyla pisti kendisinin düzeltmesini sağlama seçeneği her zaman vardır. Olasılıksal tahminlerimiz, yolun daha yüksek hata olasılığı tespit ettiğimiz kısımlarını vurgulamaya yardımcı olabilir.
Çoğu durumda, özetlediğimiz teknikler tatmin edici bir “%80 çözüm” olabilir ve düşük kaliteli GPS cihazlarının kullanıcılarına GPS izlerinin doğruluğunda makul düzeyde otomatik iyileştirme sağlar.
