BHOFERAH · MIDR · SEDEC · DPM
MIDRSEDECDPMProjetosFERAHBHO
Ferramenta de apoio · sistema estável em uso interno · paridade com o painel legado fechada em agosto de 2026
Sistema BHO · plataforma FERAH

Aponte para o rio. A bacia inteira responde.

Navegação na Base Hidrográfica Ottocodificada da ANA

Sistema estável Paridade com o painel legado 464.067 ottobacias em memória Atualizado em 30/09/2026

Todo estudo hidrológico começa pela mesma pergunta: de onde vem a água que passa por aqui? O sistema BHO responde a ela para qualquer ponto do Brasil. Basta dar o nome do rio, o código da ottobacia ou um clique no mapa: ele devolve a bacia a montante, o curso d'água principal até a nascente mais distante, o perfil ao longo da calha, o caminho até a foz e as sub-bacias, prontos para exportar.

É a ferramenta de apoio que sustenta os outros sistemas da plataforma FERAH: a regionalização de vazões, a curva-chave e o HAND, a ponte de Budyko da elasticidade e a seleção de estações do Webservice ANA.

Tela do sistema BHO com a bacia do Rio das Velhas (MG) dividida em 18 sub-bacias coloridas sobre o mapa, o painel de consulta à esquerda e o resumo da ottobacia 76941111 à direita: 27.871 km² a montante, 2.839 ottobacias, 1.420 nascentes, 14.824 km de rede.
A bacia do Rio das Velhas em 18 sub-bacias. Uma busca pelo nome, um clique, e o sistema entrega a bacia inteira: 27.871 km², 2.839 ottobacias, 1.420 nascentes e 14.824 km de rede de drenagem, discretizada em sub-bacias de 500 km² ou mais. Captura de 30/09/2026, dados reais da BHO 2017 5k.
464.067
ottobacias na BHO 2017 5k
a base de referência, com 93.394 rios nomeados
482.349
ottobacias na BHAE 2023
segunda base, com Curve Number e geometria hidráulica
0,034 ms
para a bacia do Rio Negro
1.007 ottobacias a montante; no banco eram 527 ms
15.000×
mais rápido que a consulta ao banco
topologia inteira em 20 MB de memória
0,00%
de diferença na área do Amazonas
5.921.836 km² propagados pela rede, iguais à base
6 + 6
consultas e produtos do painel legado
todos portados, mais o que o Java não tinha

Números medidos e registrados na documentação de implementação do sistema (docs/09, agosto de 2026) e no README do sistema. Nenhum valor desta página foi estimado para a página.

O que é a BHO

Um mapa em que cada pedaço de rio sabe quem está acima e quem está abaixo dele

A Base Hidrográfica Ottocodificada é a representação oficial da rede de drenagem brasileira mantida pela Agência Nacional de Águas e Saneamento Básico. Ela divide o país em ottobacias: para cada trecho de rio, o polígono de terra que drena diretamente para ele. Na versão de 2017, na escala 1:5.000 para as grandes bacias, são 464.067 trechos e polígonos.

O que a torna especial não é o desenho, é o código. Cada ottobacia recebe um número construído pela codificação de Otto Pfafstetter, um engenheiro do antigo DNOS que criou o método em 1989. O código carrega a posição do trecho na rede: pela aritmética dos seus dígitos é possível saber se um trecho está a montante ou a jusante de outro, em que rio ele está e onde esse rio deságua, sem olhar para a geometria.

É por isso que a navegação na BHO é, entre todos os recursos do FERAH, o que a equipe considera mais valioso: ele transforma uma pergunta geográfica, cara e lenta, numa pergunta sobre números.

O que cada ottobacia traz

cobacia
o código Otto da ottobacia, a chave de tudo
cocursodag
o código do curso d'água em que o trecho está
nutrjus
o trecho imediatamente a jusante, a ligação topológica explícita
nuareacont · nuareamont
a área que drena direto para o trecho e a área acumulada a montante
nudistbact
a distância até a foz pela rede
noriocomp · dedominial
o nome do rio e a dominialidade, federal ou estadual

