Здравствуйте!
Имеется простая на первый взгляд задача:
- есть слой лесов (полигоны)
- есть точки поселков
Надо вокруг поселка (радиусы разные) посчитать долю лесов.
Основная проблема в том, что буферы поселков накладываются друг на друга.
Работаю в основном в Arc, еще могу использовать Эрдас или САГА.
Пробовала:
- Зональную статистику а Арке – переводила леса в грид - не работает потому, что буферы накладываются. Т.е. для двух почти идентичных буферов с небольшим сдвигом – для одного считает нормально, для второго, только то что не вошло в первый буфер.
- neighborhood stastistics тоже в Арке – из грида лесов получала новый грид, где ячейка представляет из себя сумму значений исходного грида в пределах определенного радиуса. Здесь проблема в во времени расчета.
- 3 вариант – порезать слой лесов слоем буфера, затем присоединить значения буферов соответствующим кускам леса (один к многим) и далее считать площади лесов для каждого буфера.
Возможно есть какие-то более красивые варианты решения?
Посчитать количество лесов вокруг точки.
-
- Активный участник
- Сообщения: 121
- Зарегистрирован: 23 ноя 2005, 16:57
- Репутация: 6
- Откуда: Москва
- nadiopt
- Гуру
- Сообщения: 4744
- Зарегистрирован: 29 янв 2009, 13:27
- Репутация: 495
- Ваше звание: хрюкало
- Откуда: Санкт-Петербург
- Контактная информация:
Re: Посчитать количество лесов вокруг точки.
я бы сделала совсем не элегантно - построила бы топологию и отделила перекрывающиеся куски в отдельные полигоны ...
ин гроссен фамилен нихт клювен клац клац
- Catharsis
- Активный участник
- Сообщения: 190
- Зарегистрирован: 18 дек 2008, 14:45
- Репутация: 22
- Откуда: Воронеж
- Контактная информация:
Re: Посчитать количество лесов вокруг точки.
А что понимается под долей лесов? Если соотношение площадей в заданном радиусе - то не понимаю в чем проблема...
cogito ergo sum
-
- Гуру
- Сообщения: 5173
- Зарегистрирован: 26 сен 2009, 16:26
- Репутация: 792
- Ваше звание: званий не имею
- Откуда: Москва
Re: Посчитать количество лесов вокруг точки.
По-моему, 3-й вариант самый адекватный.
Не совсем понятно, в чём именно проблема.Maka писал(а):Основная проблема в том, что буферы поселков накладываются друг на друга.
Редактор материалов, модератор форума
-
- Активный участник
- Сообщения: 121
- Зарегистрирован: 23 ноя 2005, 16:57
- Репутация: 6
- Откуда: Москва
Re: Посчитать количество лесов вокруг точки.
to nadiot
Эх топологией не владею
to Catharsis
под долей лесов понимается сумма лесной территории в заданном радиусе (для каждого поселка предполагается использовать несколько радиусов). когда я ставила задачу она мне тоже казалась тривиальной - посчитаю зональную статистику для буферов разных радиусов и все
. Но при наличии перекрытий, если один и тот же лес попадает в несколько радиусов, то при использовании зональной статистики он засчитывается только для одного радиуса (буфера).
Попытка работать только с шейпами привела к 3 варианту, мне он кажется достаточно громоздким, плюс на маленьком примере возникает баг, который обходится. НО что будет при работе со всем массивом данных, а это около 1000 поселков не знаю.
to Александр Мурый
мне то наиболее пока симпатичен вариант neighborhood stastistics - получи в результате 3 грида с суммированием значений по заданому радиусу и считаю значения для всех точек-поселков. Но он занимает много машинного времени - уже 1.5 часа считается для первого самого маленького радиуса
Вот задаю вопрос может кто-то знает более простой-элегантный вариант.
Эх топологией не владею

to Catharsis
под долей лесов понимается сумма лесной территории в заданном радиусе (для каждого поселка предполагается использовать несколько радиусов). когда я ставила задачу она мне тоже казалась тривиальной - посчитаю зональную статистику для буферов разных радиусов и все

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

Вот задаю вопрос может кто-то знает более простой-элегантный вариант.
- jerry-maori
- Гуру
- Сообщения: 585
- Зарегистрирован: 22 авг 2012, 17:02
- Репутация: 143
- Откуда: Нижний Новгород
Re: Посчитать количество лесов вокруг точки.
я бы делал в лоб и топорно
алгоритм такой:
1. берём точку посёлка
2. строим буферную зону
3. CLIP из лесного полигона
4. Считаем полученные площади.
Пункт 1-4 повторяем для всех нужных радиусов
Повторяем для всех посёлков.
Model Builder нам в помощь
алгоритм такой:
1. берём точку посёлка
2. строим буферную зону
3. CLIP из лесного полигона
4. Считаем полученные площади.
Пункт 1-4 повторяем для всех нужных радиусов
Повторяем для всех посёлков.
Model Builder нам в помощь
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость