Como criar um mapa dos mares do mundo funcional
Eu precisava disso para um projeto de logística offshore há uns três anos. O objetivo era visualizar rotas marítimas combinadas com batimetria e zonas econômicas exclusivas. O resultado foi um mapa que usamos como referência interna durante quase dois anos antes de migrar para uma plataforma mais pesada. Vou explicar como fiz, porque a primeira versão que construí estava errada em vários pontos que ninguém comenta.
O que você realmente precisa no mapa dos mares do mundo
A maioria das pessoas começa com o que está disponível gratuitamente na web e acha que isso basta. O problema é que dados abertos de mares têm resoluções completamente diferentes dependendo da fonte. O ETOPO1 da NOAA tem 1 arco-minuto de resolução, o que significa que recifes rasos e canais de navegação importantíssimos simplesmente não aparecem. Você pode estar desenhando uma rota por cima de algo que na realidade tem menos de dois metros de profundidade. Eu aprendi isso na prática quando um colega meu quase mandou um relatório para um cliente com uma rota que cruzava uma área que no ETOPO1 aparecia como 40 metros de profundidade, mas que no sonda local do porto correspondente tinha 6 metros. A diferença era de 34 metros. Isso acontece porque dados batimétricos costeiros muitas vezes vêm de sonar multifeixe com resolução centimétrica, enquanto dados oceânicos abertos são basicamente interpolados a partir de sondas esparsas de navios-hidrográficos das décadas de 1970 a 1990.
Então o primeiro passo é decidir qual nível de resolução você realmente precisa. Se for para visualização geral, o ETOPO1 ou o GEBCO 2023 funcionam. Se for para anything que envolva tomada de decisão operacional, você precisa de dados hidrográficos oficiais ou pelo menos do General Bathymetric Chart of the Oceans com resolução maior.
Fontes de dados e como combinar camadas
Eu uso principalmente três fontes. A primeira é o ETOPO1 da NOAA, disponível em formato netCDF. A segunda é o GEBCO Grid, que atualiza periodicamente e tem dados mais recentes. A terceira, quando preciso de detalhe costeiro, é o SIO (San Diego Supercomputing Center) com seus grids batimétricos de alta resolução para áreas específicas. Depois de baixar os dados, o processo básico é: importar o grid batimétrico como raster, aplicar uma projeção cônica equivalente ou Mercator conforme o seu caso de uso, criar uma classificação de cores com intervalos batimétricos, e sobrepor limites de ZEE (Zona Econômica Exclusiva) se necessário. Para as ZEEs, o dataset do CIESIN da Columbia University é o mais completo que encontrei, mas ele tem problemas de fronteira em alguns países que dispute áreas marítimas. Não é um erro técnico, é geopolítica mesmo. O Brasil e a França, por exemplo, têm zonas que se sobrepõem no Atlântico Sul dependendo de como você lê o Tratado de Paris de 1970.
Para rotas marítimas, eu normalmente puxo dados do OpenSeaMap, que é colaborativo e tem informações sobre boias, faróis e obstáculos submersos reportados por marinheiros. A precisão varia muito dependendo da região. No Mediterrâneo ocidental os dados são razoavelmente confiáveis. No Atlântico Sul, perto das rotas que vão do Rio de Janeiro até a África, há lacunas enormes porque poucos navios contribuem com dados naquela área específica.
Configurando o mapa dos mares do mundo no QGIS
Se você for usar QGIS, que é o que eu recomendo para a maioria das pessoas, o fluxo é relativamente direto. Abra o plugin QuickOSM ou use diretamente a camada raster carregando o arquivo netCDF do ETOPO1. O QGIS converte automaticamente para GeoTIFF na primeira visualização. Aí você aplica um esquema de cores batimétrico — o padrão que eu uso é o da NOAA, com azuis escuros para águas profundas e verdes/amarelos para águas rasas, porque é o que os navegantes estão acostumados a ler. Para adicionar contornos batimétricos, você usa o processamento de interpolação do QGIS ou exporta para uma ferramenta como GMT (Generic Mapping Tools) se quiser linhas isobáticas precisas. O GMT é mais trabalhoso mas produce resultados muito melhores para publicações técnicas. Eu gastava cerca de 4 horas usando GMT para um mapa global com contornos a cada 200 metros de profundidade. Com o QGIS puro, consigo algo aceitável em 30 minutos, embora a qualidade visual seja inferior.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Um detalhe importante que quase todo mundo esquece: a datum. O ETOPO1 usa WGS84, mas muitos dados batimétricos costeiros usam datums locais como o SAD69 no Brasil ou o NAD27 nos EUA. Se você sobrepor camadas com datums diferentes sem fazer a transformação correta, os deslocamentos podem chegar a 100 a 200 metros perto da costa. Isso é suficiente para colocar um recife fora da posição real no seu mapa.
Problemas reais que você vai encontrar
Aqui estão os que mais me atormentaram. O primeiro é a inconsistência de escala. Quando você faz um mapa mundial, não dá para ter o mesmo nível de detalhe na costa do Brasil e no meio do Pacífico. O ETOPO1 é uniforme, mas a realidade não é. Áreas costeiras têm dados muito mais precisos do que o aberto. A solução que eu encontrei foi criar camadas separadas: uma camada global de fundo com o ETOPO1 em resolução baixa, e depois sobrepor tiles de alta resolução nas áreas onde eu precisava de precisão. No QGIS isso funciona bem se você usar o sistema de camadas com escalas de visualização definidas. Assim o mapa carrega rápido quando está zoomed out e troca para os dados finos quando você aproxima de uma costa específica.
O segundo problema é a questão legal. Dados batimétricos de muitos países são classificados ou têm restrições de uso. O Brasil, por exemplo, restringe a divulgação de cartas náuticas oficiais pela Marinha. Usar dados da Hydrographic Center da Marinha do Brasil (DHN) para fins comerciais pode gerar problema. Para uso acadêmico e interno a coisa é mais frouxa, mas se você for publicar o mapa publicamente, consulte um advogado especializado em propriedade intelectual marítima. Eu perdi dois meses refazendo um mapa porque usei dados da DHN sem verificar a licença corretamente. O terceiro problema, e este é o mais chato, é a atualização. O fundo do oceano não é estático. Vulkões submarinos erupcionam, correntes alteram bancos de areia, e navios encalham criando novos obstáculos. Os dados que você usa hoje podem estar desatualizados em cinco anos. O GEBCO atualiza a cada ciclo de publicação, mas regiões como o Mar do Caribe ou o Golfo da Guiné podem ter dados com mais de 20 anos. Se o seu mapa é para navegação, isso é um risco real. Se é para educação ou visualização, provavelmente não importa tanto.
Alternativas quando o QGIS não basta
Quando precisei de interatividade — permitir que usuários finais fechassem zoom em qualquer ponto do oceano e vissem a profundidade exata — o QGIS não era a ferramenta certa. Aí eu migrei para uma stack com PostGIS e GeoServer. O banco de dados recebe os grids batimétricos como tabelas raster, e o GeoServer exponho como WMS e WFS. O tempo de resposta para requisições de profundidade em pontos específicos fica na casa dos 200 a 500 milissegundos, dependendo da resolução do grid consultado. Se você não quer montar toda essa infraestrutura, existe a opção mais simples de usar o Leaflet com tiles pré-renderizados. Você gera os tiles uma vez com uma ferramenta como MapTiler ou even com scripts Python usando o pacote mercantile, e depois monta um mapa web básico. O custo de manutenção é quase zero depois que os tiles estão prontos, mas você perde a capacidade de consultar dados brutos diretamente.
Dicas práticas que ninguém conta
Não confie cegamente nas cores do seu mapa. Esquemas de cores batimétricos padrão podem esconder variações importantes. Eu já vi mapas onde a transição entre 200 e 500 metros parecia suave, mas na realidade havia um degrau batimétrico abrupto — uma trincheira ou cânion submarino — que o esquema de cores contínuo simplesmente suavizava demais. Use classificações breaks baseadas em percentis ou em valores batimétricos relevantes para a sua região de interesse, não o esquema padrão do software. Outra coisa: sempre verifique a cobertura polar. O ETOPO1 cobre o mundo inteiro, mas muitos datasets batimétricos gratuitos têm buracos reais nas regiões polares porque a coleta de dados submarinos no Ártico e Antártida é drasticamente mais cara e difícil. Se o seu mapa inclui áreas acima de 65 graus de latitude ou abaixo de -60, você vai precisar de fontes adicionais como o BEDMAP2 para a Antártida.
E finalmente, documente tudo. Fonte dos dados, datum, resolução, data de coleta mais recente, e quaisquer limitações conhecidas. Um mapa dos mares do mundo sem metadados adequados é basicamente uma imagem bonita com potencial para induzir erro. Eu tenho um padrão próprio de documentação que leva uns 20 minutos para preencher por mapa, mas já me salvou de várias situações em que alguém questionou a precisão dos dados.