Como gerar uma visualização surpreendente de rios, arroios, e redes de drenagem usando o QGIS 3.20 ou superior
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.
As simbologias disponíveis para representar linhas no QGIS passaram por melhorias na última versão 3.20 “Odense” do QGIS. Ao longo do tempo, eu vou encontrando mais maneiras de aproveitar essas novas possibilidades.
A primeira coisa que eu pensei quando vi a simbologia “Interpolated Line” ou “Linha Interpolada” (descrevi essa funcionalidade neste post) foi que ela seria útil para representar redes de drenagem.
Hoje, é isto que vamos explorar, formas inovadoras de representar sua rede fluvial para retratar a bacia hidrográfica da sua área de estudo de uma forma ainda mais elegante e informativa, utilizando a funcionalidade “Interpolated Line”.
Vou demonstrar isso no shapefile da rede de drenagem da bacia do Rio Camaquã, RS, Brasil. Tenho o arquivo vetorial da rede de drenagem local, extraído a partir de um shapefile de redes de drenagem disponível no site do IBGE.
Estou usando o QGIS 3.20 “Odense” para este tutorial. Você precisará desta versão ou de uma versão posterior do QGIS (que atualmente não existe, o lançamento do QGIS 3.22 está pré-agendado para 22/10/2021).
1) Ajustar a direção das linhas que compõem a rede de drenagem
Para saber a direção das linhas em um vetor, altere sua simbologia de “Simple Line” (Linha Simples) para “Arrow” (Seta).
Dando zoom na rede de drenagem, você pode ver para onde cada linha “aponta”. Para que a análise da ordem de cada trecho fluvial funcione, as setas devem apontar na direção do fluxo.
Portanto, qualquer segmento que esteja apontando na direção errada deve ser invertido.
Nesta parte, todos os segmentos estão apontando na direção errada. Vou invertê-los.
Primeiro, ative o modo de edição. Em seguida, no painel Advanced Digitizing ou Digitalização Avançada (caso não esteja vendo este painel, ative-o no menu “View”), clique em “Reverse Line” (Inverter Linha).
Clique nos segmentos de linha para invertê-los.
Faça o mesmo para todo o vetor e, em seguida, salve suas edições e aperte no lápis, que é o ícone do “Toggle Editing” (alternar modo de edição).
Quando todas as linhas apontarem na direção certa e você tiver salvo o arquivo, já pode passar para a próxima etapa. Mas se algum dos trechos da rede de drenagem ainda estiver invertido e você não notar, não se preocupe, pois você terá a chance de arrumar isso mais tarde.
2) Calcule a ordem de cada trecho do rio
Isso será útil para ajustar a simbologia da nossa rede de drenagem posteriormente.
Descobri que a maneira mais fácil de calcular a ordem de cada trecho de uma rede de drenagem é usar o plugin Hy2roresO. Ele não está disponível no Gerenciador de plug-ins do QGIS, portanto, precisa ser baixado separadamente. Em ambientes Windows, baixe o arquivo ZIP e coloque a pasta extraída em “python/plugins/”, a qual está dentro da sua pasta de instalação do QGIS. Veja instruções mais detalhadas aqui.
Depois de baixar o Hy2roresO, você precisa ativá-lo no gerenciador de plug-ins. No menu do QGIS, clique em “Plugins”, depois em “Manage and Install Plugins” (Gerenciar e Instalar Plugins). Selecione “Installed” (Instalado) na barra lateral e marque a caixinha do Hy2roresO. O ícone do Hy2roresO deve aparecer na sua tela:
Antes de clicar nele, verifique o tipo do seu vetor de entrada. Deve ser “Line” (Linha) ou “LineString”. Se for “MultiLineString” (multilinha), use a ferramenta “Multipart to Singleparts” para separar as linhas. Se você está trabalhando com um arquivo vetorial do tipo shapefile ESRI (.shp), é melhor salvá-lo no formato Geopackage. Ligue o modo de edição antes de executar o plugin.
Clique no ícone do Hy2roresO.
Escolha a camada de entrada e os tipos de ordem que você deseja calcular. Atualmente disponíveis estão o Número de Strahler, Horton e Shreve. Em minha opinião, o de Shreve funciona melhor para o que pretendemos representar, porque tornará as linhas resultantes da confluência de dois grandes afluentes mais grossas. No entanto, o Número de Strahler é útil para detectar orientações de linhas que ainda estejam erradas.
Clique em “Next”. Não preenchi nada nesta tela e funcionou mesmo assim, mas se você quiser colocar essas informações, talvez ajude o algoritmo nos cálculos.
Clique em “Next”. Não marquei a opção de salvar a camada de saída (Save the output layer), porque este plugin cria colunas extras na Tabela de Atributos da sua própria camada de entrada, o que eu achei mais útil. De qualquer forma, é sempre bom ter um backup seguro da camada de entrada.
Se você clicar em “Next”, verá informações sobre o plugin. Para executar a análise, você precisa clicar em “OK”.
Uma caixa de diálogo como esta pode aparecer:
Como você já ajustou suas linhas para esta análise, provavelmente não há segmentos a serem invertidos. Clique em “No to all” (Não para todos). Quando terminar, você deverá ver esta caixa de diálogo:
Clique em OK.
3) Altere a simbologia da camada para testar os resultados
Abra as Propriedades e clique em “Symbology” no menu à esquerda. Clique em “Simple Symbol” (Símbolo simples) e mude para “Graduated” (graduado). No campo “Value” (valor), encontre uma das ordens calculadas. Clique em “Classify” (classificar) e depois em “Apply” (aplicar).
Olhe a representação da camada:
Analisando essa imagem, vejo que a parte superior direita da bacia ainda tem algumas linhas a serem invertidas. Mude a simbologia para mostrar novamente as flechinhas e inverta as linhas que ainda precisam ser invertidas. Antes de executar Hy2roresO novamente, você deve excluir as colunas geradas na última análise. Entre na Tabela de Atributos, entre no Modo de Edição e clique em “Delete Field” (Excluir Campo). Selecione os campos “Strahler”, “Horton”, “id_stroke”, “shreve” e “reversed” para exclusão. Em seguida, salve suas edições.
Execute o plug-in novamente e verifique os resultados. Ajuste conforme necessário. Refaça esse processo tantas vezes quantas for necessário.
4) Use a simbologia de linha interpolada para representar as linhas
Na simbologia, escolha “Interpolated Line”.
Em “Stroke Width” (largura da linha) escolha “Varying width” (largura variável):
Escolhi a ordem de Shreve para a minha representação da bacia, porque nela, somam-se as ordens dos dois afluentes para calcular a ordem do trecho à jusante, o que acredito que fornecerá um efeito visual mais bonito, mas você pode escolher o tipo de ordem que achar mais adequada para o seu mapa.
A regra principal para essa representação é que o valor inicial (Start Value) deve ser menor que o valor final (End Value) para a espessura da linha e ambos devem depender de uma das ordens calculadas. Teste uma série de valores mínimos e máximos, pois estes podem alterar fundamentalmente a representação. Em seguida, escolha uma cor única para todo o vetor ou aplique uma expressão para as cores das linhas também.
Max value = 1 gera:
Max value = 10 gera:
Max value = 50 gera:
Qual escolher? Isso depende do seu objetivo, outros elementos no mapa, etc.
Minha rede de drenagem, a este ponto, está assim:
Adicionando também uma interpolação na cor das linhas, fica assim:
Ficou legal com os outros elementos do mapa:
Fontes: TOPODATA, INPE, IBGE, Natural Earth.
Você pode mudar as cores como quiser. Esta é outra versão do meu mapa, com um gradiente personalizado:
Fontes: TOPODATA, INPE, IBGE, Natural Earth.
Extras
- Como você deixou igual a cor do Rio Camaquã e a da Lagoa dos Patos?
Mudei a simbologia da Lagoa dos Patos, escolhendo a cor de preenchimento, clicando no Rio Camaquã.
- E se eu quiser ajustar a simbologia de cada trecho individualmente, dá para fazer isso?
Com certeza. Na simbologia, em vez de “Single Symbol”, escolha “Categorized” e preencha o Value como “fid”. Desta forma, cada trecho da sua rede fluvial pode ter um símbolo diferente. Clique duas vezes em cada um dos fid e altere o estilo da linha. Dessa forma, você pode combinar as cores dos trechos para que elas fiquem perfeitamente contínuas. Você não precisa alterar o gradiente para cada um, apenas o valor inicial e o valor final dentro do mesmo intervalo, para que a representação da linha use a parte certa do gradiente. Este é um exemplo de como fica: