Obliczanie granicy / śladu obrazu satelitarnego przy użyciu narzędzi open source?


10

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:


4

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


Cześć @lmotta, dzięki za link do repozytorium. Obrazy, nad którymi obecnie pracuję, to wszystkie obrazy SAR z wartościami NA (lub -3,4e + 38 zgodnie z narzędziem wartości w QGIS). Gdyby można było ręcznie dodać wartość nodata do narzędzia, zamiast ZERO jako jedynej opcji, byłoby świetnie, w przeciwnym razie mógłbym najpierw uruchomić skrypt w R, aby nadać moim wartościom NA nowe wartości zero. To świetne narzędzie, dzięki!
— śr

Czy istnieje nowe repozytorium dla Image Boundary? Podany przez Ciebie link to 404. Może następujący ?: github.com/lmotta/imagefootprint_plugin
— Aaron

Czy jest gdzieś, gdzie możemy znaleźć dokumentację dotyczącą Image Boundary?
— Loonuh

12

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.  


Genialne, to rozwiązanie nie opiera się na żadnych wtyczkach ani oprogramowaniu. Tworzenie śladów rastrowych wrażliwych na NoData jest jednym z tych zadań GIS, które nie są tak proste, jak się wydaje, że powinno być.
— Charlie Parr

Kiedy używam tej metody, otrzymuję plik kształtu wielokąta, który, jak zakładam, reprezentuje różne kolory zgrupowane razem. Jak mogę tego uniknąć i skończyć z kilkoma wielokątami reprezentującymi tak-dane?
— Loonuh

5

Użyłem gdal_translatezgodnie z sugestią projektu GDAL.

gdal_translate -b mask -of vrt -a_nodata 0 test.tif test.vrt
# Note the  -a_nodata 0 doesn't seem to work when the mask is input, so do another pass
gdal_translate -b 1 -of vrt -a_nodata 0 test.vrt test2.vrt
gdal_polygonize.py -q  -8 test2.vrt -b 1 -f "ESRI Shapefile" testdata.shp

wprowadź opis zdjęcia tutaj


1
W wersji trunk GDAL można teraz używać gdal_polygonize bezpośrednio na obrazie źródłowym osgeo-org.1560.x6.nabble.com/… . Jednak potrzebne jest pewne czyszczenie w celu usunięcia wielokątów bez danych.
— user30184,

4

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 -dstnodatafunkcji otrzymuję:

BAND1 z braku danych = „Brak danych”
band2 (Alpha band) = „255” dla całej sceny / stopniu

natomiast z -srcnodatafunkcją 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.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.