Modelo hidrodinâmico – Implementação passo a passo (3 de 6)

Seguimos nossa série “Por dentro do modelo” que tem como objetivo mostrar todo o processo que acontece antes dos mapas e vídeos bonitos de simulação que vemos por aí. E chegamos agora, finalmente, num post que será bem mais prático que os anteriores. Onde vou detalhar o passo a passo de implementação de um modelo hidrodinâmico que eu sigo para montar todos os modelos na minha empresa.

Caso você não tenha lido os posts anteriores e está começando nesse mundo da modelagem numérica, eu recomendo que você volte e leia na sequência. Nesse post vou citar vários termos que já foram explicados na Parte 1 e 2 dessa série.

O exemplo que vou apresentar aqui será baseado em uma simulação que eu fiz uns anos atrás na Baía de São Marcos/MA utilizando o Delft3D-FLOW. Mas, como eu sempre digo, tirando os detalhes operacionais do software, a lógica da estrutura será sempre a mesma, para qualquer modelo.

Pra facilitar o entendimento, dividi todo o processo em 10 passos:

  1. Montar modelo conceitual do fenômeno de interesse
  2. Buscar os dados de entrada
  3. Definir os limites do domínio numérico
  4. Digitalizar a linha de costa
  5. Construir a grade numérica
  6. Gerar a batimetria
  7. Definir os cenários de simulação
  8. Montar e configurar as rodadas
  9. Analisar os resultados e calibrar
  10. Apresentar os resultados

Passo 1 – Montar modelo conceitual

O modelo conceitual consiste na descrição do fenômeno de interesse, indicando suas causas e efeitos e compreendendo as interações e relevância das forçantes que geram sua ocorrência. Nada mais é do que estudar o fenômeno da região de interesse (no caso da implementação de um modelo hidrodinâmico, padrões de nível e corrente) antes de começar a implementar o modelo.

Iniciar a modelagem já conhecendo como o ambiente funciona e sabendo o que você espera dos resultados, te poupará tempo e fará você ser mais assertivo na elaboração do modelo (discretização espaço-temporal, condições de contorno e dados de entrada).

Não estudar a hidrodinâmica da região antes de iniciar seu modelo não implicará em uma modelagem errada. Longe disso. Mas, certamente, te poupará algumas horas lá na frente na etapa de calibração. Por isso eu indico fortemente que você faça uma boa revisão bibliográfica da sua área de estudo antes de pensar em qualquer configuração ou cenários para o seu modelo.

Caso a região que você irá modelar não tenha bons estudos hidrodinâmicos, sugiro baixar dados de vento, corrente, nível e vazão de modelos globais ou estações fixas de medição, e analise você mesmo estes dados. Com isso você já conseguirá entender os padrões hidrodinâmicos temporais da região (diário, mensal, sazonal, anual… dependendo do tamanho da série que você coletou) e a interação das principais forçantes que o regem e que precisam necessariamente serem contempladas no modelo.

Passo 2 – Buscar os dados de entrada

Essa etapa se mistura um pouco com o Passo 1. A ideia é mapear os dados que estão disponíveis na região e que podem servir como dados de entrada ou de calibração do modelo numérico. Importante também verificar o período que os dados disponíveis cobrem. No post 5 dessa série, eu conto quais as principais bases de dados que utilizo para montar meus modelos.

Passo 3 – Definir os limites do domínio numérico

A definição da delimitação da abrangência espacial do modelo deve levar em conta 3 aspectos:

  • Objetivo do trabalho;
  • Localização dos dados de entrada/forçamentos;
  • Capacidade computacional/tempo de processamento.

O objetivo da simulação definirá quais os processos que precisam ser integrados no seu modelo. E, com bases nesses processos, é possível definir a abrangência espacial necessária.

Se você for analisar, por exemplo, a dispersão de um poluente que será lançado em um estuário, você precisará pensar o limite do modelo sob 2 aspectos: i) Inclusão e processamento das principais energias  que ditam a hidrodinâmica do ambiente (vazão e maré, ou seja, incluir rio e oceano além do próprio estuário) e ii) abrangência completa da pluma que será gerada pelo poluente (que dependerá do volume lançado e do padrão local das correntes).

Definidos os limites com base no objetivo do estudo, é hora de verificar se os dados disponíveis para o forçamento do modelo batem com estes limites. E como não temos uma grande disponibilidade de dados costeiros no Brasil, muitas vezes a abrangência ideal do modelo não coincide com a localização das estações de dados. Será necessário então quebrar um pouco a cabeça e pensar em uma solução que concilie os limites desejados com a disponibilidade de dados de entrada que serão inseridos nos contornos laterais abertos.

É necessário verificar também se a abrangência definida é viável em termos de capacidade computacional. Muitas vezes o domínio ideal do modelo acarretará em um tempo de processamento incompatível com o tempo que você dispõe para realizar o estudo.

