Wielobok buforowy QGIS o różnych szerokościach z każdej strony


12

Tworzę mapy do oceny ryzyka pożarów i ciągle jestem proszony o wykreślanie stref buforowych „przestrzeni obronnej” wokół kopert budynków o różnych odległościach po różnych stronach budynków. (Patrz zdjęcie)

Robiłem to w QGIS, tworząc bufor dla każdej wymaganej odległości, a następnie ręcznie rysując taki, który pasuje jak najbliżej.

To oczywiście mniej niż idealne. Czy istnieje sposób na utworzenie tych buforów za pomocą QGIS? Mam również dostęp do ArcGIS i MapInfo.

Wiele odległości bufora


1
Witamy w GIS.SE! Czy możesz dodać nieco więcej szczegółów, na przykład powiedzieć, co definiuje odstęp (np. Dlaczego dwie strony mają 25 m, a dwie strony 19 m)? Czy istnieje jakiś atrybut lub jakaś inna logika?
BradHards

3
Jednym ze sposobów byłoby przekonwertowanie poli na linie, dodanie pola odległości bufora, wypełnienie prawidłową odległością, linii bufora, rozpuszczenie buforów, wyeliminowanie dziury w środku. Jeśli zmienisz to w skrypt lub model, może to być szybsze niż metoda ręczna. Ale uzyskanie tam zmiennej odległości bufora lub utworzenie atrybutu, który mówi, że ta linia jest tego typu buforem, więc może to zrobić samodzielnie, wydaje się, że wymaga ręcznej interwencji dla każdego kształtu, co spowalnia.
Chris W

@BradHards Dzięki, czaiłem się tu od dłuższego czasu! Odległości podaje mi konsultant przygotowujący raport i wskazują odległość od budynku, którą można rozsądnie obronić w przypadku pożaru. Odległości różnią się w zależności od budynku, a każda strona budynku może być inna. Żeby było łatwo. Widziałem odległości od 13m do 30m.
chrisxrobertson

@ChrisW Nie myślałem o poli-line, to ma sens, dzięki. Nie straci dużo czasu, ale przynajmniej bufory będą dokładniejsze.
chrisxrobertson

@BradHards Ponieważ mapuje ocenę ryzyka, przypuszczam, że mapowanie jest tym, czym jest istniejący obszar, który można by zakwalifikować jako przestrzeń podlegającą obronie. Podobnie jak w przypadku każdej istniejącej ankiety, będzie ona się różnić w zależności od witryny. Przestrzeń do obrony powinna być jednolita 30 'ze wszystkich stron konstrukcji (w zależności od tego, gdzie jesteś i o jakiej strefie obrony mówimy). Ponieważ wszystkie przypadki są w zasadzie wyjątkowymi funkcjami, nie znam żadnego sposobu na zautomatyzowanie / przyspieszenie procesu.
Chris W

Odpowiedzi:


6

Zakładam więc, że masz już wielokąty, które wymagają buforowania, i masz odległości (w metrach lub stopach, w zależności od systemu projekcji).

Bez względu na to, co będziesz miał tutaj trochę pracy ręcznej, ponieważ będziesz musiał wprowadzić te odległości buforowe.

Ale możemy usunąć wiele ręcznej pracy z kilkoma modelami w QGIS.

Model będzie:

  1. Konwertuj wielokąt na polilinię.
  2. Rozbij polilinię.
  3. Dodaj kolumnę bufora, która będzie używana dla bufora.

Ponieważ wybuchamy polilinie, możesz mieć inną odległość bufora dla każdej strony (polilinii).

Następnie masz ręczny krok wprowadzenia odległości buforowych dla każdej polilinii.

Następny model:

  1. Bufor zmiennej odległości GRASS. (Użyj GRASS, ponieważ pozwala na styl bez zaślepek, więc końce nie zachodzą na inne strony)
  2. Wypukły kadłub do mocowania narożników.

Na zdjęciach model 1:

Oryginalny wielokąt:

wprowadź opis zdjęcia tutaj

  1. Wielobok do polilinii:

wprowadź opis zdjęcia tutaj

  1. Rozbij polilinie.
  2. Dodaj kolumnę bufora z ręcznie dodanymi wartościami:

wprowadź opis zdjęcia tutaj

Model 2:

  1. Bufor GRASS o zmiennej odległości z kolumną bufora. v.buffer.column z zaznaczeniem „Nie rób czapek na końcach polilinii” zaznaczone:

wprowadź opis zdjęcia tutaj

  1. Wypukły kadłub do mocowania narożników:

wprowadź opis zdjęcia tutaj

Rogi są takie, jak chcemy. Jeśli używasz zaślepek, często nakładasz się na bufory o większej odległości.

Model 1:

wprowadź opis zdjęcia tutaj

Model 2:

wprowadź opis zdjęcia tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.