Como estilizar rios e córregos no QGis

Rios e córregos estilizados

Nesse tutorial vamos estilizar rios e córregos levando em consideração o calibre de cada curso d’água, deixando as geometrias suaves e com rótulos bem colocados. Utilizaremos como software o QGis e os arquivos gratuitos disponibilizados pela Agência Nacional das Águas.

Esse artigo supõe que o leitor já tenha familiaridade com o QGis.

Baixando a camada de drenagens do ANA

Vamos utilizar a camada vetorial de drenagens disponibilizada pela Agência Nacional das Águas. Especificamente, vamos utilizar o arquivo gpkg chamado Trechos de Drenagem da Base Hidrográfica Ottocodificada 1:250.000.

Clique aqui para baixar (1GB)

Vamos utilizar essa camada pois ela é segmentada por trechos e cada trecho tem uma séries de dados úteis para a estilização, como o número de Strahler e a área de acumulação a montante.

Simplificando e Suavizando

Abra no QGis o arquivo baixado. Trata-se de um arquivo com muitas feições, de forma que pode demorar um pouco até mostrar tudo. Se você não for trabalhar com o Brasil inteiro, melhor recortar a camada para a região de interesse. Eu escolhi uma das bacias hidrográficas da Chapada dos Veadeiros e, para extrair apenas os rios necessários, utilizei a ferramenta Recortar o vetor pela camada de máscara (digite no campo de busca no canto inferior esquerdo da tela para encontrar).

Tendo em mãos a região específica de interesse, vá nas propriedades da camada e clique em Simbologia para alterar a aparência das linhas. O primeiro passo será diminuir um pouco a complexidade da geometria, ou seja, remover algumas curvas muito pequenas que tornam a visualização pouco agradável e dificultam a colocação dos rótulos. Permanecendo com Símbolo Simples, altere o Tipo de camada símbolo para Gerador de Geometria.

Selecionar Gerador de Geometria
Selecione Gerador de Geometria

Esse gerador é capaz de alterar a geometria de cada feição da camada apenas durante a visualização, não modificando verdadeiramente a geometria. Em Tipo de Geometria, selecione Linha/Multilinha. Adicione a seguinte fórmula no campo de texto:

smooth(simplify($geometry, 0.0008), 3, 0.25, -1, 180)

O simplify é uma operação que simplifica cada geometria da camada, retirando pequenas curvas e preservando o comportamento geral do desenho. O primeiro argumento dessa função é o $geometry, que indica cada feição da nossa camada, e o segundo argumento é número que indica a intensidade da simplificação. Em geral, esse número permanecerá bem baixo mesmo. Sinta-se livre para modificá-lo e ver as alterações correspondentes. No caso do smooth, sua função é suavizar o resultados da simplificação, que pode eventualmente gerar pontas agudas.

Clique em Aplicar e perceba as mudanças. Talvez seja necessário alterar os valores da fórmula no seu caso específico.

Cores e tamanhos

Escolha uma variação do azul para as linhas. Aqui estamos utilizando um azul mais pastel: #1084cc. Em Largura do traço, selecione Metros na escala e abra o editor de fórmulas no botão ao lado, como mostra a imagem abaixo.

Inserir fórmula para o campo Largura do traço
O botão Editar abrirá o janela de edição de fórmulas

O que queremos aqui é fazer com que cada rio ou córrego tenha uma grossura correspondente à sua área de acumulação. Ou seja, o Rio São Francisco terá grossura bem maior que um córrego pequeno de fundo de chácara, certo? Para fazer isso, vamos utilizar uma fórmula do tipo A + B*log(C, x). Sem entrar muito em detalhes, ela possui log para que a transição entre córrego pequenos e grandes rios seja melhor representada. Então, digite a seguinte fórmula na tela que se abriu:

12 + 25*log(5,”nuareamont”)

Esse “nuareamont” na fórmula é um dado de cada feição aferido pelo ANA, e significa a área a montante que contribuiu até aquele ponto do leito. Se os pequenos córregos estiverem pouco visíveis, tente modificar o primeiro número de 12 para outro maior. E se a transição entre córregos pequenos e rios estiver grosseira, altere o número 5 dentro do log. Teste e vá analisando! Aplique as alterações e confira as mudanças.

Ao invés de trabalhar diretamente com uma fórmula, você pode fazer variar o calibre dos leitos através do Assistente. Ao selecionar “nuareamont” lá no assistente, você tem a opção de trabalhar diretamente com uma curva (habilite a opção, que governará o calibre das linhas em função do valor do nuareamont, ou então parametricamente (definindo apenas os valores).

Ainda nas configurações de estilo da Linha Simples, adicione uma fórmula para o campo Estilo do traço. Dessa vez, adicione a fórmula:

if(“nustrahler” = 1 AND “nucomptrec” < 3, ‘dash’, ‘solid’)

Pequenos córregos nas cabeceiras representados com linhas tracejadas

Aqui o objetivo é mostrar de forma diferente os leitos de cabeceira, mais próximos da nascente. Daí usamos o “nustrahler”, que é outro dado do ANA. É um número inteiro que indica a complexidade da ramificação da malha de drenagens naquele ponto. Conforme os leitos vão desaguando um no outro, esse número vai aumentando. Leitos que não recebem água de nenhum outro possuem strahler = 1, ou seja, estamos falando daqueles leitos da cabeceira, bem a montante. A fórmula acima seleciona todos os segmentos com número de strahler igual a 1 e que possuem comprimento menor que 3 quilômetros e atribui a eles uma linha tracejada; todos os demais recebem uma linha sólida comum.

Estilizando rótulos

De agora em diante podemos ir mais rápido, já que faremos coisas parecidas. Selecione como Valor o campo nooriginal, que contém o nome do curso d’água. Coloque como cor da fonte a mesma que utilizamos para as linhas. Adicione a fórmula seguinte para o campo Tamanho da fonte:

6 + 2*log(2, “nustrahler” )

Novamente usando “nustrahler”, dessa vez para aumentar o tamanho da fonte conforme o “calibre” do curso d’água. O número 6 é o tamanho inicial da fonte, nenhum curso d’água será menor que isso.

Rio Macacão com rótulo um pouco maior que córregos e arroios

No menu Formatação, dê um espaçamento de 0,5 entre as letras e de 1 entre palavras.

No menu Renderização, role até as últimas opções e marque o checkbox Mesclar linhas conectadas para evitar rótulos duplicados. Isso é necessário porque o nosso arquivo contém segmentos de um mesmo rio ou córrego. Essa opção evita que um mesmo leito seja nomeado várias vezes consecutivas.

No menu Posicionamento, selecione o Modo Curvado para que os rótulos acompanhem a geometria das linhas. Coloque o campo Distância em 0.6 milímetros. No campo Repeating Labels (sim, está em inglês mesmo), coloque como Distância o valor 50000 metros na escala, fazendo com que um rótulo só repita para uma mesmo feição depois de 50 km de distância.

Visão geral do menu Posicionamento
Visão geral do menu Posicionamento

Ainda no menu Posicionamento, na caixa Ângulo máximo entre caracteres curvos insira o valor 30 nos dois campos disponíveis (dentro e fora). Logo abaixo, habilite o Gerado de Geometria e insira exatamente a mesma fórmula que colocamos na simbologia, fazendo com que o rótulo siga a mesma geometria suavizada:

smooth(simplify($geometry,0.0008),2,0.25,-1,180)

E pronto, terminamos! Claro que outras modificações ainda podem ser feitas, principalmente quando estamos falando de rótulos (parte mais complicada). Mas elas serão discutidas em outra oportunidade, especialmente quando outros elementos de um mapa estiverem envolvidos.

Se tiver dúvidas, comenta aí!

2 comments on “Como estilizar rios e córregos no QGis”

  1. Oii! Ótimo tutorial, muito obrigada!
    Só tive um problema com as formulas com log, aqui elas dão como inválidas.
    A de largura do traço consegui fazer pelo assistente, mas não sei como fazer com o tamanho da fonte.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *