Como criar perfis longitudinais de rios usando QGIS e Python?

Confira nosso curso online de QGIS

Para que serve um perfil longitudinal de um rio? Descubra a função desse perfil e veja como criar ele usando QGIS e Python.

Existem várias formas de descrever, fisicamente, uma bacia hidrográfica. Temos a área da bacia, perímetro, fator de forma, densidade de rios, entre outros. A obteção desses parâmetros depende de dados espaciais, sendo assim, precisamos de um software de geoprocessamento.

Dessa forma, vamos utilizar o QGIS 3.14 para obter o perfil longitudinal de alguns rios da Bacia Hidrográfica do Atlântico Sul, tais como o rio Araranguá, rio Urussanga, rio Tubarão, rio Itajaí-Açu e o rio Itapocu. A partir dos dados obtidos, vamos plotar os resultados usando Python.

É importante comentar que alguns rios citados são formados pela junção das águas de outros rios (como o rio Araranguá, formado pelos rios Itoupava e Mãe Luzia), sendo que na nossa análise escolhemos a nascente mais distante para o desenvolver o perfil longitudinal.

Confira nosso curso de Geoprocessamento para Estudos Ambientais usando QGIS.

Antes de iniciarmos, é interessante comentarmos o que é um perfil longitudinal. Ele é um recorte das elevações existentes ao longo da linha de interesse, isto é, a partir de uma determinada linha (no nosso caso, o curso d’água), vamos amostrar as altitude/cotas existentes.

E para que isso serve?

O perfil longitudinal demonstra o relevo existente ao longo do curso d’água, sendo possível observar as declividades existentes, e consequentemente, inferir informações relacionadas à velocidade de escoamento e possiblidade de erosão ou inundação.

Rãdoane e colaboradores (2002) comentam que a parte mais intrigante dos perfis longitudinais são a sua forma, sendo que usualmente tem a forma concava. Eles ainda citam, baseados no trabalho de Gilbert (1877) que a declividade do perfil longitudinal é inversamente proporcional à vazão. Trabalhos posteriores citados pelos autores colocam que a explicação para a forma do perfil longitudional esta principalmente relacionada à variação da vazão, diâmetro do material do leito e a carga de sedimentos.

Quais dados iremos utilizar?

Iremos obter a hidrografia a partir dos dados disponibilizados pela Agência Nacional de Águas (ANA), os quais podem ser baixados aqui; e os dados de elevação usaremos o MDE do SRTM (1 arc), disponível para download no Earth Explorer do serviço geológico norte americano (USGS).

Após inserir o shapefile dos rios, selecione os rios de interesse e crie um shapefile novo com eles (Clique com botão direito sobre o shape na lista de camadas, vá em ‘exportar’ e ‘salvar feições selecionadas como’).

Em seguida, você deve unir os seguimentos (várias linhas) que compõem o mesmo rio. Você deverá editar o shapefile do rio, selecionar as linhas do rio em questão e em seguida, clicar em ‘Mesclar Feições Selecionadas’.

Botão para mesclar feições no QGIS.
Botão para mesclar feições no QGIS.

Agora para baixar os MDE, no site do Earth Explorer, você terá que primeiro se cadastrar e logar para baixar as imagens (1). Em seguida, busque pela área de interesse (2) e selecione o tipo de imagem que você deseja (3 e 4). Por fim, vá nos resultados (5) para baixar as imagens disponíveis.

Site do Earth Explorer para download de imagens de satélites.
Site do Earth Explorer para download de imagens de satélites.

Para a nossa área de interesse, temos vários MDE. Após baixar e adicionar eles ao QGIS, precisamos unir alguns para que eles envolvam toda a extensão dos nossos rios de interesse.

Como unir MDE (Raster) no QGIS?

Antes de começar a unir arquivos matriciais, tenha em mente que eles vão ficar cada vez mais pesados, sendo necessário cada vez mais processamento. Em algumas situações, é importante utilizar arquivos com resoluções espaciais maiores para ter arquivos que possam ser manuseados.

Você pode unir os raster usando a ferramenta Construir um Raster Virtual (Build Virtual Raster), disponível em Raster > Miscelânea. Nesta ferramenta, você deverá selecionar os rasters que você quer unir e depois selecionar onde irá salvá-lo. Neste caso você não precisará alterar as outras informações.

Construindo Raster Virtuais no QGIS.
Construindo Raster Virtuais no QGIS.

Após unir os MDE, vamos utilizar o plugin Profile Tool para obter as cotas ao longo do nosso rio.

Usando o plugin Profile Tool

Para ativar o plugin Profile Tool, vá em Complementos e em seguida em ‘Gerenciar e Instalar Complementos’. Procure pelo nome do plugin e clique em ‘Instalar Complemento’.

Plugin Profile Tool do QGIS.
Plugin Profile Tool do QGIS.

Após instalar o complemento, ative ele clicando sobre ele na janela principal do QGIS.

Para traçar um perfil a partir de uma linha de um shapefile, você deverá seguir o seguinte procedimento:

  • Selecionar o MDE que abrange o rio e clicar em Add Layer;
  • Em ‘Options’, trocar o ‘Selection’ para ‘Selected Polyline’;
  • Selecionar o shapefile que contém os rios e clicar sobre ele.

Após realizar esse procedimento, você terá algo similar a imagem seguinte.

Seleção de um rio para obtenção das suas cotas.
Seleção de um rio para obtenção das suas cotas.

Poderiamos exportar a imagem resultante do plugin e parar por aqui, mas vamos clicar na aba ‘Table’ e vamos clicar em ‘Copy to Clipboard’ para copiar os dados.

Vamos colar esses dados no bloco de notas. Lembre-se de escrever na primeira linha ‘Distancia’, dar um Tab, e em seguida ‘Cota’ (evitando acentos para não dar problema na importação no Python). Depois salve o arquivo como CSV.

Lista de cotas e distâncias obtidas no Profile Tool.
Lista de cotas e distâncias obtidas no Profile Tool.

Agora, vamos trabalhar um pouco com Python.

Perfil Longitudinal usando Python

Para a criação do perfil longitudinal, utilizaremos Pandas e Matplotlib (duas bibliotecas do python).

No código abaixo, iremos carregar essas bibliotecas e em seguida, carregar o nosso arquivo com as distâncias e cotas.

import pandas as pd
import matplotlib.pyplot as plt

caminho = 'C:/Users/ferna/Desktop/'
arquivo = 'cotas_B2E.csv'

df = pd.read_table(caminho+arquivo, sep="\t")

df['Distance'] = df['Distance'].sort_values(ascending = True).values

print(df.head())

Note que nosso código ira puxar nossa tabela, que contem seus valores separados por uma tabulação (‘\t’) e depois organizará os valores de forma crescente.

Agora vamos plotar os resultados.

grafico = df.plot(x = 'Distance', y = 'Cota', legend = False, figsize=(12,4))
grafico.set_xlabel('Comprimento do rio (m)')
grafico.set_ylabel('Cota (m)')
grafico.grid()

plt.savefig(caminho+'graficoCotaRio.png', dpi = 120)

No caso, teremos um novo gráfico salvo na pasta especificada em ‘caminho’. A próxima figura mostra o nosso resultado para o rio Itapocu.

Perfil longitudinal 'bruto' do rio Itapocu.
Perfil longitudinal ‘bruto’ do rio Itapocu.

Note que em função da resolução espacial do nosso MDE, ou ainda em função de ruídos que possam exister no momento da obteção dele, há imperfeições no nosso perfil longitudinal. Para remover ela, vamos passar uma média móvel e todar nosso gráfico novamente.

df['med_mov'] = df['Cota'].rolling(30).mean()

grafico = df.plot(x = 'Distance', y = 'med_mov', legend = False, figsize=(12,4))
grafico.set_xlabel('Comprimento do rio (m)')
grafico.set_ylabel('Cota (m)')
plt.title('Rio Itapocu')
grafico.grid()


plt.savefig(caminho+'graficoCotaRio2.png', dpi = 120)

Após rodar esse código, temos o seguinte resultado.

Perfil longitudinal do rio Itapocu.
Perfil longitudinal do rio Itapocu.

Conforme sua necessidade, você pode alterar o valor da função ‘rolling’ para obter médias móveis diferentes.

Agora você já sabe criar perfis longitudinais, abaixo você pode conferir outros exemplos que montamos.

Caso você tenha ficado com alguma dúvida, utilize os comentários que estaremos respondendo assim que possível.

Quer aprender a usar o QGIS? Confira nosso curso online de Geoprocessamento para Estudos Ambientais.

Fontes consultadas:

Flávio Reis. HidroMundo – Declividade e Perfil Longitudinal de um Rio. Disponívem em: http://www.hidromundo.com.br/declividade-perfil-longitudinal-de-rio/. Acesso em 22 ja. 2021.

RÃDOANE. M.; RÃDOANE, N.; DUMITRIU, D. Geomorphological evolution of longitudinal river profiles in the Carpathians. Geomorphology, n. 50. Elsevier. 2002. Pg. 293-306.


Clique na figura abaixo e assine nossa lista de emails para receber nosso ebook "Como criar mapas de localização com ArcGIS 10.x".

Apostila Mapa de Localização Banner

Author: Fernando BS

Engenheiro Ambiental e de Segurança do Trabalho. Atua nas áreas de geoprocessamento, mineração e hidrologia. Busca soluções utilizando softwares como QGIS, R e Python.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *