Cortar imagem raster aumenta o tamanho do arquivo

9

Trabalhando com o QGIS 2.4.0 Chugiak, tenho uma pergunta sobre o recorte de imagens raster. Tenho uma imagem aérea que quero recortar usando as extensões de um arquivo de forma. Até aí tudo bem, usei a ferramenta raster / extract / clipper para fazer isso. O problema é que o tamanho do arquivo da minha varredura de saída é quase três vezes maior que o arquivo original (ou seja, 725.283 e 249.693 kb, respectivamente), enquanto cobre uma superfície menor.

Por que meu arquivo é maior? E existe alguma maneira de 'definir' o tamanho do arquivo de saída?

A função de ajuda do clipper se refere à seguinte página: http://www.gdal.org/gdal_translate.html Embora eu não possa tirar muito proveito dela.

Eu sou relativamente novo no QGIS.

Mathijs
fonte
Normalmente, isso significa que o original está compactado, mas o tiff recortado não está compactado. Você deve ler sobre o driver GDAL GeoTIFF e as opções de compactação.
user30184
Se você deseja usar a compactação no seu conjunto de dados de saída, edite o comando, conforme mostrado na parte inferior da interface do clipper, e incorpore as opções de criação com o -cosinalizador. Para um GeoTiff, você pode, por exemplo, incluir o -co compress=lzwemprego de compactação LZW sem perdas. Precisamos saber mais sobre o seu conjunto de dados para poder ajudá-lo (por exemplo, via gdlainfo).
26415 Kersten
Imagens TIFF não compactadas são geralmente mais rápidas.
Zoltan
Obrigado a todos pelas respostas. Isso pode realmente ser um problema de compressão, eu não havia pensado nisso. Sim Kersten Notei o console na interface do clipper, embora ainda não tenha descoberto como usá-lo. Estou tentando executar o gdalinfo no console Python no QGIS, mas não tenho experiência com isso. Alguém sabe de um tutorial adequado para me familiarizar? Cheers
Mathijs
Você pode ir para Raster > Miscellaneous > Informationter gdalinfoexecutado em seu arquivo raster. Você não pode executá-lo diretamente no console do Python, porque não é um script Python.
bosth

Respostas:

6

Quando você executa a ferramenta de clipe de varredura no QGIS, ela mostra o comando GDAL exato que será executado na seção inferior da caixa de diálogo.

Ferramenta de clipe de varredura

Ao clicar no botão da caneta à direita do comando, você pode editá-lo diretamente e adicionar uma opção de configuração de compactação. No meu exemplo, este é o comando inicial:

gdalwarp -q -cutline /tmp/mask.shp -crop_to_cutline -of GTiff /tmp/453A.tif /tmp/output.tif

Você pode alterar isso para:

gdalwarp -q -cutline /tmp/mask.shp -crop_to_cutline -of GTiff -co "COMPRESS=LZW" /tmp/453A.tif /tmp/output.tif

O extra -co "COMPRESS=LZW"é apenas uma das muitas opções de compactação possíveis que você pode usar com arquivos GeoTIFF. A documentação GDAL tem mais informações sobre todas as opções.

bosth
fonte
Muito obrigado, era exatamente o que eu precisava. O arquivo ainda tem 409.019 kb, quase o dobro do tamanho do original, mas a renderização é muito mais rápida. Esse site que eu tinha visto, mas não conseguia entender muito. Gdalinfo mostrou que a compressão foi realmente 'irritada' para o primeiro clipe, então esse era realmente o problema.
Mathijs
Quando você executa gdalinfo, o que é reportado para compactação? Deveríamos ser capazes de replicá-lo no segundo arquivo assim que soubermos. Meu palpite é que pode ser com perda de JPEG se for consideravelmente menor que o LZW.
bosth
É o que diz a imagem original: 'Tamanho do pixel = (0.000738433000001, -0.000738432999949) Metadados: AREA_OR_POINT = Metadados da estrutura da imagem da área: COMPRESSION = LZW INTERLEAVE = PIXEL' e é o que diz a imagem cortada: 'Tamanho do pixel = (0.000738423955088, -0.000738437979722) Metadados: AREA_OR_POINT = Metadados da estrutura da imagem da área: COMPRESSION = LZW INTERLEAVE = PIXEL '
Mathijs
É possível que você tenha obtido acidentalmente os metadados da mesma imagem duas vezes, pois os dois são iguais?
bosth
Eles não são, olhe para o tamanho do pixel;)
Mathijs
0

Atualização para o QGIS versões 3 e posteriores: a opção de compactação agora está integrada no plug-in Raster-> Extraction-> Clip raster by mask layere na maioria dos outros plug-ins que produzem arquivos rasterizados.

Em Advanced parameters-> Profile, selecione um Low compressionou High compressionirá gerar um arquivo menor.

Essas opções de compactação são sem perdas, mas você também pode escolher opções com perdas:

  • Low compression -> -co PACKBITS(sem perdas)
  • High compression-> -co DEFLATE(sem perdas)
  • JPEG compression-> -co JPEG_QUALITY=75(com perdas: cuidado!)

Clip raster por camada de máscara

RafDouglas
fonte