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

ArcGIS 8.x,9.x,10.x (Arcview, ArcEditor, Arcinfo).
Ответить
dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 02 апр 2015, 12:05

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

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

Существует ли инструмент, чтоб при конвертации из растра в вектор не происходило присваивание каждому полигону своего ID, а сразу шло лишь с разбивкой их на классы землепользования?
Я двигаюсь в правильном русле или такая задача решается иначе?
Последний раз редактировалось dime1 03 апр 2015, 11:57, всего редактировалось 1 раз.

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение nadiopt » 02 апр 2015, 12:15

надо было не ID подхватывать при конвертации, а gridcode.
ин гроссен фамилен нихт клювен клац клац

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 02 апр 2015, 12:28

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

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение nadiopt » 02 апр 2015, 12:31

а если эти ID попробовать калькулятором полей приравнять к валью? или при конвертации это поле вообще теряется?
ин гроссен фамилен нихт клювен клац клац

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение nadiopt » 02 апр 2015, 12:35

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

Аватара пользователя
nadiopt
Гуру
Сообщения: 4744
Зарегистрирован: 29 янв 2009, 13:27
Репутация: 495
Ваше звание: хрюкало
Откуда: Санкт-Петербург
Контактная информация:

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

Сообщение nadiopt » 02 апр 2015, 12:37

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

Ariki
Гуру
Сообщения: 731
Зарегистрирован: 12 янв 2011, 22:40
Репутация: 304
Ваше звание:

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

Сообщение Ariki » 02 апр 2015, 12:58

Если я правильно понял описание вашей задачи, вам поможет Tabulate Area из Spatial Analyst.

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 02 апр 2015, 13:24

Идея перевести слой почв в растр и найти его пересечение с растром землепользования тоже интересная.
Вот только придумать как потом найти площади их пересечения в приделах административных округов.

giser
Завсегдатай
Сообщения: 388
Зарегистрирован: 09 ноя 2012, 09:25
Репутация: 113
Откуда: Москва

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

Сообщение giser » 02 апр 2015, 13:34

Вам могут пригодиться инструменты зональной статистики (как и выше предложенный Ariki).

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

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 02 апр 2015, 13:51

О, похоже с Combine работает!
Сейчас еще проверю и отпишусь.

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 03 апр 2015, 11:55

Отписываюсь.
Значит, моей ошибкой было построение алгоритма через работу с векторными данными, а нужно в таком случае, работать с растровыми (у них значение пикселя и 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 со слоем Округов, в рамках которых нам и нужно посчитать площади каждой комбинаций.

giser
Завсегдатай
Сообщения: 388
Зарегистрирован: 09 ноя 2012, 09:25
Репутация: 113
Откуда: Москва

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

Сообщение giser » 03 апр 2015, 12:14

Прикольно) После 4 шага можно было как раз зональной статистикой пройтись для эксперимента.

dime1
Гуру
Сообщения: 939
Зарегистрирован: 29 май 2011, 19:41
Репутация: 94
Откуда: Киев

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

Сообщение dime1 » 03 апр 2015, 12:18

giser, а зональная статистика не даёт площади (параметр statistics_type). У неё на выходе растр со значениями в каждой зоне.

giser
Завсегдатай
Сообщения: 388
Зарегистрирован: 09 ноя 2012, 09:25
Репутация: 113
Откуда: Москва

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

Сообщение giser » 03 апр 2015, 12:22

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

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

Ответить

Вернуться в «ArcGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя