Wystąpiły te same problemy, które masz w drugiej metodzie. Wyeksportowałem Raster do Vectora i spróbowałem użyć v.generalise i uzyskuję głównie gładkie wielokąty z okazjonalną „schodkową” granicą, która wydaje się być niezależna od algorytmu.
Znalazłem proces, który zadziałał dla mojego zadania, nie jestem pewien, czy to najlepszy sposób, ale pomyślałem, że podzielę się nim na wypadek, gdyby Ci pomógł.
Zacząłem od siatki ascii z BoM, która wyglądała tak:
Czego chciałem czegoś podobnego do tego, co produkują BoM w ten sposób:
Byłem w stanie dojść do wyniku (z czego byłem zadowolony), wykonując następujące kroki.
- Załaduj siatkę (w moim przypadku ASCII Grid z BoM) do QGIS.
- Przekodowane na odrębne klasy. (Processing Toolbox> Grass> Raster> r.recode)
- Uruchom filtr większościowy, aby „wyczyścić”. (Processing Toolbox> SAGA> Filtr rastrowy> Filtr większości)
- Tworzyłem kontury z filtrowanej siatki w odstępach 1 i zapisywałem je w atrybucie „klasa” (ponieważ moje klasy to 1,2,3,4 itd.). (Raster „Menu”> Ekstrakcja> Kontur)
- Kontury wyjściowe są nieco uogólnione, ale użyłem v. Generalizacji z algorytmem „węży”, aby je wygładzić. (Przybornik przetwarzania> Trawa> Wektor> v. Generalizacja)
- Następnie przekształciłem linie w wielokąt. (Przybornik przetwarzania> Geoalgorytmy QGIS> Narzędzia geometrii wektorowej> Linie do wielokątów)
- W końcu musiałem przekonwertować wielokąty jednoczęściowe na wiele części, aby wszystkie wielokąty rysowały się ładnie. (Przybornik przetwarzania> Geo-algorytmy QGIS> Narzędzia geometrii wektorowej> Jednoczęściowe do Mulitpart).
Po stylizacji moje wyniki są poniżej:
Byłbym również zainteresowany słyszeniem, jeśli ktoś zna prostszy sposób. Początkowo myślałem podobnie do @Rx_, że mogę po prostu przekonwertować raster na wektor, a następnie uogólnić i skończyć. To, co musiałem zrobić, było znacznie dłuższe.