Пересечение слоев

0 голосов
спросил 18 Дек, 06 от postzug (300 баллов) в категории Программные продукты Esri
Помогите, пожалуйста, решить задачу:
 
Есть два слоя. Первый слой представляет зонирование территории по какому-либо признаку, указанному в виде числового индекса, например, 1, 2, 3,..., второй слой - населенные пункты с населением и прочими атрибутами... 
Надо посчитать количество населенных пунктов (площадь, число жителей) относящихся к различным зонам и/или среднее значение индекса для каждого из населенных пунктов...  
 
Если есть скрипт, поделитесь, пожалуйста :)

5 Ответы

0 голосов
ответил 19 Дек, 06 от geologic (39,860 баллов)

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

0 голосов
ответил 19 Дек, 06 от postzug (300 баллов)
Полигоны соразмерные, то есть либо в пределах одной зоны может быть несколько населенных пунктов, либо в пределах одного населенного пункта может быть несколько зон. 
Задача, наверное, типовая :) Но, к сожалению, у меня опыта совсем мало...
Может есть готовый скрипт. Помогите, пожалуйста.
0 голосов
ответил 22 Дек, 06 от postzug (300 баллов)
Увы, вопрос пока остается открытым...
 
Если я с помощью Geoprocessing Wizard сначала создаю новый слой, выполняя операцию пересечения (Intersection), а потом снова объединяю элементы общей территории (Dissolving), то тогда вроде есть возможность получения среднего значения искомого числового индекса...
 
Но дело в том, что мне нужно найти его среднее значение с учетом весового распределения в пределах исследуемой территории. Например, 20% территории относится к зоне со значением индекса I=1, 30% - к зоне со значением индекса I=2, а 50% - к зоне с I=3. Тогда с помощью Geoprocessing Wizard для этих трех значений (1, 2 и 3) я получаю просто среднеарифметическое Iср=2, но на самом-то деле требуемое значение должно составлять:
Iср = (0.2*1+0.3*2+0.5*3) = 2.1
 
Как бы сделать скрипт, который бы идентифицировал все элементы получаемые в результате пересечения полигонов на разных слоях и вычислял их площади, а потом уж отношение площадей и само значение индекса посчитать, кажись, несложно...
 
При малом количестве элементов, само собой разумеется, можно посчитать и вручную, а если в базе их сотни или тысячи, то конечно, нужен скрипт...
 
Помогите, пожалуйста, кто разбирается в этом...
 
0 голосов
ответил 22 Дек, 06 от geologic (39,860 баллов)

После пересечения вы получите таблицу всех возможных сочетаний населенки и зон, в виде полигонов, для каждого из которых будет атрибут исходного нас. пункта и атрибут зоны. Вычислить площадь каждого такого полигона несложно, это можно найти в FAQ. Ну а дальше запросом по базе данных (на самом деле по одной таблице) вычисляете то, что вам нужно, по любой формуле. Cойдет SQL-запрос или обычный запрос, но в несколько прогонов. В первый раз вычисляете веса ваших сочетаний, второй раз - осредняете веса для каждой группы. Несложная задачка-то, включайте думалку и вперед.

Ну а скрипт заказать тут немало программистов найдется - только не нужен он вам... Из пушки по воробьям не лупят :)
0 голосов
ответил 22 Дек, 06 от postzug (300 баллов)
Спасибо. Покопаюсь ишо :) В принципе, конечно, "станок всегда включен" :) и алгоритм уже придуман, но мне он кажется чуток топорным. Поэтому хотелось получить подсказку знатоков...
 
Добро пожаловать на сайт Вопросов и Ответов, где вы можете задавать вопросы по GIS тематике и получать ответы от других членов сообщества.
...