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?


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


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.  


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


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.


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.