Как сгруппировать близлежащие местоположения широты и долготы, хранящиеся в SQL

Я пытаюсь проанализировать данные об авариях на велосипеде в Великобритании, чтобы найти статистические черные пятна. Вот пример данных с другого сайта.http://www.cycleinjury.co.uk/map

В настоящее время я использую SQLite для хранения 100 000 латов. Я хочу сгруппировать близлежащие места вместе. Эта задача называетсякластерный анализ.

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

Есть 3 проблемы, которые мне нужно преодолеть.

Спектакль - Как я могу найти ближайшие точки быстро. Должен ли я использоватьSQLite»реализация изR-Tree например?

Цепи - Как мне избежать цепей соседних точек?

плотность - Как принять во внимание плотность населения цикла? В Лондоне гораздо более высокая плотность велосипедистов, чем, скажем, в Бристоле, поэтому в Лондоне, похоже, больше шансов на помощь.

Я хотел бы избежатьцепь сценарии, подобные этому:

Вместо этого я хотел бы найти кластеры:

Скриншот Лондона (я нарисовал несколько кластеров) ...

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

Любые указатели были бы великолепны!

Ответы на вопрос(2)

Ваш ответ на вопрос