A grande missão no Passo 3 é balancear esses três pontos visando o melhor resultado dentro das possibilidades de dados e processamento.  

Passo 4 – Digitalizar a linha de costa

Aqui é onde começamos de fato a montar o modelo. Para fazer a grade numérica você precisa ter os contornos terrestres georreferenciados dentro do domínio definido.

Eu chamei aqui de linha de costa, mas pode ser margem de rio, lagoa, ilhas, enfim. É a digitalização do limite entre o ambiente aquático e terrestre. E também de estruturas relevantes que estejam dentro do seu domínio (pontes, molhes, portos…).

Há uns anos atrás se extraía a linha de costa das cartas náuticas. Hoje o mais comum é utilizar o Google Earth. Basta ligar a função “Add path” no menu de ferramentas e iniciar um quase infinito número de cliques ao longo da linha de costa dentro do seu domínio.

O “path” criado será salvo na extensão padrão do Google Earth (.kmz). É necessário transformar o arquivo para a extensão que o modelo aceita (.ldb para o Delft3D-FLOW) e para a projeção e datum desejados (uso sempre UTM-WGS84). Para realizar essas operações utilizo o programa Global Mapper.

Passo 5 – Construir a grade numérica

Hoje a maioria dos softwares de modelagem possuem um módulo acoplado para criação de grades. O do Delft3D se chama RGFGRID. Ele te permite criar grades retangulares a partir da definição de um ponto de partida ou não-retangulares a partir do desenho de splines, que foi como eu fiz esse exemplo.

O caminho para criar a grade por essa ferramenta é:

  1. Chamar o arquivo da linha de costa;
  2. Desenhar as splines;
  3. Configurar o número de elementos que você deseja colocar dentro de cada espaço gerado pelas splines e criar a grade;
  4. Fazer o ajuste final da grade “na mão” através das funcionalidades que o módulo oferece.

Para a geração de uma grade numérica algumas questões de resolução e parâmetros de qualidade precisam ser levadas em conta. Mas ficaria muito extenso abordar todos esses pontos aqui nesse post. Por isso, o próximo post será totalmente dedicado a falar sobre as grades numéricas com detalhe.

Passo 6 – Gerar a Batimetria

Os dados de profundidade de ambientes aquáticos, necessários para gerar a batimetria do modelo, podem ser obtidos de duas formas: levantamento batimétrico e digitalização das cartas náuticas da DHN. Há também os modelos globais de profundidade utilizados em simulações de maior escala e oceânicas, sendo o ETOPO o mais conhecido deles.

O ideal seria que toda simulação fosse realizada utilizando dados atualizados de levantamento batimétrico da área de interesse. Mas, por ser um dado que tem um alto custo de aquisição, muitas vezes a batimetria é gerada somente a partir das cartas náuticas. Ou de um conjunto formado por uma mistura de fontes de dados. 

Que é o caso desse exemplo. Na parte mais interna da Baía de São Marcos os dados de profundidade foram obtidos de levantamentos batimétricos. Já na área mais externa da Baía os dados foram adquiridos digitalizando cartas náuticas da região (figura abaixo). Esse processo de digitalização foi realizado no programa Global Mapper.

O pacote Delft3D, além do módulo de criação de grade, também oferece um módulo para geração da batimetria, o QUICKIN. Nele é possível abrir diversas fontes de dados batimétricos e trabalhá-los, desde que todos estejam no mesmo sistema de projeção e na extensão aceita pelo programa (.xyz).

As equações governantes do modelo são calculadas em todos os pontos da grade numérica. E para que estas equações sejam solucionadas é necessário atribuir um valor de profundidade para cada ponto da grade.

Com os dados de profundidade já trabalhados e prontos (1) é só chamar a grade numérica (2) e interpolar os dados para cada ponto de grade (3). E então tem-se a batimetria do modelo, que nada mais é que a mesma matriz especializada da grade numérica, mas com um dado a mais em cada ponto, o de profundidade.

Passo 7 – Definir os cenários de simulação

Os cenários de simulação são criados com base no processo que se quer avaliar e nas características/forçantes hidrodinâmicas da região.

Usando o mesmo exemplo anteriormente citado, para a simulação de lançamento de um efluente no estuário, podemos definir os cenários sob 2 pontos: das características de lançamento do efluente e das condições hidrodinâmicas. Por exemplo:

  • Cenário 1: Vazão do Rio em condição de cheia + maré de sizígia + vazão de lançamento de 10 m³/s;
  • Cenário 2: Vazão do Rio em condição de estiagem + maré de quadratura + vazão de lançamento de 10 m³/s;
  • Cenário 3: Vazão do Rio em condição de vazão média + maré de quadratura + vazão de lançamento de 5 m³/s;

