Определите неизвестное количество реальных мест из отчетов на основе GPS

9

Я работаю над некоторым программным обеспечением, которое должно определять местоположение в реальном мире (например, скоростные камеры) из нескольких отчетов на основе GPS . Пользователь будет управлять автомобилем при сообщении местоположения, поэтому отчеты очень неточные. Чтобы решить эту проблему, я должен сгруппировать отчеты о том же месте и вычислить среднее.

Мой вопрос о том, как кластеризовать эти отчеты . Я читал об алгоритмах ожидания-максимизации и кластеризации k-средних , но, как я понял, мне нужно заранее определить количество реальных мест.

Существуют ли другие алгоритмы, которым не нужно точное количество реальных местоположений, но вместо этого используются некоторые граничные условия (например, минимальное расстояние)?

Отчет содержит долготу , широту и точность (в метрах). Нет имени или чего-либо еще, что можно было бы использовать для идентификации дубликатов.

Еще одно препятствие может заключаться в том, что для реального местоположения будет только один отчет. Это мешает отличить выбросы от достоверных данных.

Кристиан Штремпфер
источник
1
Я не уверен, что вы имеете в виду, когда говорите «... как я понял, мне нужно заранее определить количество реальных местоположений ...» Если предположить, что я вас правильно понял, в алгоритмах нет ничего, что по своей сути требует это. Возможно, вы планируете увеличить количество компонентов кластера в зависимости от количества отчетов?
Пэт
1
2-й вопрос :). Если ваши отчеты поступают от кого-то, кто за рулем, то, возможно, будут существенные изменения в положении между ними. Приходят ли отчеты с отметкой времени, сообщающей вам, когда они были взяты?
Пэт
2
Привет, Пат. Я говорю о пробках или скоростных камерах, чтобы было понятнее. 1. «К» в кластеризации k-средних означает количество кластеров. В моем случае у меня был бы один кластер для каждого местоположения, тогда как я не знаю, сколько там разных мест. 2. Да, они также включают метку времени. Но я не понимаю, почему это должно быть важно, потому что меня волнует только положение.
Кристиан Штремпфер
1
1. Ааа, понятно. Таким образом, у вас есть неизвестное количество местоположений, и каждое местоположение генерирует один или несколько отчетов. Однако все, что вы видите, - это поток отчетов. Вы хотите определить, сколько мест и их местоположение, основываясь на наблюдаемых отчетах. Я понял? 2. Я беспокоюсь о временных метках, потому что вы говорите, что пользователь будет вести машину, когда он сообщит о своем отчете. Таким образом, если отчеты не поступают в очень быстрой последовательности или если скорость очень низкая (возможно, если это пробка), то одно место будет выглядеть как рваная линия отчетов по дороге. Временные метки могут помочь здесь
Пэт
1
1. Да, у вас это есть. 2. Это ручная задача, поэтому о местоположении следует сообщать только один раз на пользователя за одну поездку. Но вы правы, мне приходится обрабатывать дубликаты, когда пользователь случайно щелкает два раза, и отчеты будут неточными при быстрой езде. Вот почему я упомянул краевое состояние минимального расстояния между локациями. Давайте проигнорируем пробки, которые могут распространяться на несколько миль, и предположим, что место очень маленькое.
Кристиан Штремпфер

Ответы:

1

Я нашел программное обеспечение, которое может вам помочь. Похоже, что у кого-то была та же проблема, что и у вас, и они дали ему решение на этом форуме , поэтому вам нужно будет использовать ArcGIS, но если вы ищете алгоритм, он предлагает эту статью . Я думаю, что документ достаточно подробный, чтобы быть хорошим началом для вашего алгоритма.

eyanquenb
источник
2
Поскольку вся информация, содержащаяся в этом ответе, содержится в его ссылках, а ссылки в конечном итоге гниют, пожалуйста, по крайней мере, суммируйте то, что рекомендуют сообщения форума и статья.
whuber