Cálculo do limite da imagem / pegada de imagens de satélite usando ferramentas de código aberto?

10

Preciso criar os contornos de polígonos de várias imagens raster de camada única, não a caixa de extensão / delimitação, mas a área sem os valores nodata, como mostrado aqui: Criando shapefile mostrando pegadas de Rasters? .

Na resposta à pergunta acima, o plugin Image Boundary foi mencionado, no entanto, não o encontro no QGIS 1.8.0 Lisboa, rodando no Ubuntu.

A ferramenta ainda está disponível?

Caso contrário, existe uma maneira de fazer isso usando ferramentas de código aberto, gdal, R, QGIS, GRASS ou similar, não com o ArcMap?

spib
fonte

Respostas:

4

Você pode adicionar o repositório antigo onde existem plugins no Repositório Oficial.

http://pyqgis.org/repo/contributed

O plugin de limite de imagem tem opção para calcular pixels válidos, mas a imagem precisa ser a cena completa, como CBERS ou Landsat, onde esse processo calcula os 4 primeiros cantos. A imagem precisa ter nodata com valor ZERO para a área sem geração de imagens (digitalizada pelo sensor de satélite).

Autor do Limite da Imagem

lmotta
fonte
Olá @lmotta, obrigado pelo link do repositório. As imagens nas quais estou trabalhando no momento são todas imagens SAR, com valores de NA (ou -3,4e + 38 de acordo com a ferramenta de valor no QGIS). Se alguém pudesse adicionar o valor nodata manualmente na ferramenta, em vez de ter ZERO como a única opção, seria ótimo; caso contrário, eu poderia primeiro executar um script em R para dar aos meus valores NA novos valores zero. É uma ótima ferramenta, obrigado!
Spib # 23/13
Existe um novo repositório para o Limite da Imagem? O link que você fornece é 404. Talvez o seguinte ?: github.com/lmotta/imagefootprint_plugin
Aaron
Existe algum lugar em que possamos encontrar documentação para o Limite da imagem?
Loonuh 15/01/19
11

Finalmente encontrei uma maneira de fazer isso:

passo 1: gdalwarp -dstnodata 0 -dstalpha -of GTiff foo1 foo2

Isso faz duas coisas importantes: define os valores de destino Sem dados (borda externa) como 0 e cria uma banda alfa.

passo 2: gdal_polygonize.py foo2 -b 2 -f "ESRI Shapefile" foo3

A segunda etapa usa a banda alfa (banda 2), criada na etapa 1, e cria um shapefile a partir dessa banda.

Isso pode ser facilmente roteirizado em um script bash, se você tiver muitas imagens, para criar contornos exatos.  

spib
fonte
Brilhante, esta solução não depende de nenhum plug-in ou software. Criar pegadas de varredura sensíveis ao NoData é uma daquelas tarefas de GIS que não são tão diretas quanto parecem.
Charlie Parr
Quando uso esse método, acabo com um shapefile cheio de polígonos que, suponho, representam cores diferentes agrupadas. Como posso evitar isso e acabar com apenas alguns polígonos que representam dados sim?
Loonuh 16/01/19
5

Eu usei gdal_translatecomo sugerido pelo projeto 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

insira a descrição da imagem aqui

user2856
fonte
11
Com a versão de tronco GDAL, agora é possível usar gdal_polygonize diretamente na imagem de origem osgeo-org.1560.x6.nabble.com/… . Alguma limpeza é necessária para remover os polígonos sem dados.
precisa saber é o seguinte
4

O plug-in Limite de Imagem também não funcionou para mim, portanto, usei a mesma abordagem com o GDAL. No entanto, só funcionou para mim depois de alterar o primeiro passo para:

passo 1 : gdalwarp -srcnodata 0 -dstalpha -of GTiff foo1 foo2

Estou trabalhando com a banda Landsat8 (onde não há dados = 0) e ao usar a -dstnodatafunção recebo:

band1 com nenhum dado = 'Não há dados'
Band2 (banda Alpha) = '255' para toda a cena / extensão

enquanto que com a -srcnodatafunção eu recebo:

band1 com nenhum dado = 'não há dados'
Band2 (alfa banda) sem dados = 'dados' e dados válidos = '255', que, em seguida, permite extrair apenas polígono para os dados válidos.

Eu não conseguia entender completamente a razão por trás desse comportamento (como o alfa é calculado?), Mas espero que isso ajude outras pessoas que enfrentam o mesmo problema.

dorakiara
fonte