Os cenários que serão simulados geralmente são definidos com o cliente que solicita o estudo de modelagem já na etapa de contratação. Eles são desenhados para responder a principal pergunta do estudo. Que pode ser, por exemplo:

  • Qual volume máximo de efluente é possível lançar no estuário sem ultrapassar os limites dos parâmetros ambientais definidos na legislação?
  • Quanto a variação da vazão do rio influencia no processo de dispersão da pluma do efluente lançado?
  • Quais os valores máximos de DBO observados no estuário para um lançamento de efluente com vazão de 10 m³/s sob regime de maré de quadratura e vazão de estiagem?

Passo 8 – Montar e configurar as rodadas

Aqui começa a parte de montar e configurar a simulação que você deseja realizar. Cada cenário definido corresponde a uma rodada de simulação a ser realizada.

No caso do Delft3D-FLOW, toda a configuração da rodada é realizada através de um programa com interface gráfica. Nele você carrega alguns arquivos que já foram pré-processados (grade numérica, batimetria, série de dados de entrada) e define outros pontos importantes para a simulação, como por exemplo:

  • Período de simulação (Start: 01/01/2018 00:00h Stop: 01/02/2018 00:00h);
  • Time Step;
  • Localização e detalhes das condições de contornos laterais abertas;
  • Rugosidade de fundo;
  • Viscosidade horizontal;
  • Algumas constantes como gravidade, densidade da água e do ar;
  • Localização e vazão de lançamento de efluentes;
  • Criação de Observation Points;
  • Configuração dos dados de saída (intervalo de tempo, formatos, arquivos intermediários para serem utilizados em outros módulos…).

Os dados de entrada são inseridos nas condições de contorno laterais abertas (boundaries) de acordo com a forçante definida, que pode ser nível do mar, constantes harmônicas de maré, vazão, entre outras.

Quanto mais processos você solicitar que seu modelo calcule, mais dados e parâmetros serão necessários incluir e configurar.

Com todos os dados carregados e simulação configurada, é só dar o start e aguardar a simulação finalizar.

Passo 9 – Analisar os resultados e calibrar

Com a simulação finalizada é hora de avaliar os resultados. Para um modelo hidrodinâmico os dados a serem analisados são nível do mar e velocidade e direção das correntes.

O pacote Delft3D-FLOW disponibiliza um módulo para visualização rápida e exportação dos resultados, o QUICKPLOT. Nele é possível plotar mapas instantâneos em 2D (de um único passo temporal) e séries temporais completas em pontos específicos da grade pré-determinados na configuração do modelo (observation points).

A partir dessa visualização rápida dos resultados gerados na simulação já é possível verificar se os resultados estão satisfatórios ou não. Ou seja, se os valores calculados pelo modelo estão de acordo com os padrões descritos para a região, ou melhor ainda, se batem com uma série de dados medidos.

Se os resultados não forem satisfatórios, será necessário reconfigurar o modelo e rodá-lo novamente. Esse processo de “rodar, analisar, reconfigurar, rodar…” é chamado de calibração e pode se repetir muitas vezes até que se chegue ao resultado desejado. No último artigo dessa série, falaremos exclusivamente da etapa de calibração.

Passo 10 – Apresentar os resultados

Com o processo de simulação finalizado e validado, é hora de preparar os resultados em gráficos e mapas para apresentação.

O próprio Delft3D possui alguns módulos que auxiliam nessa etapa de pós-processamento, como o QUICKPLOT, Delft3D to shape, GPP e Animation. Mas sinceramente não sei informar o quanto são boas e úteis para o plot de gráficos e mapas. Nunca me adaptei a elas.

Como eu faço: exporto os resultados para .mat através do QUICKPLOT. Abro esse arquivo no Matlab onde faço todas as minhas análises e plots. Algumas vezes também utilizo o ArcGIS para fazer alguns mapas. E agora estou no processo de migrar minhas rotinas de matlab para python.

Cada um desses 10 PASSOS apresentados renderia, no mínimo, mais um post totalmente dedicado a ele. Tentei aqui falar o essencial de cada etapa para apresentar a totalidade do processo, com início meio e fim.
Já que essa era uma dificuldade que eu tinha quando comecei, enxergar todo o processo da modelagem e identificar as principais etapas a serem executadas.  

A ideia é caminhar do macro para o micro, e ir aos poucos aprofundando em cada uma destas etapas. 

Para ler o próximo post da série onde falaremos de grades numéricas, clique aqui.  

3 comentários em “Modelo hidrodinâmico – Implementação passo a passo (3 de 6)

  1. Aline Costa Responder

    Seu relato é um direcionamento incrível para simulações em curso.
    Muito obrigada por isso e parabéns pelo seu trabalho!

Deixe um comentário

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