Создание полигонов городского следа из строительных кластеров в QGIS?

10

Я не уверен, что правильный термин, но это общий шаблон картографического дизайна.

Я хочу показать контур населенных пунктов в виде заполненного многоугольника под слоями дороги и зданий.

В OpenStreetMap такие области иногда доступны как landuse = residential . Я подозреваю, что все они будут отслежены вручную.

Вот пример, это Гибралтар. Я оцифровал этот контур вручную и подрезал его к береговой линии. «Городской след» состоит из пурпурно-розовых областей (они были расширены до моря, а затем обрезаны до контура земли из OpenStreetMapData)

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

Есть ли в QGIS инструмент (или другие инструменты FOSS GIS), чтобы автоматически генерировать их из набора зданий?

Два подхода я уже пробовал ...

  • Я попробовал плагин вогнутой оболочки, но получил только одну область.
  • Я также попробовал триангуляцию Делоне на узлах, извлеченных из контуров здания. Я подозреваю, что если я могу отбросить большие полигоны или те, у которых очень острые углы между вершинами, это может сработать ...
Стивен Кей
источник
2
Вы на правильном пути. Примитивный способ сделать это - буферизовать, буферизовать. Буферизировать ваши здания константой, растворять ваши буферы, отбрасывать «маленькие» буферы (несколько изолированных зданий), а затем буферизовать отрицательной вашей константой, чтобы вернуть контур обратно к вашему. здания ... значения для константы и малости субъективны, вам придется попробовать несколько значений и посмотреть, что вам подходит.
Майкл Стимсон
спасибо, попробую! Мне, вероятно, понадобится способ «выровнять» края, чтобы избежать очевидного буферизованного вида, но недавно я обнаружил, что у GRASS есть опция «сделать углы прямыми» ...
Стивен Кей

Ответы:

10

Я смог получить довольно неплохие результаты, благодаря Майклу Стимсону за предложение.

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

Предпринятые шаги: -

  • Работаю в локальной UTM-проекции, поэтому я работаю в Meters (использовал плагин Projestions , который предлагал EPSG: 3857)
  • буфер наружу на 30 метров. Любые более высокие и четкие кластеры начинают сливаться
  • буфер внутрь на -25 метров
  • multipart to singlepart для разделения буферов
  • вручную удалить изолированные буферы вокруг изолированных зданий и отдаленных кластеров
  • заполнить несколько небольших отверстий вручную с помощью инструмента «Удалить кольцо»

Значения могут быть изменены в соответствии с общей плотностью корпуса. Гибралтар довольно густонаселен, и, возможно, ценности должны подняться в другом месте.

Наконец, чтобы получить тот вид, к которому я стремился, использовал Geometry упрощение , допуск 20 м.

Это удаляет артефакты буфера «за углом» и дает ощущение «рисованной руки»:

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

Мне все еще было бы интересно услышать о каких-либо лучших / других способах сделать это :)

Стивен Кей
источник
1
Буферизация может позволить уменьшить количество сегментов, используемых для кривых, если вы используете низкое число на этапе буферизации, это может выглядеть аналогично.
bugmenot123
Я пытался дать наглядность этому интересному вопросу, но другие подходы не появились. Однако я назначаю вознаграждение вашему ответу, поскольку он показывает хорошие результаты.
МГРИТЕ