He experimentado los mismos problemas que tienes en tu segundo método. Exporté un Ráster a un Vector e intento usar v.generalise y obtengo polígonos suaves en su mayoría con el límite 'escalonado' ocasional que parece no haber sido afectado por el algoritmo.
Encontré un proceso que funcionó para mi tarea, no estoy seguro de si es la mejor manera, pero pensé en compartirlo en caso de que te ayudara.
Con lo que comencé fue con una cuadrícula ascii de BoM que se veía así:
Lo que quería era algo similar a lo que BoM produce así:
Pude llegar a un resultado (con el que estaba feliz) usando los siguientes pasos.
- Cargue la cuadrícula (en mi caso, la cuadrícula ASCII de BoM) en QGIS.
- Recodificado en clases discretas. (Caja de herramientas de procesamiento> Grass> Ráster> r.recode)
- Ejecute un filtro mayoritario para 'limpiar' (Caja de herramientas de procesamiento> SAGA> Filtro ráster> Filtro mayoritario)
- Creé contornos de la cuadrícula filtrada a intervalos de 1, y los almacené en un atributo 'clase' (porque mis clases eran 1,2,3,4, etc.). ('Menú' de ráster> Extracción> Contorno)
- Los contornos de salida están algo generalizados, pero utilicé v.generalized con el algoritmo 'snakes' para suavizarlos (Processing Toolbox> Grass> Vector> v.generalize)
- Luego convertí las líneas a polígono. (Caja de herramientas de procesamiento> Geoalgoritmos QGIS> Herramientas de geometría vectorial> Líneas a polígonos)
- Finalmente, tuve que convertir los polígonos de una sola parte en varias partes, para que todos los polígonos se dibujaran bien. (Caja de herramientas de procesamiento> Geoalgoritmos de QGIS> Herramientas de geometría vectorial> Partes individuales a Mulitpart).
Después de diseñar mi salida está a continuación:
También me interesaría saber si alguien conoce una forma más simple. Originalmente estaba pensando de manera similar a @Rx_ que podría convertir mi ráster a vector y luego generalizar y ya estaría. Lo que tuve que hacer fue mucho más largo.