Tôi đã trải qua những vấn đề tương tự mà bạn gặp phải trong phương pháp thứ hai của mình. Tôi đã xuất Raster sang Vector và thử và sử dụng v.generalise và tôi nhận được hầu hết các đa giác trơn tru với ranh giới 'bước' thỉnh thoảng dường như không bị ảnh hưởng bởi thuật toán.
Tôi đã tìm thấy một quy trình hoạt động cho nhiệm vụ của mình, không chắc đó có phải là cách tốt nhất hay không nhưng tôi nghĩ tôi sẽ chia sẻ nó trong trường hợp nó giúp được bạn.
Những gì tôi bắt đầu là một lưới ascii từ BoM trông như thế này:
Những gì tôi muốn một cái gì đó tương tự như những gì BoM sản xuất như thế này:
Tôi đã có thể đi đến một kết quả (mà tôi hài lòng) bằng các bước sau.
- Tải lưới (trong trường hợp của tôi là ASCII Grid từ BoM) vào QGIS.
- Được mã hóa thành các lớp rời rạc. (Hộp công cụ xử lý> Cỏ> Raster> r.recode)
- Chạy bộ lọc đa số để 'dọn sạch'. (Hộp công cụ xử lý> SAGA> Bộ lọc raster> Bộ lọc đa số)
- Tạo các đường viền từ lưới được lọc trong các khoảng 1 và lưu trữ chúng trong một 'lớp' thuộc tính (vì các lớp của tôi là 1,2,3,4, v.v.). (Raster 'Menu'> Trích xuất> Đường viền)
- Các đường viền đầu ra có phần khái quát, nhưng tôi đã sử dụng v.generalised với thuật toán 'rắn' để làm mịn chúng. (Hộp công cụ xử lý> Cỏ> Vector> v.generalize)
- Sau đó, tôi đã chuyển đổi các dòng thành đa giác. (Hộp công cụ xử lý> Thuật toán địa lý QGIS> Công cụ hình học vectơ> Dòng thành Đa giác)
- Cuối cùng tôi đã phải chuyển đổi các đa giác một phần thành nhiều phần, để tất cả các đa giác được vẽ độc đáo. (Hộp công cụ xử lý> Thuật toán địa lý của QGIS> Công cụ hình học vectơ> Singleparts to Mulitpart).
Sau khi tạo kiểu, đầu ra của tôi ở bên dưới:
Tôi cũng sẽ thích nghe nếu ai đó biết một cách đơn giản hơn. Ban đầu tôi đã suy nghĩ tương tự như @Rx_ rằng tôi chỉ có thể chuyển đổi raster của mình thành vector sau đó khái quát hóa và tôi sẽ hoàn thành. Những gì tôi phải làm là lâu hơn nhiều.