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

Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 12:05
dime1
Задача - получить площадь сочетания тип почв(20 типов)+землепользование(8 типов) в приделах округов.
Слой землепользование получен конвертацией из растра в вектор и имеет кучу (300 000) полигонов со своим ID, т.е. не объедены в типы.
Слой типов почв так же имеет полигоны с дублирующимися типами.
Если махом сделать Intersect слоёв, то мы получим громадную атрибутивную таблицу пересечений их ID. Решено объединять все полигоны по их типам, чтоб получить только 20 и 8 записей в таблицах, соответственно.

По такой методике, при запуске Intersect я уже получил кучу ошибок от "Out of Memory" до "99999 TopoEngine Error", утрат связи слоя почв с атрибутивной таблицей, пустых результирующих слоёв, либо с несколькими пятнами полигонов после их пересечения :? Проверку геометрии проходят оба слоя.

Существует ли инструмент, чтоб при конвертации из растра в вектор не происходило присваивание каждому полигону своего ID, а сразу шло лишь с разбивкой их на классы землепользования?
Я двигаюсь в правильном русле или такая задача решается иначе?

Re: Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 12:15
nadiopt
надо было не ID подхватывать при конвертации, а gridcode.

Re: Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 12:28
dime1
А в растре нет ID, там только LandCover и Value (8 записей) и не важно какой выбираешь. Всё равно потом в векторе каждому полигону Арка присваивает свой ID (что как бы нормально, но не для этой задачи).

Re: Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 12:31
nadiopt
а если эти ID попробовать калькулятором полей приравнять к валью? или при конвертации это поле вообще теряется?

Re: Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 12:35
nadiopt
еще можно попробовать укрупнить кусочки, сделать мажорити фильтр, например. там оба растра с одинаковым разрешением?

Re: Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 12:37
nadiopt
а еще я делала как-то совмещение собственно растров, а потом уже результат в вектор перегоняла. но как - не помню напрочь, вроде спатиал аналист - комбайн

Re: Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 12:58
Ariki
Если я правильно понял описание вашей задачи, вам поможет Tabulate Area из Spatial Analyst.

Re: Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 13:24
dime1
Идея перевести слой почв в растр и найти его пересечение с растром землепользования тоже интересная.
Вот только придумать как потом найти площади их пересечения в приделах административных округов.

Re: Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 13:34
giser
Вам могут пригодиться инструменты зональной статистики (как и выше предложенный Ariki).

Зональная статистика
npk-kaluga.ru/ZonalStatistics.htm

Re: Двойной Intersect, проблема с ID

Добавлено: 02 апр 2015, 13:51
dime1
О, похоже с Combine работает!
Сейчас еще проверю и отпишусь.

Re: Двойной Intersect, проблема с ID

Добавлено: 03 апр 2015, 11:55
dime1
Отписываюсь.
Значит, моей ошибкой было построение алгоритма через работу с векторными данными, а нужно в таком случае, работать с растровыми (у них значение пикселя и ID не привязаны к некой замкнутой области).
Еще, чтоб не вносить путаницы скажу, что типов почв оказалось не 20, а 8 (как и типов землепользования). Т.е. это 64 их возможные комбинации, из которых, в моём случае получилось 54.

1. Dissolve слою типов почв по полю Soil_Type. Получаем слой с 8 строками.
2. Теперь Feature To Raster по полю Soil_Type, размер ячейки выбираем такой же, как у слоя землепользования. Уже имеем растр слоя типов почв.
3. Теперь комбинируем типы землепользования и типы почв функцией Combine (Spatial Analyst). У меня получился раст с 54 значениями, но потерялись атрибуты Soil_Type и LandCover_Type, зато остались их Value. Чтоб их добавить, нужно сделать пару Join таблиц из первичных растров (до операции Combine). Удалять ненужные поля вы сейчас не сможете, потому следующий шаг.

4. Экспортируем растр, чтоб присоединенные таблицы закрепились за растром и их можно было редактировать. Убираем ненужные поля.
5. Raster To Polygon по полю ID (54 значения). Снова потерялись атрибуты. Join по GRIDCODE из комбинированного растра. Тыцаем идентификатором по слоям, проверяем, что соотношения правильные.
6. Пересохраняем слой, чтоб сохранился Join.
7. Делаем Dissolve слою по полю Value (общий идентификатор для тип почв+тип землепользования). Снова Join. Мы убрали индивидуальные значения у каждого из полигонов для следующего шага.

8. Теперь делаем Intersect со слоем Округов, в рамках которых нам и нужно посчитать площади каждой комбинаций.

Re: Двойной Intersect, проблема с ID

Добавлено: 03 апр 2015, 12:14
giser
Прикольно) После 4 шага можно было как раз зональной статистикой пройтись для эксперимента.

Re: Двойной Intersect, проблема с ID

Добавлено: 03 апр 2015, 12:18
dime1
giser, а зональная статистика не даёт площади (параметр statistics_type). У неё на выходе растр со значениями в каждой зоне.

Re: Двойной Intersect, проблема с ID

Добавлено: 03 апр 2015, 12:22
giser
Честно признаться, я чисто теоретически себе эту ситуацию представляю.
Мои знания основаны на источнике, который я выше приводил: http://npk-kaluga.ru/ZonalStatistics.htm
Здесь считается не только площадь, но и другие статистические показатели.
Нужно будет тоже на практике опробовать.
Tabulate Area (из инструментов зональной статистики) должен считать площадь.
Извините, я ввел Вас в заблуждение ссылкой на конкретный инструмент, хотя, имел в виду группу инструментов (на нее почему-то ссылка не получилась).

Главное, что Вы достигли желаемого результата)