Найти кластеры одного набора точек вокруг другого набора точек из другого слоя?


10

Я хочу видеть, есть ли кластеризация определенного типа зданий (x) вокруг зданий другого типа (y).

Два файла точек находятся в разных слоях.

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

Ответы:


9

Ни один из готовых инструментов в ArcGIS (или любой другой ГИС, AFAIK) не будет работать правильно.

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

В качестве примера того, как действовать, вы можете измерить кластеризацию с точки зрения типичных расстояний между зданиями типа x и ближайшим зданием типа y . Это простой расчет: просто представьте оба набора зданий отдельными точечными слоями и выполните пространственное соединение Y с X. Таблица атрибутов, в которой по-прежнему есть одна запись для каждого здания типа x , теперь будет включать расстояние до ближайшего y . Вы можете использовать среднее расстояние в качестве меры.

Проверить, может ли это быть результатом случайности, сложнее. Одно из правдоподобных объяснений этой ситуации заключается в том, что раннее присутствие зданий типа y способствовало развитию зданий типа x относительно близко к y . В противном случае мы могли бы предположить, что здания типа x могли быть построены везде, где также появлялись другие здания. Это приводит к следующему простому тесту перестановок . Создайте точечный слой из всех возможных мест, где могли появиться здания типа x . Этот слой может быть местоположением всех зданий в области, возведенной в течение того же периода, что и xздания были (в том числе и сами здания х , конечно). Пространственно соедините слой y, чтобы получить расстояния до ближайшего здания типа y . Остальная часть расчета работает с таблицей атрибутов: географические вычисления сделаны. То, что вы будете делать, - это постоянно использовать генератор случайных чисел, чтобы взять простую случайную выборку всех этих зданий, каждая из которых имеет ровно столько элементов, сколько у вас зданий х- типа. Вычислите среднее расстояние для этого образца. Повторяйте, пока у вас не будет много статистических данных среднего расстояния. Если почти все эти случайно полученные средние расстояния больше, чем среднее расстояние, которое вы измерили для xТип здания, вы можете сделать вывод, что х не сгруппированы случайно: эффект реальный.

(Такие вычисления лучше всего программировать на платформе, подходящей для таких целей, например, `R ', но практически любое вычислительное программное обеспечение может быть запущено в эксплуатацию, даже Excel. Программирование очень, требует немного больше, чем просто умение писать циклы и выбирать элементы из массивов в случайном порядке.)

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


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

Для тех, кто использует R, я бы рекомендовал дать пакет spatstat ( cran.r-project.org/web/packages/spatstat/index.html ) посмотреть на кластерный анализ.
om_henners

2

Конечно, ваш метод анализа данных должен зависеть от основной проблемы, мотивирующей анализ.

Но вот несколько идей:

Из ESRI:

Как работает пространственный кластерный анализ на нескольких расстояниях: k-функция Рипли (Пространственная статистика) , где i и j в уравнении будут обозначать ваши здания x и y. K-функция Рипли обеспечит вероятностный вывод.

Из информатики:

Существуют сложные алгоритмы для обнаружения паттернов совместного размещения, которые вы можете найти в Google.


«Простая идея сюжета» интересна, но вам нужно кое-что сравнить с ней: само по себе трудно извлечь из нее полезную информацию. K-функция Рипли также является полезным инструментом, но, к сожалению, во многих случаях она просто отражает геометрию набора данных. С домами в пригородной или сельской местности, которые, как правило, лежат вдоль линейных объектов (дорог), функция K четко покажет «значительную» кластеризацию только по этой причине. Как таковой, он не раскрывает ничего полезного о домах, кроме того, что они построены возле дорог!
whuber

@whuber 1-е спасибо за объяснение проблемы K-функции Рипли. Во-вторых, когда мы видим график цен на акции с течением времени, мы можем искать общие тенденции вверх или вниз или случайным образом, также мы можем определить время, когда произошло значительное снижение или увеличение, и спросить, почему. График зависимости концентрации зданий от изменения расстояния можно использовать таким же образом. Он может использоваться для поиска всплесков концентрации, что свидетельствует о случайном распределении, а также может использоваться для дальнейшего изучения любопытных всплесков.
b_dev

Вы правы. Я хочу сказать, что сам сюжет ничего не говорит нам о кластеризации. Возможно, хорошей аналогией (а не ценами на акции) является краткая карта числа случаев заболевания раком почки по состоянию на 2000-2010 годы в США. Это также ничего не говорит нам о (географической) кластеризации, поскольку она не учитывает различия в населении между штатами. Точно так же, для кросс-K графика требуется подходящая нормализация или ссылка для интерпретации. Общие тенденции, всплески и т. Д. Могут просто отражать географические особенности всех зданий.
whuber

@whuber Ты прав. Прочитав ваш комментарий выше, я решил, что моя идея простого сюжета не даст много информации, по крайней мере, как это было описано, поэтому я удалил ее, чтобы не вводить людей в заблуждение. Теперь я полагаю, что Объединенная статистика является самым простым методом решения проблемы.
b_dev

2

Я никогда не проводил кластерный анализ в ГИС, но было бы проще, если бы вы создали точки / многоугольники для представления определенного кластера X и / или Y. Например, если вы создали точки для обозначения построения Y, вы могли бы тогда используйте инструмент « Расстояние до точки», чтобы получить все точки здания X на заданном расстоянии от ваших исходных местоположений.

В противном случае создание буфера вокруг зданий типа Y и выбор всех зданий типа X приведет к тому же результату, если у вас нет ArcInfo.


0

Вы можете объединить оба слоя, добавив двоичный столбец (0,1), чтобы определить, является ли здание X или Y.

Отсюда, используя GeoDa, вы можете определить локальную пространственную автокорреляцию (кластеризацию) и определить, был ли он высоко-низким (один слой сгруппирован вокруг другого слоя), низким-высоким (обратный) или высоким-высоким или низким-низким (само кластеризация). Руководство пользователя здесь (.pdf)

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.