Як відфільтрувати неправильні GPS-точки?


11

У мене база даних GPS-точок. Немає треків, лише окуляри. Мені потрібно обчислити деяке значення на кожні 100 метрів, але іноді GPS давав неправильні координати, які лежать далеко від реальних точок GPS, і замість обчислення значень для маленького квадрата я мушу обчислити його для дійсно великої прямокутної площі.

Який найкращий алгоритм фільтрації неправильних GPS-точок?

Я зробив скріншот, щоб допомогти зрозуміти:

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


1
Я б використав невеликий кратній середній відстань між точками, що рухається (скажімо, 10 останніх балів) як критерій для виявлення таких людей, що випадають.
lynxlynxlynx

Чи можете ви описати свій метод детальніше? У мене база даних точок, вони не сортуються ні в якому разі. Тож відстань могла скласти 2 метри або 500 метрів. Але деякі моменти дуже далеко. Я зробив скріншот, щоб допомогти вам зрозуміти
smirnoffs

2
Я бачу. У цьому випадку мій підхід не такий хороший. Я б замість цього обчислив найближчу сусідню точку для кожної точки, а потім обтрусив там залишки.
lynxlynxlynx

2
Другий підхід, запропонований @lynx, добре би співпрацював із зразковими даними, особливо коли метод виявлення зовнішнього вигляду є хорошим. Ознайомтеся з питаннями про людей, що виживають на нашому сайті статистики. Наприклад, багато креативних (і дійсних) підходів пропонується на сайті stats.stackexchange.com/questions/213 .
whuber

Відповіді:


3

Запустіть Ігор Анселіна Локального Морана проти очок і викиньте що-небудь із z-балом нижче -1,96. Це статистичний метод визначення місця просторів. Ви повинні переконатися, що для всіх точок є значення, пов'язане з їх просторовим положенням.

Але перевіряючи інструменти 10.1 після коментаря whuber, я розумію, що якщо ви використовуєте ArcGIS 10.1, доступний інструмент аналізу групування, що дійсно ви хочете зробити.

Я думаю, ви хочете зробити групуючий аналіз з просторовим обмеженням триангуляції Делоне. Проблема перешкод тут полягає в тому, що вам потрібно мати кількість груп розподілу, рівних або більших, ніж кількість відключених груп (якщо хтось із залишків є природними сусідами один для одного). Інакше люди, які не мають природних сусідів, не знайдуть групи з аналізу групування.

Виходячи з цього, я думаю, що триангуляція Делоні може бути джерелом алгоритму фільтрування, але я ще не впевнений.

Ще одне оновлення: Після копання у Partition.py, скрипт, який запускає інструмент аналізу групування, я думаю, що можна використовувати алгоритм для відключених груп у поєднанні з частиною NoNeighbors, хоча у мене виникають проблеми з викопанням цієї частини сценарій.


(-1) Це гарантовано викине близько 1 на 40 балів незалежно від того. Не доцільно використовувати будь-який подібний тест для виявлення зовнішньої форми.
whuber

1
Це не відповідає дійсності, коли існують тестування на чисті просторові залишки - якщо є просторові. Якщо просторових ексклюзивів не існує, то у вас виникне це питання, але якщо вони існують, то лише ті люди, що випадають, повинні впасти в такий низький z-бал. Все залежить від просторового розподілу точок.
blord-castillo

1
Майже: якщо самі люди, що випадають, утворюють кластер, ви не зможете їх виявити зовсім. (Розглянемо ситуацію, коли нульові або очевидно погані координати автоматично відображаються на (0,0).) Ваш коментар показує, що пошук випускників може бути складним і залежить від характеру людей, що мають місце: чи може бути один чи багато; як далеко вони можуть бути; чи можуть вони скупчуватися; і т. д. Як загальний принцип, статистика, яка робить припущення щодо розподілу (як, наприклад, використання I Local Moran's I), працює не так добре, як надійна непараметрична статистика.
whuber

2
Я розглядав конкретну теоретичну проблему, коли у вас є "хороші" GPS-точки і у вас рівна кількість "поганих" GPS-точок, розташованих один на одного в дальній кут обмежувального поля. Без знання області інтересу для "хороших" моментів, я не думаю, що ви можете статистично розділити, який набір "хороший", а який - "поганий". Це може бути проблемою, яка потребує ручного позначення цікавих сфер.
blord-castillo

2
Це правильно: ви описали бімодальний багатофакторний розподіл. Зазвичай у таких випадках робиться оцінка моделі суміші або застосування алгоритму кластера. Результатом є відокремлення сумішей / компонентів кластеру, але не позначаючи жодного з них як "екслідер": це обов'язок повинно покладатися на користувача.
whuber

3

Це може допомогти скласти список людей, що вижили:

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

Тут point_id буде основним ключем у вашій таблиці очок. Функція відстані знайде точки, де найближча більша за 10000 метрів. (Ви, звичайно, можете поставити будь-яке значення, відповідне)

Якщо вищезазначене працює, то перейдіть до пункту DELETE, наприклад:

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

1
1. Бали не сортуються. 2. Що робити, якщо похибка буде нижче 10000 метрів? Наприклад 150 метрів?
smirnoffs

1
Можливо, я не зрозумів. З вашого зображення я бачу, що майже всі точки згруповані в одній області, і дуже невелика кількість - дуже далеко. Хіба це не проблема? Якщо точка знаходиться в 150 метрах від іншої, то як ви знаєте, що це чужа людина?
Міха

1

Я спробую надати більш практичну відповідь, щоб допомогти вам виконати роботу. (вибачте, якщо шукаєте обговорення алгоритмів)

Сценарій 1: Ви згадуєте «GPS точки», тож якщо у вас є доступ до оригінальних точок GPS, робота стає набагато простішою. Ви можете викинути точки з високим HDOP / VDOP або кількістю супутників на огляді - що могло б спричинити помилку спочатку. Безкоштовний інструмент, як gpsbabel, має вбудовані такі фільтри. http://www.gpsbabel.org/htmldoc-development/Data_Filters.html

Сценарій 2: Ви просто маєте набір точок. Потім проблемою стає виявлення просторових видатків. У цій галузі є багато досліджень, і я бачу багато робіт на цю тему з веб-пошуку. Якщо ви хочете очистити свої дані, ви можете використовувати алгоритм vASS.lierlier GRASS, який повинен працювати у вашому випадку на основі екрана, яким ви поділилися. http://grass.osgeo.org/gdp/html_grass63/v.outlier.html


Дякуємо за коментар На жаль, у мене є лише координати. GPS був лише джерелом координат, і я не маю доступу до оригінальних треків GPS.
smirnoffs

-2

Я думаю, у вас є непотрібні дані. Реально, якщо ви дбаєте про те, що деякі дані неправильні, і ви не можете достовірно визначити кожну неправильну точку, використовуючи якийсь інший фактор, то у вашому аналізі з'являться погані дані.

Якщо це має значення, то, ймовірно, слід розглянути питання про викид все, з'ясувати першопричину (наприклад, погані точки GPS з багатостороннього шляху), вирішити цю першопричину (наприклад, додати антену задушення або краще тип GPS, або все, що найкраще виправити є), а потім повторно збирати дані.

Якщо погані дані не мають значення, просто використовуйте їх і ігноруйте помилки.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.