São 43 campos na BHO 2017. A BHAE 2023 acrescenta a tabela HGM (declividade por sete métodos, tempo de concentração por dez fórmulas, geometria hidráulica) e o Curve Number de 2022.

As regras de Otto

Quatro regras de aritmética que substituem qualquer consulta geográfica

A codificação segue um princípio simples: em cada nível, os quatro maiores afluentes recebem os dígitos pares (2, 4, 6, 8), da foz para a nascente; os trechos do rio principal entre eles, as interbacias, recebem os ímpares (1, 3, 5, 7, 9). Cada subdivisão acrescenta um dígito. Disso decorrem as regras que o sistema aplica.

A codificação de Otto Pfafstetter e as regras de navegação. Figura da documentação do FERAH (setembro de 2026).
1

Curso d'água

Leia o código da direita para a esquerda e corte até o primeiro dígito par, mantendo-o.

77415 → 774
862911 → 862
7499891 → 74998

Sem dígito par, o curso é o primeiro dígito: 4111 → 4, o Amazonas.

2

Bacia a montante

Todos os códigos maiores ou iguais ao consultado que começam pelo mesmo curso d'água.

montante de 7743
= 7743, 77431, 7745…

Dentro de um curso, a ordem alfabética dos códigos é a ordem do rio. É isso que torna a consulta instantânea.

3

Trecho a jusante

Pelo último dígito: par desce 1; ímpar diferente de 1 desce 2; 1 sobe de nível; 0 é bacia fechada.

7744 → 7743
7743 → 7741
7741 → 773
7740 → foz
4

Para onde escoa a água

A regra 3 diz onde termina este curso d'água. Para saber para onde a água segue na confluência, o sistema usa a ligação topológica gravada na base (nutrjus).

Achado da implementação: propagar área só pela regra de Otto deixava o Amazonas 98,8% menor. Pela topologia, a diferença é 0,00%.

Por que é instantâneo: a bacia é uma fatia de um array

Num array de códigos ordenado como texto, todas as ottobacias de um curso d'água formam um bloco contíguo, e a bacia a montante de qualquer trecho é uma fatia desse bloco. Duas buscas binárias encontram o início e o fim da fatia. Foi assim que a consulta do Rio Negro, que levava 527 ms no banco, passou a levar 0,034 ms em memória, com resultado idêntico.

A geometria continua no PostGIS, onde o índice espacial resolve bem: só o mapa precisa dela.

