Jak buforować linię o różnych odległościach dla lewej / prawej strony
14
Jak mogę buforować linię w QGIS, używając jednego atrybutu dla lewej strony linii i jednego atrybutu dla prawej strony linii? Staram się buforować rzekę szerokością jej brzegu, która jest inna po prawej i lewej stronie.
Definiowanie boku linii jest raczej proste na orientowanej powierzchni , jaką jest płaszczyzna 2D w GIS. Jeśli zdefiniujesz punkt początkowy i końcowy linii, możesz jednoznacznie zdefiniować „lewą” i „prawą” stronę. Dzieje się tak nawet wtedy, gdy linia przecina się.
Z bardziej praktycznego punktu widzenia prosty przepływ pracy w celu utworzenia bufora jednostronnego obejmuje bufor standardowy, operację różnicową, a następnie operację obcinania. Oto przykład.
Zacznij od utworzenia wielokąta, który zawiera lub dokładnie zachodzi na twoją linię. Aby bufor znajdował się po prawej stronie linii, wnętrze wielokąta powinno znajdować się po lewej stronie. Zauważ, że jeśli twoja linia przecina się sama, to nie będzie działać zgodnie z potrzebami, i może być konieczne narysowanie wielokąta w taki sposób, aby nie przecinał siebie ani twojej linii. Zastosuj operację buforowania do tego wielokąta. Za pomocą wtyczki fTools przejdź do Narzędzia geoprzetwarzania> Bufor.
Korzystając z operacji różnicy, Narzędzia geoprzetwarzania> Różnica, z buforem jako warstwą wejściową i oryginalnym wielokątem jako warstwą różnicową, wycinamy wnętrze. Teraz masz bufor po prawej stronie.
Pozostało tylko wyciąć „dodatkową” część wielokąta. Narzędzia geoprzetwarzania> Klip.
To bardzo interesujące pytanie, które moim zdaniem nie jest łatwe do rozwiązania. Natknąłem się na skrypt ArcMap, który zapewnia bardzo dobrze udokumentowane rozwiązanie obejmujące 500 linii kodu VB. Jednak nie znam równoważnego skryptu lub modułu w QGIS.
Jednym z kluczowych zagadnień w buforze asymetrycznym będzie kierunek przepływu linii, aby można było zdefiniować lewą i prawą stronę. W przypadku rzek powinno się łatwo obliczyć, czy masz towarzyszący DEM.
Możliwe jest zbudowanie skryptu qgis wokół logiki tego skryptu, ale wymagałoby to dużej ilości pracy.
W ArcMap jest to bardzo łatwe do osiągnięcia. W oknie dialogowym narzędzia masz parametr, Side Typektóry może być lewy lub prawy. I masz parametr Field. Skrypty tego narzędzia pozwalają na użycie różnych wartości dla obu. Właśnie to zrobiłem (patrz moje pytanie tutaj )
Odpowiedzi:
Definiowanie boku linii jest raczej proste na orientowanej powierzchni , jaką jest płaszczyzna 2D w GIS. Jeśli zdefiniujesz punkt początkowy i końcowy linii, możesz jednoznacznie zdefiniować „lewą” i „prawą” stronę. Dzieje się tak nawet wtedy, gdy linia przecina się.
Z bardziej praktycznego punktu widzenia prosty przepływ pracy w celu utworzenia bufora jednostronnego obejmuje bufor standardowy, operację różnicową, a następnie operację obcinania. Oto przykład.
Zacznij od utworzenia wielokąta, który zawiera lub dokładnie zachodzi na twoją linię. Aby bufor znajdował się po prawej stronie linii, wnętrze wielokąta powinno znajdować się po lewej stronie. Zauważ, że jeśli twoja linia przecina się sama, to nie będzie działać zgodnie z potrzebami, i może być konieczne narysowanie wielokąta w taki sposób, aby nie przecinał siebie ani twojej linii. Zastosuj operację buforowania do tego wielokąta. Za pomocą wtyczki fTools przejdź do Narzędzia geoprzetwarzania> Bufor.
Korzystając z operacji różnicy, Narzędzia geoprzetwarzania> Różnica, z buforem jako warstwą wejściową i oryginalnym wielokątem jako warstwą różnicową, wycinamy wnętrze. Teraz masz bufor po prawej stronie.
Pozostało tylko wyciąć „dodatkową” część wielokąta. Narzędzia geoprzetwarzania> Klip.
źródło
To bardzo interesujące pytanie, które moim zdaniem nie jest łatwe do rozwiązania. Natknąłem się na skrypt ArcMap, który zapewnia bardzo dobrze udokumentowane rozwiązanie obejmujące 500 linii kodu VB. Jednak nie znam równoważnego skryptu lub modułu w QGIS.
Jednym z kluczowych zagadnień w buforze asymetrycznym będzie kierunek przepływu linii, aby można było zdefiniować lewą i prawą stronę. W przypadku rzek powinno się łatwo obliczyć, czy masz towarzyszący DEM.
Możliwe jest zbudowanie skryptu qgis wokół logiki tego skryptu, ale wymagałoby to dużej ilości pracy.
źródło
Side Type
który może być lewy lub prawy. I masz parametrField
. Skrypty tego narzędzia pozwalają na użycie różnych wartości dla obu. Właśnie to zrobiłem (patrz moje pytanie tutaj )