Как вычислить длину линии пересечений полигонов
-
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 21 июн 2015, 21:11
- Репутация: 0
Как вычислить длину линии пересечений полигонов
Добрый день, уважаемые форумчане. Не знаю конечно как правильно сформулировать задачу, но постараюсь объяснить.
Имеется: слой земельных участков и слой лесных участков. Нужно рассчитать протяженность прилегания земельных участков к лесу, хотя бы примерно. Я сделал буферную зону от лесных участков, чтобы она имела пересечение с земельными участками, будем считать что это и есть искомая протяженность.
Я вот думаю что теперь нужно сделать из буферного слоя (полигон) линии и затем вычислить длину тех самых линий которые попадают (пересекают) на земельные участки. Пока остановился на этом, буду смотреть как из полигонов сделать линии. Подскажите как лучше поступить, может я не в том направлении двигаюсь.
Да и самое главное у земельных участков есть кадастровые номера (они в атрибутах) нужно эту протяженность как то привязать к номерам.
Имеется: слой земельных участков и слой лесных участков. Нужно рассчитать протяженность прилегания земельных участков к лесу, хотя бы примерно. Я сделал буферную зону от лесных участков, чтобы она имела пересечение с земельными участками, будем считать что это и есть искомая протяженность.
Я вот думаю что теперь нужно сделать из буферного слоя (полигон) линии и затем вычислить длину тех самых линий которые попадают (пересекают) на земельные участки. Пока остановился на этом, буду смотреть как из полигонов сделать линии. Подскажите как лучше поступить, может я не в том направлении двигаюсь.
Да и самое главное у земельных участков есть кадастровые номера (они в атрибутах) нужно эту протяженность как то привязать к номерам.
- Вложения
-
- Снимок123.JPG (84.06 КБ) 4840 просмотров
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Как вычислить длину линии пересечений полигонов
немного не так. Сделать буфер из леса (очень небольшой, если тополология правильная), превратить земельные участки в линии, и отрезать их буфером леса. Потом просто просуммировать длину линий ("обрезков").
Истина будет между сумма_длин_линий и сумма_длин_линий - 2*число_линий*размер буфера ("лишние хвостики").
Естественно, делать все с копиями.
Истина будет между сумма_длин_линий и сумма_длин_линий - 2*число_линий*размер буфера ("лишние хвостики").
Естественно, делать все с копиями.
-
- Гуру
- Сообщения: 1018
- Зарегистрирован: 01 авг 2012, 13:55
- Репутация: 241
Re: Как вычислить длину линии пересечений полигонов
Пробуйте инструмент Intersect
-
- Завсегдатай
- Сообщения: 345
- Зарегистрирован: 11 дек 2006, 09:46
- Репутация: 102
- Откуда: Иркутск
Re: Как вычислить длину линии пересечений полигонов
Как вариант:
1. преобразовать полигоны участков в линии,
2. разбить их по узлам на отдельные сегменты,
3. вокруг каждого получившегося сегмента построить буфер (желательно с плоскими концами, наподобие cap style = flat),
4. проверить, какие буфера пересекаются с лесом,
5. выбрать соответствующие сегменты и посчитать их длину для каждого участка (атрибуты то на всех этапах сохранятся).
1. преобразовать полигоны участков в линии,
2. разбить их по узлам на отдельные сегменты,
3. вокруг каждого получившегося сегмента построить буфер (желательно с плоскими концами, наподобие cap style = flat),
4. проверить, какие буфера пересекаются с лесом,
5. выбрать соответствующие сегменты и посчитать их длину для каждого участка (атрибуты то на всех этапах сохранятся).
-
- Завсегдатай
- Сообщения: 345
- Зарегистрирован: 11 дек 2006, 09:46
- Репутация: 102
- Откуда: Иркутск
Re: Как вычислить длину линии пересечений полигонов
gamm, судя по картинке там топологии нет в принципе - участки не обязательно именно соприкасаются с лесом, и понятие "прилегание" определяется с некоторой погрешностью, которая как раз ширина буфера и есть
-
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 21 июн 2015, 21:11
- Репутация: 0
Re: Как вычислить длину линии пересечений полигонов
да участки не обязательно соприкасаются с лесом. Из за этого я делал буфер , чтобы было пересечение. Но там получается что буфер не полностью пересекает земельный участок. Так сказать с разрывом. Ну это я потом подсчитаю если будет несколько пересечений и кадастровый номер в атрибутах будет один и тот же.
Мне теперь нужно отработать предложенные варианты. Нужно еще вникнуть.
Мне теперь нужно отработать предложенные варианты. Нужно еще вникнуть.
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Как вычислить длину линии пересечений полигонов
есть рецепт даже для самого запущенного случая, с двойными-тройными "самонааложенными" полигонами и прочими чудесами. Просто сносим линии участков и буфер леса на достаточно детальные растры, и считаем пиксели в пересечении. Поправки смотрим у учебнике 1925г. (и его переизданиях) про палетки. При желании делаем несколько вариантов с разным разрешением, смотрим на результат - обычно сразу понятно, что и как, линии все достаточно прямые, "завихрений" типа дельты реки и береговой линии нет.
-
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 21 июн 2015, 21:11
- Репутация: 0
Re: Как вычислить длину линии пересечений полигонов
2. разбить их по узлам на отдельные сегменты (или отрезать их буфером леса) --- никак не могу понять как это делается. Подскажите пожалуйста.
-
- Гуру
- Сообщения: 5287
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
-
- Завсегдатай
- Сообщения: 345
- Зарегистрирован: 11 дек 2006, 09:46
- Репутация: 102
- Откуда: Иркутск
-
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 21 июн 2015, 21:11
- Репутация: 0
Re: Как вычислить длину линии пересечений полигонов
Получается что линия разбивается в местах изломов, а мне нужно чтобы сегменты были которые получаются в пересечении буфера леса
видимо там нужно добывать какое то условие exploded ?
- Вложения
-
- 1.JPG (62.44 КБ) 4668 просмотров
-
- Завсегдатай
- Сообщения: 345
- Зарегистрирован: 11 дек 2006, 09:46
- Репутация: 102
- Откуда: Иркутск
Re: Как вычислить длину линии пересечений полигонов
Так вы можете выбрать все получившиеся отрезки, укладывающиеся в буфер леса. В вашем случае будет два отрезка, а вот кусочек слева не попадёт, да
-
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 21 июн 2015, 21:11
- Репутация: 0
Re: Как вычислить длину линии пересечений полигонов
В общем сделал "по колхозному" , но мне это норм. Сделал линии из полигонов земельных участков, и линии из полигонов буфера лесных участков. Потом с помощью Split lines with lines, разбил линии. Теперь вот удаляю лишние линии. Вроде норм получилось.
- Вложения
-
- 2.JPG (58.6 КБ) 4636 просмотров
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Как вычислить длину линии пересечений полигонов
Сделайте выборку полученных линий внутри буфера
-
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 21 июн 2015, 21:11
- Репутация: 0
Re: Как вычислить длину линии пересечений полигонов
я теперь понял что вы имели ввиду, я не вдумался. Время потратил на удаление лишних линий, хотя можно было все сделать быстрее. Спасибо!
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 21 гость