Quando trabalhamos com ortomosaicos ou rasters muito grandes, um dos principais desafios é como armazenar e publicar esses dados com boa performance, sem sobrecarregar o servidor GIS.
Uma arquitetura moderna que vem sendo cada vez mais utilizada é baseada em:
- Cloud Optimized GeoTIFF (COG)
- MinIO ou Google Cloud Storage ou Amazon S3 (Object Storage)
- GeoServer
Essa combinação permite que o GeoServer leia diretamente rasters armazenados em object storage, sem precisar copiá-los para o servidor.
Neste post vou mostrar um passo a passo simples e prático para implementar essa arquitetura:

O ponto principal aqui é que o GeoServer não precisa armazenar o raster localmente. Ele apenas acessa o arquivo COG diretamente no storage.
1. Converter o raster para COG
O primeiro passo é converter o raster tradicional para Cloud Optimized GeoTIFF (COG). Isso pode ser feito utilizando o GDAL.
gdal_translate ortomosaico.tif ortomosaico_cog.tif \ -of COG \ -co COMPRESS=LZW \ -co BLOCKSIZE=512 \ -co BIGTIFF=YES \ -co OVERVIEWS=IGNORE_EXISTING
Parâmetros importantes
| Parâmetro | Função |
|---|---|
| -of COG | gera um Cloud Optimized GeoTIFF |
| COMPRESS=LZW | compressão sem perdas |
| BLOCKSIZE=512 | otimização para leitura em blocos |
| BIGTIFF=YES | necessário para arquivos grandes |
2. Verificar se o COG foi criado corretamente
Depois da conversão, é importante verificar se o arquivo foi gerado corretamente.
gdalinfo ortomosaico_cog.tif
No resultado deve aparecer algo como:
LAYOUT=COG
E também a presença de overviews:
Overviews: 28676x21832, 14338x10916, ...
Isso confirma que o arquivo está otimizado para leitura em nuvem.
3. Subir o arquivo para o storage (S3 ou MinIO)
Agora precisamos enviar o arquivo para um Object Storage.
Você pode utilizar:
- MinIO (self-hosted)
- Amazon S3
- Google Cloud Storage
No caso do MinIO, é comum utilizar o cliente mc.
Configurar o acesso ao servidor
mc alias set minio http://SEU_SERVIDOR:9000 ACCESS_KEY SECRET_KEY
Enviar o raster para um bucket
mc cp ortomosaico_cog.tif minio/rasters/
Após o upload, o arquivo ficará acessível em algo como:
http://servidor:9000/rasters/ortomosaico_cog.tif
4. Configurar o raster no GeoServer
Agora vamos configurar o raster no GeoServer.
Acesse a interface administrativa:
http://seu-servidor:8080/geoserver
Criar um novo Store
Vá em:
Stores → Add new Store
Escolha:
GeoTIFF / Cloud Optimized GeoTIFF
Informar a URL do COG
No campo de URL informe o caminho do arquivo:
http://servidor:9000/rasters/ortomosaico_cog.tif
Salve o store.
5. Publicar a Layer
Após salvar o store, o GeoServer detectará automaticamente o raster.
Basta clicar em:
Publish
Configure:
- Bounding Box
- CRS
- Nome da layer
Depois salve.
6. Testar o serviço
Agora o raster já pode ser acessado via:
- WMS
- WCS
- WMTS
Exemplo de endpoint WMS:
http://servidor:8080/geoserver/wms
Ou diretamente pelo Layer Preview do GeoServer.
7. Por que essa arquitetura é interessante?
Escalabilidade
O storage pode crescer independentemente do GeoServer.
Performance
O COG permite leitura parcial do raster utilizando HTTP Range Requests.
Ou seja, o cliente solicita apenas a parte da imagem que precisa.
Integração com cloud
A mesma arquitetura funciona com diversos serviços de object storage.
- Amazon S3
- MinIO
- Google Cloud Storage
8. Conclusão
A combinação de COG + Object Storage + GeoServer é hoje uma das formas mais eficientes
de publicar rasters grandes em ambientes WebGIS.
Essa abordagem permite:
- separar armazenamento e serviço
- escalar facilmente
- melhorar a performance de acesso aos dados
E o melhor: tudo pode ser implementado utilizando software open source.