Группировать функции полигонов в соответствии с набором спецификаций

13

У меня есть два разных набора полигональных объектов (398 переписных участков и 80 почтовых индексов), каждый из которых сворачивается в большую функцию (округ США). Хотя переписные участки меньше почтовых индексов, они не сворачивают (т. Е. Вкладывают в них) почтовые индексы.

Мой вопрос - есть ли метод / инструмент, использующий ArcGIS или QGIS (или любое программное обеспечение) для раздельной группировки 398 участков переписи и 80 почтовых индексов для формирования 10 полигональных объектов при минимизации разницы между двумя результирующими наборами из 10 полигональных объектов?

Чтобы уточнить, я хочу сгруппировать 398 трактов -> 10 функций, а затем отдельно сгруппировать 80 почтовых индексов -> 10 функций, чтобы у меня было два несопоставимых набора по 10 функций в каждом. Я хочу оптимизировать эту группировку так, чтобы наложение между этими двумя наборами было максимальным (т.е. минимизировать несоответствие).

Вот изображение, показывающее, чего я надеюсь достичь:

Эли Керн
источник
Можете ли вы предоставить пример (рисунок, рисунок и т. Д.) Того, как бы вы хотели, чтобы конечный результат выглядел? У меня просто проблемы с визуализацией.
landocalrissian
Вы также хотите, чтобы некоторые критерии типа "полигоны должны быть примерно одинакового размера"? Я могу представить себе дешевый способ сделать это - найти 9 наименьших почтовых индексов, которые примерно соответствуют участкам переписи, и назвать большой остаток десятым многоугольником.
флоэма
Спасибо, Флоем, за ваш комментарий. Я действительно хотел бы установить различные критерии, но не хотел усложнять вопросы. Например, было бы неплохо установить критерии минимальной численности населения в каждом из 10 полигонов. То, что я хотел бы, для инструмента / метода, который мог бы генерировать список возможных решений для группировки CTs и ZIP в эти 10 групп, встречая определенные параметры. Затем я мог бы вручную просмотреть решения для характеристик, которые невозможно автоматизировать (например, не пересекать границы города).
Эли Керн
Что я понял, вам нужно два одинаковых слоя (ZIP и Tract). Скажем, вы хотите, чтобы форма Tracts была похожа на ZIP, затем избавьтесь от геометрии Tracts и создайте слой, идентичный ZIP, и перенесите атрибут Tracts в этот недавно созданный слой Tracts, тогда слой ZIP и Tracts будет выглядеть одинаково. Чтобы сделать этот слой «Преобразовать тракты» в слой «Точка» и запустить анализ «Обновление» или «Идентичность» (я полагаю, это неразрушающий анализ). Вам также может потребоваться растворение в зависимости от потребности. Теперь у нас есть слой ZIP и Tracts с одинаковой геометрией .. но с другим атрибутом (т.е. с Tracts) ..
SIslam
Я не знаю какой-либо простой способ (например, существующий инструмент) для этой задачи. И я сомневаюсь, что его создание будет быстрее, чем обработка ввода такого размера вручную.
Ян Шимбера

Ответы:

1

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

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

Матей
источник
0

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

ашиш кумар
источник
0

Мне кажется, что вы хотите сгруппировать участки переписи в 10 кластеров с тем условием, что участки в каждом кластере являются смежными. Если это так, вы можете использовать библиотеку Python clusterPy, которая реализует несколько различных алгоритмов для пространственно ограниченных кластеров.

Бехруз Бабаки
источник