QGIS буферний багатокутник з різною шириною на кожній стороні


12

Я створюю карти для оцінки ризику пожеж, і мені постійно пропонується побудувати буферні зони "захищеного простору" навколо конвертів будівель, що знаходяться на різних відстанях з різних сторін будівель. (Див. Зображення)

Я робив це в QGIS, створивши буфер для кожної необхідної відстані, а потім намалював вручну той, який відповідає максимально близько.

Це очевидно менше, ніж ідеально. Чи є спосіб створити ці буфери за допомогою QGIS? У мене також є доступ до ArcGIS та MapInfo.

Кілька відстаней буфера


1
Ласкаво просимо на GIS.SE! Чи можете ви додати трохи детальніше, наприклад, сказати, що визначає інтервал (наприклад, чому дві сторони - 25 м, а дві - 19 м)? Чи є якийсь атрибут чи якась інша логіка?
BradHards

3
Одним із способів було б перетворення полі в рядки, додавання поля відстані до буфера, заповнення з правильною відстані, буферні лінії, розчинення буферів, усунення отвору посередині. Якщо ви перетворите це на сценарій чи модель, це може бути швидше, ніж ваш ручний метод. Але отримання тієї змінної буферної відстані там або створення якогось атрибута, який каже, що цей рядок є таким типом буфера, щоб він міг робити це самостійно, схоже, що це вимагає ручного втручання для кожної форми, що уповільнює роботу.
Chris W

@BradHards Спасибі, я тут давно ховався! Відстані мені надає консультант, який готує звіт, і вказує відстань від будівлі, яку можна обґрунтовано захистити у випадку з пожежею. Відстані відрізняються від будівлі до будівлі, і кожна сторона будівлі також може бути різною. Просто, щоб зробити це просто. Я бачив відстані від 13 м до 30 м.
chrisxrobertson

@ChrisW Я не думав про полі до лінії, це має сенс, дякую. Він не буде голитися багато часу, але принаймні буфери будуть більш точними.
chrisxrobertson

@BradHards Оскільки він відображає оцінку ризику, я здогадуюсь, що це відображення незалежно від існуючої області, яка буде кваліфікуватися як захисний простір. Як і будь-яке існуюче обстеження стану, воно залежатиме від сайту до сайту. Простір, що захищається, повинен бути рівномірним 30 'з усіх боків структури (залежно від того, де ви знаходитесь і про яку зону оборони ми говоримо). Оскільки у всіх випадках є унікальні функції, я не знаю жодного способу автоматизації / прискорення процесу.
Chris W

Відповіді:


6

Тож я припускаю, що у вас вже є багатокутники, які потрібно забудувати, і ви маєте відстані (в метрах або футах, залежно від вашої системи проекцій).

Незважаючи на те, що у вас буде тут робота вручну, оскільки вам доведеться поставити ці буферні відстані.

Але ми можемо зняти багато ручної роботи з парою моделей в QGIS.

Модель буде:

  1. Перетворити багатокутник у поліліній.
  2. Вибухнути полілінією.
  3. Додайте стовпчик буфера, який буде використовуватися для буфера.

Оскільки ми вибухаємо полілінії, ви можете мати різну відстань буфера для кожної сторони (поліліній).

Потім у вас є крок введення ручної відстані для кожної полілінії.

Наступна модель:

  1. Буфер змінної відстані GRASS. (Використовуйте GRASS, оскільки це дозволяє не мати жодного стилю, тому кінці не перетинаються з іншими сторонами)
  2. Опуклий корпус для фіксації кутів.

На малюнках модель 1:

Оригінальний багатокутник:

введіть тут опис зображення

  1. Полігон до полілінії:

введіть тут опис зображення

  1. Вибухнуть полілінії.
  2. Додайте стовпчик буфера зі значеннями, доданими вручну:

введіть тут опис зображення

Модель 2:

  1. Буфер GRASS змінної відстані з колоною буфера. v.buffer. Column з написом "Не робити шапки на кінцях поліліній" поставлено:

введіть тут опис зображення

  1. Опуклий корпус для фіксації кутів:

введіть тут опис зображення

Куточки такі, як ми їх хочемо. Якщо ви використовуєте endcaps, у вас виникає велика кількість перекриттів з більш великими відстанями буферами.

Модель 1:

введіть тут опис зображення

Модель 2:

введіть тут опис зображення

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.