Muszę utworzyć kontury wielokątów kilku obrazów rastrowych jednowarstwowych, nie ramkę zasięgu / obwiedni, ale obszar bez wartości węzłów, jak pokazano tutaj: Tworzenie pliku kształtu pokazującego ślady rastrów? .
W odpowiedzi na powyższe pytanie wspomniano o wtyczce Image Boundary , jednak nie znalazłem jej w QGIS 1.8.0 Lisboa, działającej na Ubuntu.
Czy narzędzie jest nadal dostępne?
Jeśli nie, to czy można to zrobić za pomocą narzędzi typu open source, gdal, R, QGIS, GRASS lub podobnych, a nie ArcMap?
Odpowiedzi:
Możesz dodać stare repozytorium, w którym znajdują się wtyczki w oficjalnym repozytorium.
http://pyqgis.org/repo/contorted
Wtyczka granicy obrazu ma opcję obliczania prawidłowego piksela, ale obraz musi być pełną sceną, jak CBERS lub Landsat, gdzie proces ten oblicza pierwsze 4 rogi. Obraz musi mieć nodane z wartością ZERO dla obszaru bez obrazowania (skanowane przez czujnik satelitarny).
Autor Image Boundary
źródło
W końcu znalazłem sposób na zrobienie tego:
krok 1:
gdalwarp -dstnodata 0 -dstalpha -of GTiff foo1 foo2
Robi to dwie ważne rzeczy: ustawia docelowe wartości Brak danych (poza ramką) na 0 i tworzy pasmo alfa.
krok 2:
gdal_polygonize.py foo2 -b 2 -f "ESRI Shapefile" foo3
Drugi krok wykorzystuje pasmo alfa (pasmo 2), utworzone w kroku 1 i tworzy plik kształtu z tego pasma.
Można to łatwo napisać w skrypcie bash, jeśli masz wiele obrazów, aby stworzyć dokładne kontury.
źródło
Użyłem
gdal_translate
zgodnie z sugestią projektu GDAL.źródło
Wtyczka Image Boundary również nie działała dla mnie, dlatego zastosowałem to samo podejście do GDAL. Niemniej jednak zadziałało to dopiero po zmianie pierwszego kroku na:
krok 1 :
gdalwarp -srcnodata 0 -dstalpha -of GTiff foo1 foo2
Pracuję z pasmem Landsat8 (gdzie brak danych = 0) i podczas korzystania z
-dstnodata
funkcji otrzymuję:BAND1 z braku danych = „Brak danych”
band2 (Alpha band) = „255” dla całej sceny / stopniu
natomiast z
-srcnodata
funkcją otrzymuję:BAND1 z żadne dane = "Brak danych
band2 (alfa pasmo), bez danych =„brak danych”i ważne dane =„255”, która następnie umożliwia się wielokąta ekstraktu tylko dla ważnych danych.
Nie mogłem w pełni zrozumieć przyczyny tego zachowania (jak oblicza się alfa?), Ale mam nadzieję, że może to pomóc innym zmagającym się z tym samym problemem.
źródło
Granica obrazu pozostała nieaktualna. Możesz użyć wtyczki Footprint. http://pt.slideshare.net/LuizMotta3/qgis-ibama-imagefootprint
źródło