Страница 1 из 1
					
				Как вычислить длину линии пересечений полигонов
				Добавлено: 13 апр 2021, 16:43
				 val674
				Добрый день, уважаемые форумчане. Не знаю конечно как правильно сформулировать задачу, но постараюсь объяснить.
Имеется: слой земельных участков и слой лесных участков. Нужно рассчитать протяженность прилегания земельных участков к лесу, хотя бы примерно. Я сделал буферную зону от лесных участков, чтобы она имела пересечение с земельными участками, будем считать что это и есть искомая протяженность.
Я вот думаю что теперь нужно сделать из буферного слоя (полигон) линии и затем вычислить длину тех самых линий которые попадают (пересекают) на земельные участки. Пока остановился на этом, буду смотреть как из полигонов сделать линии. Подскажите как лучше поступить, может я не в том направлении двигаюсь.
Да и самое главное у земельных участков есть кадастровые номера (они в атрибутах) нужно эту протяженность как то привязать к номерам.
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 13 апр 2021, 16:57
				 gamm
				немного не так. Сделать буфер из леса (очень небольшой, если тополология правильная), превратить земельные участки в линии, и отрезать их буфером леса. Потом просто просуммировать длину линий ("обрезков").
Истина будет между сумма_длин_линий и  сумма_длин_линий - 2*число_линий*размер буфера ("лишние хвостики").
Естественно, делать все с копиями.
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 13 апр 2021, 16:58
				 lam
				Пробуйте инструмент Intersect
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 13 апр 2021, 17:00
				 Ivor
				Как вариант: 
1. преобразовать полигоны участков в линии, 
2. разбить их по узлам на отдельные сегменты, 
3. вокруг каждого получившегося сегмента построить буфер (желательно с плоскими концами, наподобие cap style = flat),
4. проверить, какие буфера пересекаются с лесом,
5. выбрать соответствующие сегменты и посчитать их длину для каждого участка (атрибуты то на всех этапах сохранятся).
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 13 апр 2021, 17:04
				 Ivor
				gamm, судя по картинке там топологии нет в принципе - участки не обязательно именно соприкасаются с лесом, и понятие "прилегание" определяется с некоторой погрешностью, которая как раз ширина буфера и есть
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 13 апр 2021, 17:07
				 val674
				да участки не обязательно соприкасаются с лесом. Из за этого я делал буфер , чтобы было пересечение. Но там получается что буфер не полностью пересекает земельный участок. Так сказать с разрывом. Ну это я потом подсчитаю если будет несколько пересечений и кадастровый номер в атрибутах будет один и тот же. 
Мне теперь нужно отработать предложенные варианты. Нужно еще вникнуть.
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 13 апр 2021, 17:22
				 gamm
				Ivor писал(а): ↑13 апр 2021, 17:04судя по картинке там топологии нет в принципе
 
есть рецепт даже для самого запущенного случая, с двойными-тройными "самонааложенными" полигонами и прочими чудесами. Просто сносим линии участков и буфер леса на достаточно детальные растры, и считаем пиксели в пересечении. Поправки смотрим у учебнике 1925г. (и его переизданиях) про палетки. При желании делаем несколько вариантов с разным разрешением, смотрим на результат - обычно сразу понятно, что и как, линии все достаточно прямые, "завихрений" типа дельты реки и береговой линии нет.
 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 13 апр 2021, 19:29
				 val674
				2. разбить их по узлам на отдельные сегменты (или отрезать их буфером леса) --- никак не могу понять как это делается. Подскажите пожалуйста.
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 13 апр 2021, 19:34
				 trir
				SQL
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 14 апр 2021, 03:05
				 Ivor
				val674 писал(а): ↑13 апр 2021, 19:29разбить их по узлам на отдельные сегменты (или отрезать их буфером леса) --- никак не могу понять как это делается. Подскажите пожалуйста.
 
В тулбоксе инструмент Vector geometry/Explode lines
 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 14 апр 2021, 09:18
				 val674
				Ivor писал(а): ↑14 апр 2021, 03:05В тулбоксе инструмент Vector geometry/Explode lines
 
Получается что линия разбивается в местах изломов, а мне нужно чтобы сегменты были которые получаются в пересечении буфера леса
видимо там нужно добывать какое то условие exploded ?
 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 14 апр 2021, 10:38
				 Ivor
				Так вы можете выбрать все получившиеся отрезки, укладывающиеся в буфер леса. В вашем случае будет два отрезка, а вот кусочек слева не попадёт, да
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 14 апр 2021, 10:55
				 val674
				В общем сделал "по колхозному" , но мне это норм. Сделал линии из полигонов земельных участков, и линии из полигонов буфера лесных участков. Потом с помощью Split lines with lines, разбил линии. Теперь вот удаляю лишние линии. Вроде норм получилось.
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 14 апр 2021, 13:03
				 gamm
				Сделайте выборку полученных линий внутри буфера
			 
			
					
				Re: Как вычислить длину линии пересечений полигонов
				Добавлено: 14 апр 2021, 17:45
				 val674
				Ivor писал(а): ↑14 апр 2021, 10:38Так вы можете выбрать все получившиеся отрезки, укладывающиеся в буфер леса. В вашем случае будет два отрезка, а вот кусочек слева не попадёт, да
 
я теперь понял что вы имели ввиду, я не вдумался. Время потратил на удаление лишних линий, хотя можно было все  сделать быстрее. Спасибо!