Страница 1 из 1

придать полигонам атрибуты соседей

Добавлено: 01 апр 2015, 19:59
nadiopt
товарищи, хелп
есть слой гарей
часть гарей была вручную дорисована по снимкам. при этом почти все дорисованные части примыкают к уже имеющимся гарям с атрибутикой
вопрос: как автоматом придать вновь нарисованным гарям атрибуты ближайшего соседа?

Re: придать полигонам атрибуты соседей

Добавлено: 02 апр 2015, 10:34
Andrey Zhukov
Пройтись по каждому новому созданному объекту, по выборке найти ближайшего соседа, переписать атрибуты из соседа.

Re: придать полигонам атрибуты соседей

Добавлено: 02 апр 2015, 10:37
nadiopt
вау, какой полезный совет. спасибо, кэп

Re: придать полигонам атрибуты соседей

Добавлено: 02 апр 2015, 10:41
Andrey Zhukov
Алгоритм довольно простой, реализация не сильно сложнее, особенно на питоне.

Re: придать полигонам атрибуты соседей

Добавлено: 02 апр 2015, 10:51
nadiopt
а теперь внимание, вопрос: КАК ЭТО СДЕЛАТЬ?

Re: придать полигонам атрибуты соседей

Добавлено: 02 апр 2015, 11:08
Andrey Zhukov
Уровень лицензии какой?
Для Advanced в 10.3 можно просто совсем сделать:
1. разбить на 2 класса;
2. через Near (Analysis) получить идентификаторы ближайших фич;
3. сделать в ArcMap соединение по атрибуту;
4. через калькулятор забить атрибуты.

Re: придать полигонам атрибуты соседей

Добавлено: 02 апр 2015, 11:23
nadiopt
у меня 10.2.2 пока что
и я не поняла алгоритма. у меня атрибутика 1-155 и 0, надо чтоб нулевые подхватили атрибут от соседнего куска с имеющимся атрибутом
как их разбить на два класса (ноль и не ноль чтоль?)
получить идентификаторы - это понятно
вот мы их получили, они разные для каждого из 519 нулевых полигонов. как теперь их забить нулевкам-то? соединение тогда уж по месту получается, но ведь тогда могут не нулевые получить атрибуты, а имеющиеся обнулиться:(
пока что я просто тупо выбираю большой полигон с атрибутами, выбираю селектом все соседние нулевые и калькуляторм считаю

Re: придать полигонам атрибуты соседей

Добавлено: 02 апр 2015, 11:26
Andrey Zhukov
Да, два класса, 0 и 1-155. К нулевым ищем ближайшего соседа, соединяем по NEAR_FID - FID.

Если обратный метод применить, то можно так:
1. делим на два класса (или на два слоя);
2. в модельбилдере итерируем ненулевые полигоны "по выборке" через атрибут со значением (или без параметров, если подход интивидуальный);
3. строим выборку по расположению (по примыканию или по близости);
4. берем значение атрибута, по которому итерировали (в модельбилдере это обычно %Value%) или извлекаем нужные атрибуты из родительского полигона, прописываем в выборке по калькулятору.

Re: придать полигонам атрибуты соседей

Добавлено: 02 апр 2015, 11:37
nadiopt
спасибо, теперь ясно
за это время отмучалась вручную, но задание не первое и не последнее