Zastanawiałem się, czy ktoś wcześniej miał problem z tego rodzaju problemami:
Chcę wytyczyć fragmenty na podstawie sąsiadujących pikseli tej samej klasy (lasu) o progu odległości 3 pikseli (co jest biologicznie istotne dla mojego interesującego gatunku).
Obawiam się, patrz załączony obraz na przykład, że czasami te fragmenty są w rzeczywistości korytarzami, a często korytarze i rzeczywiste fragmenty są grupowane w ten sam fragment ze względu na ich bliskość.
Zastanawiam się, czy istnieje sposób na odróżnienie korytarzy od fragmentów na podstawie kształtu, liczby otaczających pikseli itp.?
Na przykład w poniższym polu możliwe korytarze są oznaczone czerwonymi polami, a fragmenty zielonymi.
Mam dostęp do QGIS i R.
Odpowiedzi:
Przed rozpoczęciem jakiejkolwiek analizy zdecydowanie polecam zastosowanie filtra do danych, aby oczyścić efekt „soli i pieprzu”. Każdy algorytm będzie miał problemy z bieżącym wzorem strukturalnym twoich danych. Zwykła większość ogniskowa prawdopodobnie przyniosłaby niepożądane rezultaty. Bardziej niezawodną metodą jest zastosowanie podejścia sitowego, w którym można określić minimalną jednostkę mapującą. Można to zrobić za pomocą funkcji gdal_sieve.py w GDAL,
raster > analysis > sieve
funkcji w QGIS lub funkcji sit w ArcGIS Gradient Metrics Toolbox .To wygląda na coś, co można rozwiązać za pomocą operatorów morfologii matematycznej (np. Wyodrębnianie dróg ze zdjęć ). Wyobrażam sobie, że operator dylatacji, po którym następuje operator zamykający, wyjaśniłby korytarze. Następnie możesz zastosować operator otwierania, aby usunąć korytarze, i odróżnić rastry, aby wyciągnąć zidentyfikowane korytarze jako osobne obiekty. Tego rodzaju funkcje dekompozycji obrazu są w pewnym stopniu zautomatyzowane w oprogramowaniu MSPA i GUIDOS, ale po raz kolejny byłyby szczególnie odczuwalne przez nieciągłości danych.
Istnieje wtyczka QGIS dla MSPA, a także dostępne funkcje w GRASS (dostępne poprzez QGIS GUI). Jednym z problemów z MSPA i GUIDOS jest to, że masz ograniczony rozmiar obrazu. Niestety w oprogramowaniu ESRI operatory morfologiczne są dostępne tylko w rozszerzeniu ArcScan . Przy pewnym kopaniu znajdziesz inne opcje oprogramowania, a także metody definiowania operatorów morfologicznych za pomocą algebry rastrowej z niestandardowymi matrycami jądra.
Innym podejściem byłyby metody filtrowania z detekcją krawędzi, takie jak operator jądra Sobal . W ArcGIS Gradient Metrics Toolbox, a także w pakiecie spatialEco R., znajduje się funkcja Sobal . Zaletą implementacji R jest to, że możesz zwrócić funkcję gradientu operatora, podczas gdy implementacja ArcGIS zwraca tylko funkcję pierwszego rzędu (co może być wszystkim, czego potrzebujesz). Wierzę, że przybornik Orfeo (dostępny jako dodatek QGIS) ma opcję sobal w funkcji EdgeExtraction.
źródło
To nie jest pełne rozwiązanie, ale sprawdź te narzędzia do analizy łączności (pierwsza dobrze przybliża to, czego szukasz):
MSPA - Morfologiczna analiza wzoru przestrzennego ( http://forest.jrc.ec.europa.eu/download/software/guidos/mspa ) z zestawu narzędzi GUIDOS ( http://forest.jrc.ec.europa.eu/download/software / guidos ) i
Conefor Sensinode ( http://www.conefor.org/ ).
Zastanów się również nad szkoleniem algorytmu uczenia maszynowego, aby klasyfikować swoje wystąpienia (korytarz vs. fragmenty). Możesz nadać atrybuty przestrzenne na poziomie łaty (np. Rozmiar łaty, współczynnik powierzchni obwodu, stosunek okręgu) oraz cechy oparte na odległości (np. Odległość od fragmentów) w celu sklasyfikowania. Aby obliczyć funkcje poziomu poprawek potrzebne do klasyfikacji, możesz wypróbować FragStats ( https://www.umass.edu/landeco/research/fragstats/fragstats.html ).
Możesz także rozważyć prostszy „system reguł oparty na ekspercie”, aby sklasyfikować każdą instancję. Na przykład korytarze będą miały wyższy stosunek obwodu do powierzchni niż fragmenty siedlisk i tak dalej.
Bardziej interesujące rzeczy do analizy połączeń: http://conservationcorridor.org/corridor-toolbox/programs-and-tools/
Jednak fakt, że niektóre korytarze nie mają „łączności z pełnymi pikselami”, będzie problemem, który należy najpierw rozwiązać. Myślę, że musisz zdefiniować jakieś kryterium progowe oparte na odległości, aby zdecydować, czy jakiś piksel jest częścią korytarza, czy nie.
źródło
Wygląda na to, że zależy to od kształtu twojego fragmentu. Jeśli szerokość jest większa niż 2 (lub 3) razy wysokość (lub odwrotnie), możesz nazwać to korytarzem?
Czy doszedłeś już do delimitacji fragmentów?
źródło