Forum QGIS
Długość linii w poligonie - podział na poszczególne odcinki warstwy liniowej - Wersja do druku

+- Forum QGIS (http://forum.quantum-gis.pl)
+-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html)
+--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html)
+--- Wątek: Długość linii w poligonie - podział na poszczególne odcinki warstwy liniowej (/thread-1837.html)



Długość linii w poligonie - podział na poszczególne odcinki warstwy liniowej - justynaw3112 - 31-10-2019

Witam wszystkich, 

Mam następujący problem do rozwiązania:
- mam warstwę liniową podzieloną na odcinki - powiedzmy że są to fragmenty sieci - każdy z tych fragmentów jest odpowiednio opisany (nazwa, długość i inne specyfikacje)
- mam też warstwę poligonową - powiedzmy że jest to warstwa działek

Chciałabym wykonać analizę, której efektem byłoby przyporządkowanie do działki poszczególnych odcinków sieci, oraz ich długości w obrębie działki. 

Wiem, że istnieje analiza "Długość linii w poligonie", ale ona zwraca mi ogólną długość w każdej z działek, a ja chciałabym aby podana była długość każdego z fragmentów w obrębie danej działki. 

Czy ktoś ma może jakieś pomysły? Albo po prostu zna rozwiązanie? 
Kombinowałam coś z kalkulatorem pól, albo dzieleniem warstwy, ale jeszcze nie doszłam do żadnego optymalnego rozwiązania. 

Będę niezmiernie wdzięczna za pomoc.


RE: Długość linii w poligonie - podział na poszczególne odcinki warstwy liniowej - gsienko - 01-11-2019

Może w ten sposób. Poligon zamień na linie. Potem potnij tymi liniami twoją warstwę z sieciami. W ten sposób uzyskasz odcinki w obrębie działki. Kolejnym krokiem jest dodanie identyfikatora działki do linii oraz dodanie pola z długością.


RE: Długość linii w poligonie - podział na poszczególne odcinki warstwy liniowej - jerresso - 01-11-2019

A zwykły intersect (mnożenie/iloraz) tu nie wystarczy?


RE: Długość linii w poligonie - podział na poszczególne odcinki warstwy liniowej - justynaw3112 - 17-11-2019

@gsienko dzięki za podpowiedź - zrobiłam troszkę inaczej, bo szczerze mówiąc nie wiem jakim narzędziem mogłam pociąć dwie warstwy liniowe żeby powstały mi odcinki (podpowiedź?)
Znalazłam plugin networks i tam dołączyłam punkty przecięcia się linii (poligonów zamienionych i odcinków sieci), dzięki temu podzieliło mi odcinki dokładnie tak jak chciałam.
Z tym, że nie wiem dlaczego jak chce dołączyć dane o działkach do kawałków sieci (po lokalizacji), niektórych kawałków nie chce znajdować wewnątrz - cały czas widzi przecięcie.
A znów jak daje z przecięciem to znajduje mi tę samą linię w kilku działkach...
Jakaś rada?

@jerresso a ty co dokładnie miałeś na myśli? Smile (od owa odnajduje wszystkie opcje)


RE: Długość linii w poligonie - podział na poszczególne odcinki warstwy liniowej - xmaziax - 18-11-2019

Może nie do końca QGIS, ale może Ci się przyda opis - nie wykluczam, że może tutaj zadziałać to podejście.

Gdy dzielisz warstwę liniową inną warstwą liniową teoretycznie uzyskasz podziały każdy z każdym i dzielona warstwa będzie miała pokrywające się linie.

W takim przypadku najlepiej zrobić warstwę punktową punktów przecięć.
Następnie konwertujesz to na 1 obiekt na warstwę o geometrii typu multipoint i dopiero taką warstwą tniesz swoją wyjściową warstwę.
Cięcie warstwy liniowej przez punktową.
Z takim podejściem unikniesz tych nakładających się geometrii bo każda linia dzielona jest przez 1 obiekt.

Taką ścieżkę stosuję przy takich operacjach, z tym że ja to robię bezpośrednio w Postgis'ie a nie z poziomu QGIS, bo mam jeszcze wiele innych warunków w to wrzuconych.

Dla tak pociętej warstwy wystarczy obliczyć długości, możesz wygenerować punkty - centroidy (ale wymuszone na linii) przepisać do nich numery, długości i tak zliczyć w tych poligonach.


RE: Długość linii w poligonie - podział na poszczególne odcinki warstwy liniowej - gsienko - 19-11-2019

Od razu z góry uprzedzę, używam QGIS w języku angielskim i stąd też będą nazwy algorytmów, wszystkie znajdziesz w Processingu.

1) Działki należy zamienić na pojedyncze linie, w tym celu:
a) Polygons to lines - zamieni poligony działek na linie, jedna linia będzie całą działką oraz linie będą się powtarzać.
b) Explode lines - Zamieniami wszystkie linie na proste odcinki
c) Delete duplicate geometries - usuwamy duplikaty
2) Tak przygotowanymi liniami z działek tniemy sieć przy pomocy Split with lines
3) I potem przenosimy atrybuty przez Join attributes by location


RE: Długość linii w poligonie - podział na poszczególne odcinki warstwy liniowej - jerresso - 20-11-2019

Ja być może czegoś nie rozumiem, ale:
1. Wczytaj linie i poligony do czystego QGIS
2. Użyj opcji intersect z menu vetor (po polsku iloczyn/mnożenie)
3. jako pierwszą wskaż warstwę liniową

dostaniesz wynik, że do każdej linii zostaną przypisane wartości poligonu. Czy nie o to chodziło?