У меня много точек данных.На самом деле, слишком много очков.Ни одна из точек не пересекается, но некоторые находятся довольно близко друг к другу.Я хотел бы иметь меньше точек, но не перемещая ни одно из мест.
Я бы хотел получить как можно больше точек, но только точки, которые находятся на расстоянии не менее ~ 5,7 км от любой другой точки.(если есть небольшое перекрытие, все в порядке - допустима ошибка 0,5 км)
Я пытался написать алгоритм на R , чтобы выполнить это, но есть немалонеожиданные результаты.У меня есть некоторые данные, которые составляют около 300 000 точек, покрывающих Землю.У меня есть другие данные, которые составляют несколько миллионов.Когда я выполняю алгоритм, я могу сегментировать данные по странам, что может уменьшить эти числа в диапазоне от 20000 до 100000.Если бы расположение точек не имело значения, я, вероятно, просто создал бы интерполированный растр и назвал бы его хорошим, но для этой проблемы мне нужно сохранить конкретное местоположение нетронутым.
Еще одна вещь, которую я пытался сделать, это сделатьрегулярная сетка 0,028 градусов и запустить NNJoin, чтобы найти ближайшую точку данных.Это сработало немного лучше, чем мой R-код, но результаты немного забавны, как вы можете себе представить.
Еще одна идея, которая у меня была, заключалась в том, чтобы буферизовать точки, подсчитать, сколько точек пересекается со слоем Buffered.Я все еще работаю над этим
Есть ли уже установленный метод для достижения этого результата?Мне удобно работать с PostGIS, QGIS, Python, R, если есть пакет или библиотека, которые могут это сделать.
tl; dr Как уменьшить плотные кластеры точек, но сохранить покрытие с уменьшенным наборомпункты?