Буферный полигон QGIS с различной шириной на каждой стороне

12

Я создаю карты для оценки риска лесных пожаров, и меня постоянно просят построить буферные зоны «защищаемого пространства» вокруг ограждающих конструкций, которые находятся на разных расстояниях с разных сторон зданий. (См. Изображение)

Я делал это в QGIS, создавая буфер для каждого необходимого расстояния, а затем вручную рисуя тот, который соответствует как можно ближе.

Это явно не идеально. Есть ли способ создать эти буферы с помощью QGIS? У меня также есть доступ к ArcGIS и MapInfo.

Несколько буферных расстояний

chrisxrobertson
источник
1
Добро пожаловать в GIS.SE! Можете ли вы добавить немного больше деталей, например, сказать, что определяет расстояние (например, почему две стороны 25 м, а две стороны 19 м)? Есть ли какой-то атрибут или какая-то другая логика?
BradHards
3
Одним из способов будет преобразование поли в строки, добавление поля расстояния в буфере, заполнение с правильным расстоянием, строки буфера, растворение буферов, устранение дырок в середине. Если вы превратите это в сценарий или модель, это может быть быстрее, чем ваш ручной метод. Но получение этого переменного буферного расстояния или создание какого-либо атрибута, который говорит, что эта строка является буфером такого типа, поэтому он может сделать это самостоятельно, кажется, что для каждой фигуры требуется ручное вмешательство, что замедляет процесс.
Крис W
@BradHards Спасибо, я долго прятался здесь! Расстояния даны мне консультантом, готовящим отчет, и указывают расстояние от здания, которое может быть разумно защищено в случае пожара. Расстояния варьируются от здания к зданию, и каждая сторона здания также может быть разной. Просто чтобы было проще. Я видел расстояния от 13 до 30 метров.
Криксробертсон
@ChrisW Я не думал о поли в строке, это имеет смысл, спасибо. Это не будет сбивать много времени, но по крайней мере буферы будут более точными.
Криксробертсон
@BradHards Поскольку он отображает оценку риска, я предполагаю, что сопоставление - это любая существующая область, которая будет квалифицироваться как защищаемое пространство. Как и в любом существующем опросе условий, он будет отличаться от сайта к сайту. Защищаемое пространство должно быть равным 30 'со всех сторон конструкции (в зависимости от того, где вы находитесь и о какой зоне защиты мы говорим). Поскольку все случаи представляют собой уникальные возможности, я не знаю ни одного способа автоматизации / ускорения процесса.
Крис W

Ответы:

6

Поэтому я предполагаю, что у вас уже есть полигоны, которые необходимо буферизовать, и у вас есть расстояния (в метрах или футах в зависимости от вашей проекционной системы).

Неважно, что у вас здесь будет ручной работы, так как вам придется вводить эти буферные расстояния.

Но мы можем удалить большую часть ручной работы с парой моделей в QGIS.

Модель будет:

  1. Преобразовать многоугольник в полилинию.
  2. Взорвать полилинию.
  3. Добавьте столбец буфера, который будет использоваться для буфера.

Поскольку мы разрываем полилинии, у вас может быть разное буферное расстояние для каждой стороны (полилинии).

Затем у вас есть ручной шаг для вставки буферных расстояний для каждой полилинии.

Следующая модель:

  1. GRASS буфер переменной длины. (Используйте GRASS, потому что он допускает стиль без конца, поэтому концы не перекрывают другие стороны)
  2. Выпуклый корпус, чтобы исправить углы.

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

Оригинальный полигон:

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

  1. От многоугольника до ломаной линии:

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

  1. Взрывать полилинии.
  2. Добавить столбец буфера со значениями, добавленными вручную:

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

Модель 2:

  1. Буфер GRASS переменной длины с буферным столбцом. v.buffer.column с пометкой «Не делать заглушки на концах полилиний» отмечен галочкой:

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

  1. Выпуклый корпус для фиксации углов:

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

Углы, как мы хотим их. Если вы используете концевые заглушки, вы получаете много перекрытий с буферами на большие расстояния.

Модель 1:

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

Модель 2:

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

HeikkiVesanto
источник