У мене виникли ті самі проблеми, що і у вашому другому методі. Я експортував растр у вектор і намагаюся використовувати v.generalise, і я отримую здебільшого гладкі багатокутники з випадковими «ступінчастими» межами, які, схоже, не впливають на алгоритм.
Я знайшов процес, який працював на моє завдання, не впевнений, чи це найкращий спосіб, але подумав, що поділюсь ним у випадку, якщо він допоможе вам.
З чого я почав - сітка Ascii від BoM, яка виглядала так:
Що я хотів щось подібне до того, що виробляють BoM так:
Мені вдалося дійти до результату (яким я був задоволений), виконавши наступні кроки.
- Завантажте сітку (в моєму випадку ASCII Grid від BoM) в QGIS.
- Перераховано на дискретні класи. (Обробка інструментів> Трава> Растр> r.recode)
- Запустіть фільтр більшості для 'очищення'. (Обробка інструментів> SAGA> Растровий фільтр> Фільтр більшості)
- Створював контури з відфільтрованої сітки з інтервалом у 1 та зберігав їх у атрибуті 'class' (бо мої класи були 1,2,3,4 тощо). (Растрове "Меню"> Витяг> Контур)
- Контури виходу дещо узагальнені, але я використовував v.generalilized за допомогою алгоритму «змій», щоб згладити їх. (Обробка інструментальної скриньки> Трава> Вектор> v.generalize)
- Потім я перетворив лінії на багатокутник. (Обробка інструментальної скриньки> Геоалгоритми QGIS> Інструменти векторної геометрії> Лінії до полігонів)
- Нарешті, мені довелося перетворити багатокутники з однієї частини на кілька частин, щоб усі полігони добре намалювались. (Обробка інструментальної скриньки> Геоалгоритми QGIS> Інструменти векторної геометрії> Одночасні Mulitpart).
Після стилізації вихідний результат нижче:
Мені також було б цікаво почути, якщо хтось знає простіший спосіб. Спочатку я думав, що схоже на @Rx_, що я міг би просто перетворити свій растр у векторний, а потім узагальнити, і я б це зробив. Те, що мені довелося зробити, було набагато набагато довше.