Посчитать количество лесов вокруг точки.

Вопросы по нескольким пакетам сразу, или вопросы, которые непонятно к какой ГИС отнести
Ответить
Maka
Активный участник
Сообщения: 121
Зарегистрирован: 23 ноя 2005, 16:57
Репутация: 6
Откуда: Москва

Посчитать количество лесов вокруг точки.

Сообщение Maka »

Здравствуйте!
Имеется простая на первый взгляд задача:
- есть слой лесов (полигоны)
- есть точки поселков
Надо вокруг поселка (радиусы разные) посчитать долю лесов.

Основная проблема в том, что буферы поселков накладываются друг на друга.

Работаю в основном в Arc, еще могу использовать Эрдас или САГА.

Пробовала:
- Зональную статистику а Арке – переводила леса в грид - не работает потому, что буферы накладываются. Т.е. для двух почти идентичных буферов с небольшим сдвигом – для одного считает нормально, для второго, только то что не вошло в первый буфер.

- neighborhood stastistics тоже в Арке – из грида лесов получала новый грид, где ячейка представляет из себя сумму значений исходного грида в пределах определенного радиуса. Здесь проблема в во времени расчета.

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

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

Re: Посчитать количество лесов вокруг точки.

Сообщение nadiopt »

я бы сделала совсем не элегантно - построила бы топологию и отделила перекрывающиеся куски в отдельные полигоны ...
ин гроссен фамилен нихт клювен клац клац
Аватара пользователя
Catharsis
Активный участник
Сообщения: 190
Зарегистрирован: 18 дек 2008, 14:45
Репутация: 22
Откуда: Воронеж
Контактная информация:

Re: Посчитать количество лесов вокруг точки.

Сообщение Catharsis »

А что понимается под долей лесов? Если соотношение площадей в заданном радиусе - то не понимаю в чем проблема...
cogito ergo sum
Александр Мурый
Гуру
Сообщения: 5173
Зарегистрирован: 26 сен 2009, 16:26
Репутация: 792
Ваше звание: званий не имею
Откуда: Москва

Re: Посчитать количество лесов вокруг точки.

Сообщение Александр Мурый »

По-моему, 3-й вариант самый адекватный.
Maka писал(а):Основная проблема в том, что буферы поселков накладываются друг на друга.
Не совсем понятно, в чём именно проблема.
Редактор материалов, модератор форума
Maka
Активный участник
Сообщения: 121
Зарегистрирован: 23 ноя 2005, 16:57
Репутация: 6
Откуда: Москва

Re: Посчитать количество лесов вокруг точки.

Сообщение Maka »

to nadiot
Эх топологией не владею :(

to Catharsis
под долей лесов понимается сумма лесной территории в заданном радиусе (для каждого поселка предполагается использовать несколько радиусов). когда я ставила задачу она мне тоже казалась тривиальной - посчитаю зональную статистику для буферов разных радиусов и все :? . Но при наличии перекрытий, если один и тот же лес попадает в несколько радиусов, то при использовании зональной статистики он засчитывается только для одного радиуса (буфера).
Попытка работать только с шейпами привела к 3 варианту, мне он кажется достаточно громоздким, плюс на маленьком примере возникает баг, который обходится. НО что будет при работе со всем массивом данных, а это около 1000 поселков не знаю.

to Александр Мурый
мне то наиболее пока симпатичен вариант neighborhood stastistics - получи в результате 3 грида с суммированием значений по заданому радиусу и считаю значения для всех точек-поселков. Но он занимает много машинного времени - уже 1.5 часа считается для первого самого маленького радиуса :(

Вот задаю вопрос может кто-то знает более простой-элегантный вариант.
Аватара пользователя
jerry-maori
Гуру
Сообщения: 585
Зарегистрирован: 22 авг 2012, 17:02
Репутация: 143
Откуда: Нижний Новгород

Re: Посчитать количество лесов вокруг точки.

Сообщение jerry-maori »

я бы делал в лоб и топорно

алгоритм такой:

1. берём точку посёлка
2. строим буферную зону
3. CLIP из лесного полигона
4. Считаем полученные площади.

Пункт 1-4 повторяем для всех нужных радиусов

Повторяем для всех посёлков.

Model Builder нам в помощь
Ответить

Вернуться в «Общий - ПО»

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

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