Szukam sposobu na przekształcenie sklasyfikowanego rastra w wielokąty na podstawie klastrów przestrzennych w każdej klasie. Aby klastry mogły zostać uznane za prawidłowe, muszą składać się z minimalnego odsetka komórek z jednej z klas.
Na przykład: Obszar składający się z 70% (lub więcej) komórek klasy „1” będzie uważany za klaster klasy „1”, nawet jeśli obszar ten zostanie pomieszany z 30% komórek należących do innych klas. Analiza grupowania powinna zatem opierać się na odległości między komórkami tej samej klasy.
Inną opcją może być oparcie klastrowania na minimalnej liczbie komórek w danej klasie wraz z definicją maksymalnego obszaru wyszukiwania.
Na przykład: W obrębie określonego obszaru powinno być 100 komórek „klasy 1”, aby można go było uznać za klaster.
Większość narzędzi związanych z klastrowaniem wydaje się działać tylko w przypadku wektorów. Przyjrzałem się analizie klastrów narzędzia SAGA, ale tak naprawdę nie pasowało to do mojego celu. Jakieś pomysły na rozwiązanie tego lub które inne narzędzia mogą być pomocne?
źródło
Odpowiedzi:
Jeśli wolisz rozwiązać ten problem w „logice rastrowej”, możesz rozważyć kilka filtrów. Najlepszy wybór będzie zależeć od przestrzennego rozmieszczenia pikseli każdej klasy wewnątrz wartości „tła”, ale oto dwa potencjalne rozwiązania:
jeśli łatki, które chcesz usunąć, są stosunkowo duże, powinieneś użyć „sita” (raster> analiza> sito w QGIS 3.2, który jest oparty na gdal_sieve.py).
Jeśli masz coś w rodzaju efektu „soli i pieprzu” (wiele izolowanych pikseli różnych klas, ale tylko kilka pikseli na małe ścieżki), powinieneś użyć filtra większości (np. Przechodząc do dodatkowych narzędzi z GRASS> raster> r. sąsiedzi> wybierz opcję „Tryb”). Pamiętaj, że ten filtr (nieznacznie) wpłynie na twoje granice.
W narzędziach SAGA (SAGA> filtr rastrowy) znajdziesz te same filtry (Filtr większości, klasy przesiewania) i inne (morfologia)
źródło