Yanlış GPS noktaları nasıl filtrelenir?


11

GPS noktaları veritabanım var. Parça yok, sadece puan var. Her 100 metrede bir değer hesaplamam gerekiyor, ancak bazen GPS gerçek GPS noktalarından çok uzak olan yanlış bir koordinat verdi ve küçük bir kare için değerleri hesaplamak yerine, gerçekten büyük bir dikdörtgen alan için hesaplamak zorundayım.

Yanlış GPS noktalarını filtrelemek için en iyi algoritma nedir?

Anlamanıza yardımcı olacak bir ekran görüntüsü yaptım:

! [Http://content.screencast.com/users/smirnoffs/folders/Jing/media/94624331-db6a-4171-bed9-e2183f953a1d/gps_error.png]


1
Bu tür aykırı değerleri tespit etmek için puan olarak noktalar arasındaki hareketli çerçevenin küçük bir katını (son 10 puan) ortalama bir mesafe kullanırdım.
lynxlynxlynx

Yönteminizi daha ayrıntılı olarak açıklayabilir misiniz? Ben bir puan veritabanı var, onlar herhangi bir şekilde sıralanmamış. Böylece mesafe 2 metre veya 500 metre olabilir. Ancak bazı noktalar çok uzak. Anlamanıza yardımcı olacak
smirnoffs

2
Anlıyorum. Bu durumda yaklaşımım o kadar iyi değil. Bunun yerine, her nokta için en yakın komşu noktayı hesaplayıp orada aykırı değerleri tıraş ederim.
lynxlynxlynx

2
@Lynx tarafından önerilen ikinci yaklaşım, özellikle aykırı değer tespit yöntemi iyi olduğunda örnek verilerle iyi sonuç verir. Seçenekler için istatistik sitemizde aykırı değerlerle ilgili soruları görün . Örneğin, stats.stackexchange.com/questions/213 adresinde birçok yaratıcı (ve geçerli) yaklaşım önerilmektedir .
whuber

Yanıtlar:


3

Anselin Local Moran I'i puanlara karşı çalıştırın ve -1.96'nın altında bir z skoru olan her şeyi atın. Bu, uzamsal aykırı değerleri bulmak için istatistiksel bir yöntemdir. Bunu yapmak için tüm noktaların uzamsal konumlarıyla ilgili bir değere sahip olduğundan emin olmalısınız.

Ancak, whuber'ın yorumundan sonra 10.1'deki araçları kontrol ederken, ArcGIS 10.1'i kullanırsanız, gruplama analiz aracının kullanılabilir olduğunu, ki bu gerçekten yapmak istediğiniz şeydir.

Ben - bir de - Delaunay Üçgenleme mekansal kısıtlaması ile bir grup analizi yapmak istersiniz. Burada birlikte gösterim, bağlantısız grupların sayısına eşit veya daha fazla sayıda bölümleme grubuna sahip olmanız gerektiğidir (aykırı değerlerden herhangi biri doğal komşularsa). Aksi takdirde, doğal komşuları olmayan aykırı değerler gruplandırma analizinden hiçbir grup oluşturmayacaktır.

Buna dayanarak, Delauney üçgenleme bir filtre algoritmasının kaynağı olabilir, ama henüz emin değilim.

Başka bir güncelleme: Partition.py, gruplama analiz aracını çalıştıran komut dosyası kazma sonra ben orada algoritma NoNeighbors bölümü ile birlikte kesilmiş gruplar için orada kullanmak mümkün olduğunu düşünüyorum, ancak ben o bölümünü kazma konusunda sorun yaşıyorum senaryo.


(-1) Ne olursa olsun, 40 noktada yaklaşık 1'i atması garanti edilir. Aykırı değer tespiti için böyle bir testin kullanılması önerilmez.
whuber

1
Saf mekansal aykırı değerler için test yapılırken bu doğru değildir - mekansal aykırı değerler vardır. Eğer mekansal aykırı değerler yoksa, o zaman bu sorunu yaşayacaksınız, ancak eğer varsa, sadece bu aykırı değerler böyle düşük bir z skoruna düşmelidir. Her şey noktaların mekansal dağılımına bağlıdır.
blord-castillo

1
Neredeyse: Aykırı değerlerin kendileri bir küme oluşturuyorsa, bunları tamamen algılayamayabilirsiniz. (Boş veya açık bir şekilde kötü koordinatların otomatik olarak (0,0) olarak eşlendiği bir durumu düşünün.) Yorumunuz aykırı değerlerin bulunmasının zor olabileceğini ve aykırı değerlerin doğasına bağlı olduğunu göstermektedir: bir veya daha fazla olabilir; ne kadar uzakta olabilirler; kümelenip kümelenemeyecekleri; Genel bir ilke olarak, dağılımsal varsayımlar yapan istatistikler (Yerel Moran I'in bu kullanımı gibi) sağlam, parametrik olmayan istatistikler kadar iyi çalışmaz.
whuber

2
Ben "iyi" GPS noktaları ve sınırlayıcı kutusunun uzak köşesinde üst üste üst üste eşit sayıda "kötü" GPS noktaları var belirli bir teorik sorun, düşünüyordum. "İyi" noktalar için ilgi alanı bilgisi olmadan, hangi set "iyi" ve hangi set "kötü" dışarı istatistiksel olarak ayırabilirsiniz sanmıyorum. Bu, ilgili alanların manuel olarak belirlenmesini gerektiren bir sorun olabilir.
blord-castillo

2
Bu doğrudur: bimodal çok değişkenli bir dağılım tanımladınız. Bu gibi durumlarda genellikle yapılan, ya bir karışım modelinin tahmini ya da bir küme algoritmasının uygulanmasıdır. Sonuç, karışım / küme bileşenlerini ayırmaktır, ancak bunların hiçbirini "aykırı değer" olarak atamadan: bu görev kullanıcıya düşmelidir.
whuber

3

Bu aykırı değerlerin bir listesini almanıza yardımcı olabilir:

SELECT p1.point_id 
FROM p1 AS points, p2 AS points
WHERE p1.point_id <> p2.point_id AND
ST_Distance(p1.geom, p2.geom) > 10000

Burada, point_id, puan tablonuzdaki birincil anahtar olacaktır. Mesafe fonksiyonu en yakın 10000 metreden büyük noktaları bulur. (Tabii ki, uygun herhangi bir değeri koyabilirsiniz)

Yukarıdakiler işe yararsa, DELETE ifadesine geçin, şunun gibi:

DELETE FROM points WHERE point_id IN (
-- SELECT as above
SELECT ....
);

1
1. Noktalar sıralanmaz. 2. Ne hata 10000 metreden daha düşük olacaksa? Mesela 150 metre?
smirnoffs

1
Belki anlamadım. Resminizden, neredeyse tüm noktaların bir alanda kümelendiğini ve çok küçük bir sayının çok uzakta olduğunu görüyorum. Sorun bu değil mi? Bir nokta diğerinden sadece 150 metre uzaktaysa, bunun bir aykırı değer olduğunu nereden biliyorsunuz?
Micha

1

İşi halletmenize yardımcı olacak daha pratik bir cevap vermeye çalışacağım. (algoritmalar hakkında bir tartışma arıyorsanız özür dileriz)

Senaryo 1: 'GPS noktalarından' bahsediyorsunuz, bu nedenle orijinal GPS yol noktalarına erişiminiz varsa iş çok daha kolay hale geliyor. Yüksek HDOP / VDOP veya görünümdeki uydu sayısına sahip olan ve başlangıçta hataya neden olan noktaları atabilirsiniz. Gpsbabel gibi ücretsiz bir araçta bu tür filtreler bulunur. http://www.gpsbabel.org/htmldoc-development/Data_Filters.html

Senaryo 2: Bir dizi noktanız var. Sorun daha sonra uzamsal aykırı değerleri saptar. Bu alanda çok fazla araştırma var ve bu konuda bir web aramasından birçok makale görüyorum. Verilerinizi temizlemek istiyorsanız, paylaştığınız ekran görüntüsüne göre sizin durumunuzda çalışması gereken GRASS v.outlier algoritmasını kullanabilirsiniz. http://grass.osgeo.org/gdp/html_grass63/v.outlier.html


Yorum için teşekkürler. Maalesef sadece koordinatlarým var. GPS sadece bir koordinat kaynağıydı ve orijinal GPS parkurlarına erişemiyorum.
smirnoffs

-2

Sanırım önemsiz verileriniz var. Gerçekçi olarak, bazı verilerin yanlış olduğunu önemsiyorsanız ve başka bir faktörü kullanarak her yanlış noktayı güvenilir bir şekilde tanımlayamazsanız, analizinizde bazı kötü veriler olacaktır.

Bu önemliyse, muhtemelen her şeyi atmayı, kök nedenini (örneğin, kötü GPS noktaları çoklu yoldan) bulmayı, bu kök nedenini (örneğin bir boğucu anten veya daha iyi bir GPS türü ekleme veya en iyi çözüm ne olursa olsun) düşünmelisiniz. ) ve ardından veri toplamayı yeniden yapın.

Bozuk veriler önemli değilse, sadece kullanın ve hataları yok sayın.

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.