Кластеризація траєкторій (GPS-дані (x, y) точок) та видобуток даних


14

Ще один день в офісі для гармати людини.

У мене є 2 питання щодо аналізу даних GPS.

1) Вилучення траєкторій У мене величезна база даних із записаними GPS-координатами форми (latitude, longitude, date-time). Відповідно до значень дати послідовності записів, я намагаюся витягти всі траєкторії / контури, за якими рухається людина. Наприклад; скажімо M, час (x,y)пари постійно змінюються до часу N. Після того N, зміна в (x,y)парі зменшується, і в цей момент я зробити висновок про те , що шлях , пройдений від часу , MщобNможна назвати траєкторією. Це гідний підхід, який слід дотримуватися при вилученні траєкторій? Чи є якісь відомі підходи / методи / алгоритми, які ви можете запропонувати? Чи є якісь структури даних чи формати, які ви хочете запропонувати мені підтримувати ці пункти ефективно? Можливо, для кожної траєкторії було б корисно з'ясувати швидкість і прискорення?

2) Видобуток траєкторій Після того, як я дотримуюсь усіх траєкторій / пройдених шляхів, як я можу їх порівняти / згрупувати? Мені хотілося б знати, якщо початкова або кінцева точки схожі, то як порівнюють проміжні шляхи?

Як я порівнюю 2 шляхи / маршрути і роблю висновок, схожі вони чи ні. Крім того; як я кластую схожі шляхи разом?

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

Розробка відбуватиметься в Python, але всілякі пропозиції бібліотек вітаються.

Я відкриваю саме те питання /programming/4910510/comparing-clustering-trajectories-gps-data-of-xy-points-and-mining-the-data в StackOverflow. Думав, я отримаю більше відповідей тут ...


1
Хороша відповідь зверне увагу на те, чому ви робите цей аналіз. Якими видами діяльності займаються ваші "особи"? Що ви маєте на увазі під цим "траєкторією"? Чому вас цікавлять траєкторії? Що означає для траєкторій "схожі"? Ваші роз'яснення запропонують відповідні відповіді; без уточнення отримання відповідної відповіді буде справою удачі та здогадок.
whuber

Ну, мені цікаво з'ясувати розпорядок дня людини; куди вона їде щодня / щотижня / щомісяця та якими шляхами / маршрутами вона зазвичай прямує, коли їде туди? Якими стежками вона рідко прямує?
Мурат

База даних містить записані люди GPS GPS-точки протягом місяця з частотою 1-2 секунди. Я не знаю, що вони роблять; насправді саме це мені цікаво з’ясувати.
Мурат

1
@Murat Добре, це добре. Розберемося точніше. Коли людина пересувається по дому чи офісу, чи вважаєте ви це нерухомим чи ви також намагаєтесь відстежувати ці траєкторії? Якщо ви кажете, що дві траєкторії "схожі", ви маєте на увазі, що вони, схоже, йдуть однаковим шляхом між точками A і B, або вони обидва йдуть від точки A до точки B (можливо, різними маршрутами, але без зупинки), чи щось інше? До речі, чи є ваші дані повними, або, як можна було б очікувати, - є періоди, коли дані відсутні або відомо, що вони помилкові?
whuber

1
@ user5013 - Погляньте, що опублікувала Microsoft Research. Він "містить 17 621 траєкторії загальною відстані близько 1,2 млн кілометрів і загальною тривалістю 48 000+ годин". research.microsoft.com/en-us/downloads/…
Мурат

Відповіді:


2

Дві статті, які, можливо, вам будуть цікаві, оскільки вони мають подібні мотивації до ваших:

Межі передбачуваності в рухливості людини за: Хаомінг Сонг, Зехуй Ку, Ніколас Бламм, Альберт-Ласло Барабасі. Наука , Вип. 327, № 5968. (19 лютого 2010 р.), Стор 1018-1021.

Розуміння індивідуальних моделей мобільності людини за: Марта К. Гонсалес, Сезар А. Ідальго, Альберт-Ласло Барабасі. Природа , Вип. 453, № 7196. (05 червня 2008 р.), Стор 779-782.

Зауважте, що в двох дослідженнях використовуються однакові дані, подібні до ваших, але не на рівні точності в просторі чи в часі. Я не думаю, що я б описав те, що ви хочете знайти як траєкторію, але я не впевнений, що я б це назвав. Чому саме ви хочете кластеризувати початкові та кінцеві вузли ваших "траєкторій".