Array ordenado de códigos Otto: 774, 7741, 7743, 77431, 7745, 775, 8628. A montante de 7743 é a fatia contígua 7743, 77431, 7745. cobacias ordenadas como texto (um curso d'água = um bloco contíguo) 774 7741 7743 77431 7745 775 8628 bacia a montante de 7743 = fatia [7743, 7745] curso d'água 774 = bloco contíguo · duas buscas binárias resolvem outros cursos
Esquema do princípio que sustenta a navegação em memória.
Uma bacia por dentro

O Rio das Velhas em oito abas

Escolhida a bacia, todo o resto da tela deriva dessa escolha. As capturas abaixo são da ottobacia 76941111, a foz do Rio das Velhas no São Francisco, em Minas Gerais, feitas em 30/09/2026 sobre a BHO 2017 5k.

Resumo. A bacia de contribuição, o curso d'água e a topologia imediata numa só ficha. O nome buscado se repete 19 vezes no país; o curso d'água e a área desempatam.

Busca que entende homônimos

"Rio das Velhas" existe 19 vezes na base, do São Francisco ao Paraguai. O catálogo de toponímia pré-computado, com 93.394 pares de nome e curso d'água, devolve todos em milissegundos, ordenados por área e com a região hidrográfica ao lado. O painel legado fazia um select distinct de 463 mil linhas a cada abertura e despejava 93 mil nomes numa tabela para rolar à mão.

Bacia do Rio das Velhas, ottobacia 76941111
GrandezaValor
área a montante27.871 km²
ottobacias2.839
nascentes1.420
rede de drenagem14.824 km
extensão do curso principal811 km
distância da foz ao oceano2.055 km
trechos até o exutório do São Francisco659
Perfil. A BHO não traz cota, então o eixo vertical é a área acumulada: um perfil hidrológico, não altimétrico. Cada degrau é um afluente que muda o regime do rio.
Composição. Comprimento de rede por ordem de Strahler, por ordem de curso d'água e por dominialidade, além dos maiores afluentes. Numa rede bem formada o comprimento cai pela metade a cada ordem.
Sub-bacias. O antigo OTTOUPSCAL: cursos menores que o limiar são dissolvidos no curso em que deságuam, em cascata. A soma fecha com a área da bacia porque cada ottobacia entra em exatamente um grupo.
Jusante. O caminho da água até o mar, trecho a trecho, com a área acumulada crescendo. Segue a topologia, não a aritmética do código: pela regra de Otto o percurso pararia na primeira mudança de curso d'água.
Código Otto. As regras aplicadas ao código, lado a lado com o que está gravado na base, e o aviso quando divergem. Serve para validar a base e para trabalhar sem banco.
Lâmina d'água. Vazão vira lâmina, largura e velocidade pela geometria hidráulica regionalizada, com o método usado e a classe de confiança A–D. É o único empréstimo de outro domínio, a Curva-chave, e roda direto sobre o núcleo, sem HTTP.
Milissegundos, não minutos

A primeira versão delimitava o Rio das Velhas em 18 segundos. Hoje leva meio segundo, e 5 milissegundos na segunda vez

As tabelas geométricas da BHO não têm índice utilizável no código da ottobacia; o único índice que serve é o espacial. O ganho veio de três decisões: guardar a caixa envolvente de cada bacia no cache da rede, para que toda consulta comece pela geometria; dissolver ottobacias como cobertura poligonal, costurando arestas em vez de intersectar polígonos; e mandar a hidrografia para a tela simplificada, invisível no zoom de uma bacia.

Rio das Velhas, 2.839 ottobacias: antes e depois
OperaçãoAntesDepois
contorno da bacia17.964 ms511 ms
hidrografia (tamanho da resposta)6.364 KB1.030 KB
sub-bacias32.859 ms1.468 ms
recorte de 250 unidades30.181 ms143 ms
segunda visita à mesma baciaigual à primeira5 ms

Medido no Rio das Velhas em agosto de 2026 (docs/09 §4.4).

478 ms
contorno do São Francisco
contra 38 s pelo método clássico, e 173 KB em vez de 9 MB
0,059 ms
montante do Amazonas
128.827 ottobacias, em memória
3.000
trechos por resposta
o detalhe sobe a ordem de Strahler até a rede caber, e continua conexa
400 MB
de cache em disco
por base e por parâmetro; as bases são estáticas, nada expira
A bacia inteira do São Francisco, com 53 mil ottobacias, ainda custa cerca de 8 segundos na primeira visita: a função que resolveria exige uma versão da biblioteca geométrica que o servidor não tem. É a única consulta lenta que restou, e está documentada.
Conheça o sistema

Uma tela só, seis maneiras de perguntar e seis camadas de resposta

Capturas reais da interface, feitas em 30/09/2026 no ambiente interno do DPM. Selecione uma imagem para ampliar.

Curso principal. A calha do rio até a nascente mais distante, escolhida em cada confluência pelo trecho que mantém o mesmo curso d'água. As camadas são interruptores: ligar e desligar não refaz nada.Ampliar imagem
Ponto. Um clique, ou um par lon/lat, e o sistema acha a ottobacia que contém a coordenada e delimita a bacia a montante dela.Ampliar imagem
Rio. Busca sem acento, filtrável por região hidrográfica ou pelo recorte do mapa. Os homônimos se desempatam pela área e pela região.Ampliar imagem
Tema escuro. A rede de drenagem a montante, com o nível de detalhe automático: 2.839 trechos cabem inteiros na bacia do Velhas.Ampliar imagem

Seis consultas

Rio (nome), Código (cobacia), Ponto (lon/lat ou clique), Lote (vários pontos de interesse de uma vez), Polígono (domínio desenhado ou enviado) e Incremental (bacia entre seções). Cada uma corresponde a um quadro do painel legado.

Seis produtos

Contorno da bacia, hidrografia, curso principal, ottobacias, ottobacia do exutório e sub-bacias, com a hidrografia colorida por ordem de Strahler, ordem do curso, área acumulada ou dominialidade. Mais o que o Java não tinha: perfil, composição, relação entre dois pontos, lâmina d'água e código Otto.

Exportar

Shapefile ou GeoJSON: um ZIP com as cinco camadas em EPSG:4326, a tabela de atributos em CSV e um LEIA-ME com a procedência. O que o botão TOTAL gravava em disco.

Como funciona

Topologia em memória, geometria no banco, respostas em cache

Carga da topologia

Um script lê a base do PostGIS uma vez e grava a rede (códigos, ligações, áreas e caixas envolventes) em arquivos de 20 MB. Na BHAE, que não traz a topologia pronta, ela é calculada no próprio script em 0,8 s.

Arranque

O servidor carrega as duas bases e aquece os índices derivados em cerca de 0,6 s. Pagar isso no início é melhor do que na primeira consulta do usuário.

Navegação

Montante, jusante, nascentes, curso principal, perfil e estatísticas saem do array em memória, sem tocar no banco.

Geometria

Contorno, hidrografia, ottobacias e ponto vão ao PostGIS, sempre começando pela caixa envolvente e dissolvendo como cobertura poligonal; a rede vai simplificada e com detalhe automático.

Cache e exportação

Cada resposta geométrica fica em disco, com chave por base e parâmetros e teto de 400 MB. A exportação empacota as camadas com a procedência.

Duas bases, dois universos de códigos. Os códigos Otto da BHO 2017 e da BHAE 2023 não são intercambiáveis: trocar de base limpa a seleção e entra na chave de todo cache. A escolha sobrevive ao recarregamento da página.
Quem usa a BHO no FERAH

A ferramenta de apoio que virou o endereço de todos os resultados

Regionalização por ottobacia. A fase BHO do sistema Modelagem aplicou o veredito das calibrações às 464.067 ottobacias: 137.052 na classe A, 177.332 na B, 105.382 na C e 44.301 na D. Figura da landing page do sistema Modelagem (30/09/2026).
  • Modelagem e regionalização. Assinaturas de vazão, intervalo conformal e classe de confiança A–D em cada ottobacia; série diária sob demanda para qualquer trecho.
  • Curva-chave e HAND. A lâmina de referência em 463.105 trechos da BHO 2017 e o HAND alinhado à drenagem da BHO, não à que o modelo digital de elevação inventa.
  • Elasticidade. A ponte de Budyko responde por unidade hidrográfica da BHO ou da BHAE: quanto a média, a Q95 e a cheia mudam quando o clima muda.
  • Webservice ANA. Selecionar estações pela bacia de um rio: a ottobacia 8629111 (Rio Negro, PR/SC, 9.829 km²) devolve 33 estações dentro do contorno e 72 com 20 km de margem.
  • Balanço hídrico e acumulação de demandas. Propagação em cascata pela topologia, o uso clássico do painel legado.

Nenhum sistema importa código de outro. Quando um deles precisa da BHO, chama o núcleo compartilhado diretamente, com o motivo escrito no código. Assim, se este sistema cair, o vizinho não cai junto.

Dados, método e limitações

O que entra, o que sai e o que ainda não é possível

Dados

  • BHO 2017 5k (bho_2017_v_01_05_5k, 2018): 464.067 trechos, 93.394 rios nomeados, 43 campos. A referência.
  • BHAE 2023 (bhae_v_01_01): 482.349 trechos, 83.494 rios nomeados, com HGM e Curve Number 2022.
  • Ambas no PostGIS do DPM, em leitura; a topologia em cache local.

Validação

  • Área propagada pela topologia confere com a base: Amazonas 5.921.836 km² (0,00%); Rio Negro 9.839 km².
  • Em 167.091 bacias acima de 100 km², erro mediano 0,000%; só 53 (0,03%) passam de 1%, por código de curso inválido na própria base.
  • As duas bases concordam no Jequitinhonha: 69.815 km² (BHO) e 69.811 km² (BHAE).
  • Uma única regra de curso d'água, fixada por teste, onde o Java tinha duas que discordavam.

Limitações

  • A BHO não traz cota: o perfil é hidrológico (área acumulada), não altimétrico.
  • O São Francisco leva cerca de 8 s na primeira visita.
  • 53 bacias têm curso d'água inválido na base; é qualidade de dado da BHO, não do porte.
  • A BHAE não tem atributos climáticos próprios; toma emprestado da BHO por centroide.
  • Sem banco, contorno, hidrografia e ponto não respondem; montante, jusante e perfil continuam funcionando.
Estágio e próximos passos

Estável desde agosto de 2026

Concluído
  • As seis consultas e os seis produtos do painel BHO2017 do FERAH/OpenJUMP, portados e verificados (25/08/2026).
  • Duas bases (BHO 2017 5k e BHAE 2023) com topologia em memória e cache de respostas.
  • Perfil, composição, relação entre pontos, lâmina d'água e código Otto, que o painel legado não tinha.
  • Exportação em Shapefile e GeoJSON com procedência.
Em uso interno
  • Sistema em operação no ambiente interno do DPM, sem endereço público.
  • O quadro de estado dos sistemas (04/09/2026) registra "estável, nada pendente".
Previsto
  • Camada de mancha de inundação por ottobacia, ligada ao HAND, prevista na documentação do sistema Curva-chave.
  • Contorno das bacias muito grandes em menos de um segundo, quando o servidor tiver a biblioteca geométrica mais nova.
Referências

Bases, método e documentação

Bases e método

  1. ANA. Base Hidrográfica Ottocodificada Multiescalas 2017 5k. metadados.snirh.gov.br.
  2. ANA. Base Hidrográfica Ottocodificada por Área Elementar (BHAE), versão 2023. Catálogo de metadados do SNIRH: metadados.snirh.gov.br.
  3. Pfafstetter, O. Classificação de bacias hidrográficas: metodologia de codificação. Rio de Janeiro: DNOS, 1989. Manuscrito não publicado.
  4. Verdin, K. L.; Verdin, J. P. A topological system for delineation and codification of the Earth's river basins. Journal of Hydrology, v. 218, p. 1–12, 1999. doi:10.1016/S0022-1694(99)00011-6.
  5. Strahler, A. N. Quantitative analysis of watershed geomorphology. Transactions, American Geophysical Union, v. 38, n. 6, p. 913–920, 1957.

Documentação do projeto

  1. FERAH. Núcleo BHO: regras de navegação Otto (docs/03) e implementação web dos módulos BHO e Webservice (docs/09), agosto de 2026. Documentos internos do DPM.
  2. FERAH. Estado dos sistemas, retrato de 04/09/2026 (docs/30-migracao). Documento interno.
  3. FERAH. Legado: painel BHO2017 do FERAH/OpenJUMP (org.snirh.util.analiseottobacia), origem das regras portadas.
Glossário breve
Ottobacia
Polígono de contribuição direta de um trecho de rio; a unidade da BHO.
Código Otto (cobacia)
Número que guarda a posição do trecho na rede, pela codificação de Pfafstetter.
Curso d'água (cocursodag)
O rio, da nascente à foz, a que o trecho pertence; um prefixo do código.
Montante e jusante
O que drena para o trecho e para onde o trecho drena.
Exutório
A seção de saída de uma bacia.
Ordem de Strahler
Hierarquia da rede: 1 nas cabeceiras; duas de mesma ordem que se juntam formam a ordem seguinte.
Hidrorreferenciar
Achar a ottobacia que contém uma coordenada.
Dominialidade
Se o rio é de domínio federal (cruza estados ou países) ou estadual.

Translation notes译文说明

Assisted technical translation. For quotations, figures or engineering decisions, consult the Portuguese source with the PT button. Figures and linked documents retain their original language.

本页为辅助翻译。引用数据、技术条文或用于工程决策时,请点击PT查阅葡萄牙语原文。图中标注和所附文件保留原文。