Introdução
Quem já trabalhou com dados do MapBiomas sabe o quão trabalhoso pode ser configurar a simbologia para múltiplas camadas de análise temporal. Repetir esse processo manualmente para cada ano é tedioso, propenso a erros e consome um tempo precioso que poderia ser dedicado à análise.
Pensando nisso, desenvolvi uma metodologia automatizada usando PyQGIS que permite aplicar a legenda oficial do MapBiomas em todas as camadas vetoriais de uma só vez. Neste tutorial, vou compartilhar cada etapa do processo que utilizei em projetos reais de mapeamento.
O que você vai aprender
- Converter raster MapBiomas para formato vetorial
- Limpar feições de borda indesejadas
- Fazer join com a legenda oficial
- Automatizar a aplicação de simbologia com PyQGIS
Pré-requisitos
- QGIS 3.x instalado
- Conhecimento básico de geoprocessamento
- Dados raster do MapBiomas (Coleção 10 ou superior)
- Legenda oficial do MapBiomas em formato CSV
Atenção
Este tutorial utiliza dados poligonizados. Para grandes áreas, o processo pode consumir recursos computacionais significativos. Considere trabalhar com recortes regionais se necessário.
Passo a Passo
Poligonizar o Raster
O primeiro passo é converter o raster MapBiomas para formato vetorial. Isso permite que façamos relações (joins) com tabelas externas e apliquemos simbologia categorizada.
No QGIS:
- Carregue seu raster MapBiomas (mapbiomas-brazil-collection-100-braganca-2024.tif) - baixe o arquivo deste tutorial
- Acesse: Raster → Conversão → Poligonizar (Raster para Vetor)
Na janela que se abre, configure:
- Camada de entrada: Seu raster MapBiomas
- Nome do campo da banda: DN (este campo armazenará o Code ID)
- Usar indexação de 8 conexões: Ativado (melhora a geometria)
- Saída: Deixe como "[Criar camada temporária]" - vamos salvá-la posteriormente
Resultado esperado
Você terá uma camada temporária com polígonos classificados, onde cada feição possui um atributo DN correspondente ao Code ID do MapBiomas.
Limpar Bordas
Durante a poligonização, são criadas feições indesejadas com valor DN = 0. Vamos removê-las para otimizar o desempenho e limpar a visualização.
Aplicar filtro de DN:
- Clique com botão direito na camada temporária → Filtrar...
- Ou acesse: Vetor → Ferramentas de Consulta → Selecionar por Expressão
Configure a expressão:
"DN" != 0
Aplique o filtro e exporte apenas as feições filtradas para uma nova camada temporária.
Fazer Join com a Legenda Oficial
Agora vamos enriquecer nossos dados conectando o campo DN com a legenda oficial do MapBiomas.
Preparar a legenda:
- Utilize o arquivo Legenda-Colecao-10-Legend-Code.csv (versão PDF oficial). Este CSV é uma extração do PDF oficial da legenda da Coleção 10 do MapBiomas.
- Adicione o CSV ao QGIS como camada
Configurar o Join:
- Clique com o botão direito na camada vetorial → Propriedades
- Vá até a aba Joins
- Clique no botão + verde
- Configure:
- Camada de junção: Legenda-Colecao-10-Legend-Code
- Campo de junção: Code ID
- Campo de destino: DN
- Campos unidos: Selecione "COLEÇÃO 10 - CLASSES" e "Hexacode Number"
- Marque "Campo personalizado e prefixo do nome"
- Delete o prefixo padrão, deixando o campo vazio (isso cria campos sem prefixo)
Importante: Persistir o Join
Joins no QGIS são voláteis por padrão. Para torná-los permanentes, você precisa salvar uma nova camada com os dados unidos:
- Clique com botão direito na camada → Exportar → Salvar Feições Como...
- Formato: ESRI Shapefile
- Salve em: shape/mapbiomas-brazil-collection-100-braganca-2024.shp
- Este passo consolida o join, fazendo os campos mesclados fazerem parte do shapefile definitivamente
- Após salvar, você pode descartar a camada temporária
Verifique o resultado:
Abra a tabela de atributos do shapefile salvo. Você deve ver os campos da legenda já incorporados:
Resultado
Agora seu shapefile possui os campos COLEÇÃO 10 - CLASSES e Hexacode Number permanentemente integrados.
Automatizar com PyQGIS
Vamos usar o console Python do QGIS para aplicar a simbologia em todas as camadas de uma vez.
Abrir o Console Python:
- No QGIS, acesse: Plugins → Console Python (ou pressione Ctrl+Alt+P)
Abrir o Editor:
- No console Python, clique no ícone "Mostrar Editor"
Carregar o Script:
- Baixe o script: Download script_simbologia_pyqgis.py
- No editor, clique em "Abrir Script" e selecione o arquivo baixado
Entendendo o Script
O script faz três coisas principais:
- Lê os valores únicos dos campos COLEÇÃO 10 - CLASSES e Hexacode Number
- Cria categorias de simbologia baseadas nessas informações
- Aplica o renderer categorizado em todas as camadas listadas
Configurar as Camadas:
Edite a linha 12-14 do script para listar todas as camadas que deseja estilizar:
LAYER_NAMES = [
"mapbiomas-brazil-collection-100-braganca-2024",
"mapbiomas-brazil-collection-100-braganca-2023",
"mapbiomas-brazil-collection-100-braganca-2022"
# adicione quantas camadas precisar
]
Executar e Visualizar o Resultado
Com tudo configurado, chegou a hora de executar o script.
- No editor Python, clique no botão "Executar script"
- Aguarde a mensagem de confirmação no console
Mensagens de Sucesso
Se tudo correu bem, você verá mensagens como:
Classes únicas encontradas: 29.
Simbologia aplicada com sucesso na camada: mapbiomas-brazil-collection-100-braganca-2024
Simbologia aplicada com sucesso na camada: mapbiomas-brazil-collection-100-braganca-2023
Processo de Simbologia Concluído.
Resultado final:
Todas as suas camadas agora estão com a simbologia oficial do MapBiomas aplicada automaticamente.
Vantagens desta Abordagem
- Velocidade: Aplica simbologia em dezenas de camadas em segundos
- Padronização: Garante cores consistentes com a legenda oficial
- Reprodutibilidade: Mesmos parâmetros geram mesmos resultados
- Escalabilidade: Funciona para qualquer quantidade de camadas
- Automação: Reduz trabalho manual e possibilidade de erros
Baixe os Arquivos do Tutorial
Acesse o repositório no GitHub para baixar o script, dados de exemplo e a legenda oficial.
Ver no GitHubConclusão
A automação de tarefas repetitivas é essencial para profissionais de geoprocessamento que trabalham com análises temporais extensas. Este tutorial demonstrou como o PyQGIS pode transformar horas de trabalho manual em segundos de processamento automatizado.
Espero que esta metodologia seja útil em seus projetos. Se tiver dúvidas ou sugestões, sinta-se à vontade para entrar em contato.