2

PySAL - бібліотека просторового аналізу Python може стати гарним початком - http://code.google.com/p/pysal/

Особливості розділу автокореляції:

Просторова автокореляція стосується невипадкової картини значень атрибутів для набору просторових одиниць. Це може мати дві загальні форми: позитивна автокореляція, яка відображає ціннісну схожість у просторі, і негативна автокореляція чи невідповідність значення у просторі. В будь-якому випадку автокореляція виникає, коли спостережувана просторова закономірність відрізняється від того, що можна було б очікувати за випадковим процесом, що працює в просторі.

http://pysal.org/1.2/users/tutorials/autocorrelation.html

Ви також можете розглянути можливість використання бібліотек R http://cran.r-project.org/web/views/Spatial.html для аналізу шаблону точок .

Інші пакети R:

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

Це також може спростити аналіз, якщо ви підключите точки до існуючих лінійних транспортних мереж (доріг / залізниць), доступних через OSM. Тоді ви можете символізувати на основі цих рядків і скільки людей ними користуються в конкретний час доби.


З огляду на контекст питання, що пропонує вивчити автокореляцію, не має жодного сенсу. Автокореляція яких атрибутів?
Енді Ш

Позначення часу для показань GPS можна використовувати, щоб побачити, які райони міста чи міста використовуються в різний час доби. Хоча не ясно, чи основне дослідження полягає у тому, щоб знайти, що люди роблять, або як люди туди потрапляють.
geographika

Також може бути проаналізований похідний набір точок із тісно пов’язаними точками для осіб, згрупованих та з заданим параметром "тривалість"
geographika

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

2

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

У минулому році я склав демонстрацію для Esri UC, працюючи з деякими людьми у Consevancy Snow Leopard, доступний за посиланням: http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=1F9F376F-1422-2418 -7FBC-C359E9644702

Він розглядає "місця годування" (скупчення) Снігових Леопардів на основі заданих критеріїв:

  • як групувалися ці точки (відстань одна від одної)
  • мінімальний поріг балів (для мого аналізу потрібні 4+ балів, оскільки показання проводилися кожні 12 годин)
  • бали повинні бути послідовними (легка частина аналізу, оскільки їх слід збирати у лінійному порядку)

Хоча він використовує інструменти Esri для аналізу відстаней, сценарій python всередині може допомогти вам з ідеєю кластеризації, як тільки ви дізнаєтеся, які точки знаходяться поруч. (тут використовується теорія графів: http://en.wikipedia.org/wiki/Graph_theory )

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

Аналіз грунтувався на концепціях: Knopff, KH, ARA Knopff, MB Warren і MS Boyce. 2009. Оцінка методів телеметрії глобальної системи позиціонування для оцінки параметрів хизування пуму. Журнал управління дикими тваринами73: 586-597.


2

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

  • Найближча відстань пари: просто визначте відстань двох траєкторій на відстань точкової пари, яка є найбільш близькою одна до одної. Траєкторії повинні складатися з однакової кількості точок.
  • Сума відстані пар: обчисліть відстані для кожної пари точок і додайте їх. Також працює лише в тому випадку, якщо траєкторії однакової довжини
  • Відстань динамічного викривлення в часі (DTW): Цей алгоритм був розроблений для обробки траєкторій різної кількості вимірюваних точок. Він працює на точкових парах і дозволяє точці однієї траєкторії використовувати декілька разів при обчисленні відстані пари, якщо інша рухається "занадто швидко". DTW ілюстрація(Зображення з Вікіпедії )
  • Найдовша спільна послідовність: як випливає з назви, вона визначає схожість двох траєкторій за довжиною найдовшої підтраєкторії, де вихідні шляхи рухаються близько один до одного.
  • Редагування відстані на реальній послідовності (EDR) та "Відстань відстані з реальною пенальті" (ERP) визначають схожість за кількістю операцій редагування (додавання, видалення або заміна), необхідних для перетворення однієї з траєкторій в іншу.

Якщо ви переймаєтесь цим полем, я настійно рекомендую книгу під назвою "Обчислення з просторовими траєкторіями" з ряду респіраторів Microsoft Asia.


0

Це може вам допомогти також:

Orellana D, Wachowicz M. Дослідження моделей припинення руху в рухливості пішоходів. Geogr Anal. 2011; 43 (3): 241–60. PubMed PMID: 22073410.

Також подивіться цей блог:

ideasonmovement.wordpress.com/

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