У меня был ограниченный успех в создании гладких контурных полигонов из растровых слоев.
Я создал контурные линии и граничные полилинии, а затем использовал QGIS Union. Затем я использую QGIS Polygonize. Затем используйте зональную статистику для исходного растра, чтобы получить значение для полигонов.
Второй метод, который я попробовал, состоял в том, чтобы преобразовать растр в полигон. Затем создайте новый столбец атрибута, округленный до желаемого контура. Затем я растворяю линии между одинаковыми значениями. Тогда используйте v.generalize. Этот метод немного быстрее, но некоторые полигоны будут зазубренными / не сглаженными.
Есть ли более простой метод, который на самом деле работает все время. Похоже, должна быть простая команда, которая выполняет весь процесс.
Ответы:
Я столкнулся с теми же проблемами, что и у вас во втором методе. Я экспортировал растр в вектор и попытался использовать v.generalise, и я получаю в основном гладкие многоугольники со случайной «ступенчатой» границей, которая, по-видимому, не была затронута алгоритмом.
Я нашел процесс, который сработал для моей задачи, но не уверен, что это лучший способ, но подумал, что поделюсь им, если он вам поможет.
Я начал с сетки ascii от BoM, которая выглядела так:
Что я хотел что-то похожее на то, что производит BoM, как это:
Я смог достичь результата (которым я был доволен), используя следующие шаги.
После стилизации мой вывод ниже:
Мне также было бы интересно услышать, если кто-то знает более простой способ. Первоначально я думал, как @Rx_, что я мог бы просто преобразовать свой растр в вектор, а затем обобщить, и все будет готово. То, что я должен был сделать, было намного дольше.
источник
Мне нравятся ответы здесь, но я не могу поверить, что в QGIS все еще нет быстрого и простого способа сделать это. MapInfo может генерировать контуры в виде полигонов или линий с любым интервалом, который вы можете указать.
Кажется, это такая основная задача, а также важно для получения экстентов. Если у кого-то есть обновленный или более быстрый способ сделать это, пожалуйста, поделитесь!
источник
Более прямой способ - использовать
gdal_countour
напрямую (как программа командной строки) в «многоугольном режиме» (то есть с-p
опцией).Пример:
Документация: https://gdal.org/programs/gdal_contour.html
Эта опция доступна только в версии> = 2.4 (это можно проверить с помощью
gdalinfo --version
). Если вы используете Ubuntu 18.4, возможно, вам придется установить его из UbuntuGISисточник
В QGIS 3.8 вы можете использовать Растр - Извлечение - Контур
Вот хороший пример здесь https://support.dronesmadeeasy.com/hc/en-us/articles/217759823-Using-QGIS-to-make-custom-Contour-Maps
источник