Antes de aplicar o modelo a uma bacia real, vamos dominar o fluxo de trabalho no exemplo tutorial oficial do USGS: uma grade minúscula de 10 × 10 células de 10 m, com 2 zonas de propriedades, chuva em 2 períodos e 60 h de simulação. Ele roda em ~1 segundo e permite entender cada arquivo sem esperar processamento.
NotaOnde fica essa bacia?
É um recorte didático de apenas 100 m × 100 m distribuído pelo USGS junto com o programa — uma encosta-exemplo sem contexto de bacia real (as coordenadas UTM dos eixos são herdadas da grade de exemplo, mas a área é pequena demais para representar qualquer lugar). Nas Partes 2+ do minicurso aplicaremos o mesmo fluxo às bacias reais da Região Serrana/RJ.
Os arquivos estão na pasta exemplo_01/ deste repositório, já com as correções necessárias (ver nota ao final).
4.1 O terreno do exemplo
Para criar intuição antes de olhar arquivo por arquivo, veja o relevo da “bacia” sintética:
Código
library(terra)dem <-rast("exemplo_01/data/dem.asc")par(mfrow =c(1, 2), mar =c(2.5, 2.5, 2, 1))hs <-shade(terrain(dem, "slope", unit ="radians"),terrain(dem, "aspect", unit ="radians"))plot(hs, col =grey(seq(0.2, 1, length.out =40)), legend =FALSE,main ="Relevo sombreado + curvas de nível")contour(dem, add =TRUE, col ="#8b4513", labcex =0.7)persp(dem, theta =35, phi =32, expand =0.55, col ="#e8d9b8",border ="#8a7550", main ="Vista 3D", xlab ="x (m)", ylab ="y (m)",zlab ="elev. (m)")
O terreno sintético do tutorial: relevo sombreado com curvas de nível (esquerda) e vista em perspectiva 3D (direita).
4.2 Estrutura de pastas
exemplo_01\
├── tpx_in.txt <- inicialização do TopoIndex
├── tr_in.txt <- inicialização do TRIGRS (JÁ CORRIGIDO)
├── data\ <- grades de entrada (formato ESRI ASCII, .asc)
└── Resultados\ <- saídas do TRIGRS (criar antes de rodar!)
4.3 As grades de entrada, uma a uma
Cada arquivo .asc da pasta data\ responde a uma pergunta do modelo. Vamos vê-los em grupos, sempre com o mapa correspondente ao lado da descrição.
slope.asc — declividade em graus (o δ da fórmula do FS);
directions.asc — direção de fluxo D8, usada pelo TopoIndex para rotear o runoff. A grade do tutorial usa a numeração do próprio TopoIndex (opção 2 no tpx_in.txt: 1=NO, 2=N, 3=NE, 4=O, 5=indefinida, 6=L, 7=SO, 8=S, 9=SE); grades exportadas do ArcGIS/QGIS usam o esquema ESRI (opção 1: 1=L, 2=SE, 4=S, … 128=NE).
Código
slope <-rast("exemplo_01/data/slope.asc")dirs <-rast("exemplo_01/data/directions.asc")par(mfrow =c(1, 3))plot(dem, main ="dem.asc — elevação (m)", col =terrain.colors(25))plot(slope, main ="slope.asc — declividade (°)",col =hcl.colors(25, "YlOrRd", rev =TRUE))plot(as.factor(dirs), main ="directions.asc — TopoIndex")
As três grades topográficas. Repare onde a declividade é maior — é lá que o FS vai cair primeiro.
4.3.2 Solo: zones.asc, zmax.asc, depthwt.asc
zones.asc — a que zona de propriedades cada célula pertence (os parâmetros geotécnicos/hidráulicos de cada zona ficam no tr_in.txt);
zmax.asc — profundidade máxima do solo (a base impermeável do modelo);
depthwt.asc — profundidade inicial do lençol freático (condição antecedente).
Código
zones <-rast("exemplo_01/data/zones.asc")zmax <-rast("exemplo_01/data/zmax.asc")dwt <-rast("exemplo_01/data/depthwt.asc")par(mfrow =c(1, 3))plot(as.factor(zones), main ="zones.asc — zonas de propriedades")plot(zmax, main ="zmax.asc — prof. do solo (m)",col =hcl.colors(25, "BrwnYl", rev =TRUE))plot(dwt, main ="depthwt.asc — prof. inicial do NA (m)",col =hcl.colors(25, "Blues", rev =TRUE))
As três grades de solo do tutorial: 2 zonas de propriedades, solo de 1,5 a 2,0 m de espessura e lençol freático inicial em geral a 1,5 m de profundidade.
4.3.3 Chuva de projeto (hietograma): rizero.asc, ri1.asc, ri2.asc
rizero.asc — infiltração antecedente de longo prazo (mantém o estado inicial);
ri1.asc, ri2.asc — intensidade de chuva de cada período, em m/s (lidas só quando o valor cri correspondente no tr_in.txt é negativo — ver os arquivos de inicialização, abaixo).
A chuva entra no TRIGRS como um hietograma em degraus: a duração total é dividida em períodos (nper no tr_in.txt), cada um com sua intensidade — vinda de um valor uniforme ou de uma grade ri*.asc (chuva variando no espaço, ex.: interpolada de pluviômetros ou de radar). No tutorial são dois períodos — 48 h de chuva fraca antecedente e 12 h de tempestade (intencionalmente exagerada, para forçar instabilidade na grade minúscula):
O hietograma do tutorial: as intensidades uniformes cri do tr_in.txt (3×10⁻⁷ e 9×10⁻⁵ m/s) convertidas para mm/h — por serem positivas, são usadas no lugar das grades ri1 e ri2. A tempestade final é irrealista de propósito — é um dado didático.
4.4 Os arquivos de inicialização
Cada programa lê um arquivo de texto com parâmetros e caminhos, na pasta onde é executado:
tpx_in.txt (TopoIndex): aponta o MDE e a grade de direções; define o esquema D8 (ESRI = 1, TopoIndex = 2) e quais listas/grades auxiliares salvar.
tr_in.txt (TRIGRS): o coração da rodada. Define, entre outros:
número de zonas e parâmetros geotécnicos/hidráulicos de cada zona (coesão em Pa, ângulo de atrito φ em graus, peso específico em N/m³, difusividade em m²/s, Ksat em m/s, θsat, θres, α de Gardner);
períodos de chuva (nper), instantes de troca (capt) e intensidades (cri ou grades ri*.asc);
profundidade da simulação, condição inicial do lençol e opções do modelo (saturado/não saturado, profundidade finita/infinita);
tempos de saída e quais grades gravar.
Um valor negativo de zmax, depth, rizero ou de uma intensidade cri manda o TRIGRS ler a grade correspondente (zmax.asc, depthwt.asc, rizero.asc, ri*.asc) em vez de usar o próprio valor. No tutorial, zmax = -3.001, depth = -2.4 e rizero = -1.0e-9, então essas três grades são lidas; as intensidades cri (3×10⁻⁷ e 9×10⁻⁵ m/s) são positivas e valem uniformemente para toda a grade.
No tutorial, as duas zonas do zones.asc recebem estes parâmetros (linhas zone, 1 e zone, 2 do tr_in.txt):
Parâmetro (unidade SI)
Zona 1
Zona 2
Papel no modelo
Coesão c’ (Pa)
3.500
8.000
resistência que não depende da tensão normal
Atrito φ’ (graus)
35
31
resistência friccional
Peso específico γs (N/m³)
22.000
22.000
peso da coluna de solo
Difusividade D₀ (m²/s)
6,0×10⁻⁶
8,0×10⁻⁴
velocidade da resposta de poro-pressão
Ksat (m/s)
1,0×10⁻⁷
1,0×10⁻⁴
capacidade de infiltração
θsat / θres
0,45 / 0,05
0,45 / 0,06
teores de umidade saturado/residual
α de Gardner (1/m)
−0,5
−8,0
curva K(ψ) da zona não saturada
Repare no contraste: a zona 1 tem o maior ângulo de atrito, mas a menor coesão, e é muito menos permeável (responde devagar); a zona 2 é mais coesiva, com menor ângulo de atrito, e muito mais permeável — a tempestade a atinge rápido. É esse jogo que produz o padrão de instabilidade que veremos no próximo capítulo.
4.5 Unidades — a pegadinha nº 1
O TRIGRS trabalha em SI: metros, segundos, Pascal. A chuva entra em m/s: