Quando se faz um mosaico de dois rasters, o tamanho do raster resultante é quase sempre maior do que a soma dos tamanhos dos rasters originais. Por quê?

Colegas pesquisadores e entusiastas de SIG de código-livre,

Bem-vindos ao meu blog!

Gostaria de começar com um aviso - posso ser uma pesquisadora desta área, mas isso não significa que tudo o que faço ou escrevo aqui funcionará para você, em suas próprias configurações de desktop e versões de packages. Não tenho nenhuma responsabilidade se você perder dados ou estragar sua instalação. Eu também não autorizo nenhuma cópia do meu conteúdo.

Hoje, estou discutindo um efeito que pode ser visto quando se faz um mosaico de dois rasters: o raster resultante quase sempre usa mais espaço em disco do que a soma do espaço em disco dos rasters de entrada. Mas por quê?

- Resposta curta: seu software de SIG precisa preencher os espaços em branco no espaço em branco com pixels de valor NoData.

- Resposta longa: vou demonstrar o que acontece, por meio de um exemplo no QGIS 3.18, e mostrar porque o raster final tende a ser maior do que os outros dois somados.

Inicio com estes dois rasters (gerados aleatoriamente)

original rasters

E desejo juntar eles, fazendo, desta forma, um mosaico deles.

O raster da esquerda tem estas propriedades:

Dimensions X: 6 Y: 10 Bands: 1

Origin 324836,6.81631e+06

Pixel Size 10000,-10000

Traduzindo:

Dimensões X: 6 Y: 10 Bandas: 1

Origem 324836,6.81631e + 06

Tamanho do pixel 10000, -10000

E o da direita tem essas propriedades:

Dimensions X: 10 Y: 8 Bands: 1

Origin 938235,6.59132e+06

Pixel Size 10000,-10000

Traduzindo:

Dimensões X: 10 Y: 8 Bandas: 1

Origem 938235,6.59132e + 06

Tamanho do pixel 10000, -10000

O espaço em disco ocupado

Ambos os rasters estão salvos no formato GEOTIFF (.tif).

O da esquerda tem: 600 bytes

O da direita tem: 680 bytes

Juntando as duas camadas raster no QGIS

Para mesclar estes dois grids raster (fazendo um processo também conhecido como Mosaico), você pode usar a ferramenta do SAGA GIS “Mosaic Raster Layers” (pesquisável na Caixa de Ferramentas de Processamento - Processing Toolbox).

Eu adicionei as duas camadas raster para serem processadas pela ferramenta.

QGIS mosaic tool

O mosaico resultante, no mesmo formato de arquivo (.tif), ocupa 9,04 Kb, ou Kilo bytes. Isso é equivalente a 9040 bytes, ou seja, muito maior do que 600 + 680 = 1280 bytes ou ~ 1,3 Kb.

Para investigar por que isso acontece, primeiro, vamos dar uma olhada nas propriedades do raster resultante:

Dimensions X: 71 Y: 30 Bands: 1

Origin 324836,6.81132e+06

Pixel Size 10000,-10000

Traduzindo:

Dimensões X: 71 Y: 30 Bandas: 1

Origem 324836,6.81132e + 06

Tamanho do pixel 10000, -10000

O tamanho do pixel é o mesmo e a origem é quase igual à do primeiro dos rasters originais. Porém, as dimensões mostram que o raster resultante tem muito mais pixels do que a soma do número de pixels dos dois primeiros.

Primeiro raster: 6 x 10 = 60 pixels

Segundo raster: 10 x 8 = 80 pixels

Total: 140 pixels

Mosaico do primeiro e do segundo raster: 71 x 30 = 2130 pixels

O raster resultante tem 2130/140 = 15,21 vezes mais pixels do que os dois primeiros somados. Porém, por causa das compressões que o GEOTIFF aplica, se obtém um raster resultante que é apenas 9,04 / 1,28 = 7,06 vezes maior em termos de espaço físico.

Por que o arquivo raster do mosaico tem uma grande quantidade de pixels sem valor numérico?

Um raster é uma malha (grid) regular, então, quando se une dois ou mais rasters que estão distantes um do outro por meio de um mosaico, o algoritmo precisa ajustar as malhas dos rasters e preencher o espaço entre eles com pixels de valor NoData (sem dados).

Se eu selecionar a camada de mosaico e clicar no “espaço vazio” entre os dois rasters originais usando a ferramenta Identify Features do QGIS (Ctrl + Shift + I), isto aparecerá:

identify features, showing no data result

Mostrando que o pixel selecionado tem um valor atribuído, e esse valor é “no data” (sem dados). Isso ocupa espaço no arquivo raster.

Recomendação

Para economizar espaço no seu Disco Rígido, evite fazer mosaicos de rasters que estão distantes entre si, principalmente se eles tiverem uma resolução mais refinada (pois, nesse caso, usarão mais pixels).

Em rasters com resolução mais grossa, como os mostrados neste post, essa questão do espaço em disco não é tão importante. No entanto, isso é muito relevante quando se trata de grandes conjuntos de raster com grids bem refinados, pois isso irá gerar um maior número de pixels de “preenchimento” no espaço entre os rasters originais, e isso pode significar um aumento da ordem de Gigabytes no tamanho do raster resultante. Queremos evitar que isso aconteça.

Luísa Vieira Lucchese
Luísa Vieira Lucchese
Pós-doutoranda

Pós-doutoranda na Universidade de Pittsburgh

Relacionados