Я столкнулся с теми же проблемами, что и у вас во втором методе. Я экспортировал растр в вектор и попытался использовать v.generalise, и я получаю в основном гладкие многоугольники со случайной «ступенчатой» границей, которая, по-видимому, не была затронута алгоритмом.
Я нашел процесс, который сработал для моей задачи, но не уверен, что это лучший способ, но подумал, что поделюсь им, если он вам поможет.
Я начал с сетки ascii от BoM, которая выглядела так:
Что я хотел что-то похожее на то, что производит BoM, как это:
Я смог достичь результата (которым я был доволен), используя следующие шаги.
- Загрузите сетку (в моем случае ASCII Grid от BoM) в QGIS.
- Перекодировано в дискретные классы. (Панель инструментов обработки> Трава> Растр> r.recode)
- Запустите мажоритарный фильтр для «очистки» (Панель инструментов обработки> SAGA> Растровый фильтр> Мажоритарный фильтр).
- Создавал контуры из отфильтрованной сетки с интервалом 1 и сохранял их в атрибуте «класс» (потому что мои классы были 1,2,3,4 и т. Д.). (Растр 'Меню'> Извлечение> Контур)
- Контуры вывода несколько обобщены, но я использовал v.generalised с алгоритмом «змей», чтобы сгладить их (Инструменты обработки> Трава> Вектор> v.generalize)
- Затем я преобразовал линии в многоугольник. (Панель инструментов обработки> Геоалгоритмы QGIS> Инструменты векторной геометрии> Линии в многоугольники)
- Наконец, мне пришлось преобразовать отдельные полигоны в несколько частей, чтобы все полигоны хорошо рисовали. (Панель инструментов обработки> Геоалгоритмы QGIS> Инструменты векторной геометрии> Отдельные части в многочастную).
После стилизации мой вывод ниже:
Мне также было бы интересно услышать, если кто-то знает более простой способ. Первоначально я думал, как @Rx_, что я мог бы просто преобразовать свой растр в вектор, а затем обобщить, и все будет готово. То, что я должен был сделать, было намного дольше.