Мы испробовали два метода кластерного анализа:
... но не соответствует нашей спецификации, которая имеет эти 3 параметра:
- Набор точечных функций
- N точек в кластере
- Диапазон расстояний X, чтобы смотреть в
Например, «найди мне точки, где у каждого скопления есть 10 точек в пределах 50 метров» или что-то в этом роде.
ArcGIS 10 имеет два инструмента, которые я связал выше, но ни один из них, кажется, не обращается к N точкам в части кластера.
Могут ли наши требования соответствовать другим инструментам в ArcGIS? Является ли то, что я называю кластерным анализом, известным как определенный тип кластеризации?
У нас была версия этого в другом приложении, но я действительно хотел использовать инструменты в ArcGIS.
Ответы:
Попробуйте использовать инструмент Буфер для буферизации точек с допуском, распустите, чтобы создать отдельные полигоны для каждого кластера, а затем используйте объединение, чтобы подсчитать количество точек в кластере.
Затем используйте соотношение между площадью кластера и количеством точек, чтобы применить ваши параметры.
источник
Это может быть достигнуто с помощью ArcObjects без особых трудностей.
Создайте топологию карты и добавьте в нее класс точечных объектов. Установите кластерную терпимость, основанную на вашем расстоянии кластера (50), и постройте кеш .
Цикл по каждому узлу в maptopology.cache.nodes . Если ITopologyNode.Parents.Count> 10, делайте все, что вам нужно.
Я сделал нечто подобное для пользовательского слоя, который рисует каждую точку кластера с помощью символа, цвет которого зависит от количества точечных объектов в кластере. Производительность была приемлемой, поскольку функции кэшируются в памяти - восстановление кеша является дорогостоящей частью.
Аналогично коду, размещенному здесь .
источник
Попробуйте перейти к первой точке, затем создать рекурсивную функцию, которая проверяет точки на расстоянии и выполняет ту же самую операцию для той, которая ищет точки на расстоянии, выполняет ту же самую операцию для этой и т. Д.
Я только что решил похожую проблему, в которой я должен был найти набор точек, соответствующих определенному предложению; Я построил рекурсивную функцию, чтобы найти, были ли точки, соединенные в 8 ячейках (N, NW, W, SW, S, SE, E, NE), и вызвал ту же функцию для этой точки. Если возвращенный список содержал x точек, я собираю вокруг него многоугольник.
источник
У меня нет никакой информации об использовании ArcGIS, так как я использую только программное обеспечение OpenSource. Но я думаю, что это может быть достигнуто с Openlayers. Вот пример кластерной стратегии, который вы можете найти здесь: http://openlayers.org/dev/examples/strategy-cluster.html.
источник