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.