Страница 1 из 1
Сравнение соседних полигонов.
Добавлено: 10 янв 2014, 10:47
li_sasha

- присвоить ко взятой ячейке значение 1, так как среди окружающих его полигонов, он имеет наибольшее значение.
- sample.jpg (8.4 КБ) 4899 просмотров
Здравствуйте.
Есть такая вот задача.
Имеется векторный файл в виде полигонов со значениями.
Нужно сравнить каждый полигон с соседними полигонами и определить, является ли он наибольшим значением или наименьшим. Если наибольшее то 1, если наименьшее то 0.
Например:
- возьмем один полигон. Его значение равна 5.
- окружающие его полигоны имеют значения 1,2,3,4
- получаем на взятом полигоне значение 1, так как среди окружающих его полигонов его значение наибольшее.
как это осуществить в ArcGIS 10?
Re: Сравнение соседних полигонов.
Добавлено: 10 янв 2014, 13:51
Sergey Astakhov
li_sasha писал(а):...с соседними полигонами
Нужно формальное определение что есть "соседний полигон" и как его можно отличить от "несоседнего".
Re: Сравнение соседних полигонов.
Добавлено: 11 янв 2014, 07:42
li_sasha
Sergey Astakhov писал(а):li_sasha писал(а):...с соседними полигонами
Нужно формальное определение что есть "соседний полигон" и как его можно отличить от "несоседнего".
как один из вариантов можно задать радиус поиска соседних полигонов. Таким образом для каждого полигона будут сравниваться соседние полигоны. Но вот как все это дело осуществить в реальность

Re: Сравнение соседних полигонов.
Добавлено: 11 янв 2014, 08:05
gamm
li_sasha писал(а):Но вот как все это дело осуществить в реальность

1) при построенной топологии в таблице дуг есть ID левого и правого полигонов, поэтому все делается SQL запросом с соединением таблиц и агрегацией. И наверняка есть приблуда для этого в Тулбоксе. Если топологии нет, ее нужно построить разными build + clean (в том же Тулбоксе)
2) какие для этого кнопочки в Арке нужно нажимать, рассказывали на том занятии, вместо которого вы в кино ходили
3) если это для дела нужно, можно вывалить в shape, затащить в QGIS (или в R, или еще куда), и построить там этот SQL запрос, там все это намного проще и понятнее (по крайней мере для простого программиста, как я)

Re: Сравнение соседних полигонов.
Добавлено: 11 янв 2014, 09:24
trir
Ммм, центройды=>диаграмма Вороного...
Re: Сравнение соседних полигонов.
Добавлено: 31 янв 2014, 12:24
li_sasha
li_sasha писал(а):sample.jpg
Здравствуйте.
Есть такая вот задача.
Имеется векторный файл в виде полигонов со значениями.
Нужно сравнить каждый полигон с соседними полигонами и определить, является ли он наибольшим значением или наименьшим. Если наибольшее то 1, если наименьшее то 0.
Например:
- возьмем один полигон. Его значение равна 5.
- окружающие его полигоны имеют значения 1,2,3,4
- получаем на взятом полигоне значение 1, так как среди окружающих его полигонов его значение наибольшее.
как это осуществить в ArcGIS 10?
Возможно ли сделать это в Model builder?
например так:
1.поставить итератор на то, чтобы он выделял каждый полигон
2.при каждой итерации, исходя из выбранного полигона, находил соседние полигоны в радиусе 1 метра
3.среди выделенных полигонов осуществить сверку значений, и если один из соседних полигонов больше основного полигона, то присваиваем ему значение 1, иначе 0.
4. производим запись 1 и 0 в данные.