Exibição de cartas náuticas S57 no QGis 3.X

Neste artigo, você descobrirá como carregar um arquivo ENC no formato S57 no QGis 3.34 e fazer o download de uma simbologia de carta náutica para aplicar a ele.

Como o artigo anterior sobre o formato S57 e como visualizar cartas náuticas eletrônicas (ENCs) com o QGis data de 2015, já era hora de publicar uma atualização para as versões atuais do QGis (3.34 no momento da publicação deste artigo).

As fontes de informação para áreas costeiras não se limitam às fontes terrestres tradicionais. Os mapas marinhos podem fornecer informações muito úteis e, em termos de renderização, podem ser usados para produzir documentos ricos e de alto impacto.

As cartas náuticas eletrônicas (ENCs) são a fonte mais adequada para a integração rápida de grandes quantidades de informações. Em um único lote de dados, é possível encontrar todas as informações contidas em uma carta náutica: linha costeira, batimetria, flutuação etc.

Diferentemente dos EUA e de outros países, onde as cartas náuticas são gratuitas e estão disponíveis simplesmente por meio de download, na França elas precisam ser pagas, o que atrasa enormemente sua distribuição e uso.

As cartas ENC são distribuídas em um formato do International Hydrological Bureau (IHB) chamado S-57. Esse formato é um dos formatos vetoriais que podem ser carregados diretamente no QGis. Portanto, você pode abrir um mapa ENC no QGis e exibir seu conteúdo. Mas o problema é que você está exibindo seu conteúdo com símbolos padrão convencionais, que não têm nenhuma relação com a simbologia usada em uma carta náutica.

Este é o resultado do carregamento de um arquivo S-57 no QGis.

Exibição de um mapa ENC S57 com o QGis, usando o carregamento direto

Você pode, é claro, pegar camada por camada e atribuir a ela uma simbologia apropriada. Há cerca de 75 camadas em um ENC clássico.

Sugerimos algo um pouco mais rápido.

Se quiser experimentar esse procedimento e não tiver um mapa ENC em mãos, você pode baixar um mapa americano gratuito no site da NOAA clicando aqui.

Como o procedimento funciona

Em vez de carregar o arquivo S57 diretamente, faremos um processamento preliminar para criar arquivos de forma das diferentes camadas presentes. Isso é essencial se você quiser exibir uma simbologia pré-estabelecida, mas também significa que você pode integrar apenas as camadas desejadas em outros processos atuais.

Para criar os arquivos de forma, usaremos a biblioteca GDAL no Qgis. Usando uma linha de comando, recuperaremos as tabelas S57 e criaremos uma forma para cada tipo de geometria e objeto.

Para fazer isso, basta abrir a janela do shell OSGeo4W:

Osgeo4W Shell

A janela Shell é aberta

Osgeo4W Shell

Vamos traduzir o formato S57 em uma série de arquivos shp que salvaremos em um novo diretório.

A linha de comando a ser inserida é a seguinte:

ogr2ogr -skipfailures output input
output: é o nome de um diretório vazio onde os arquivos shp criados serão armazenados
input: esse é o arquivo S-57 a ser traduzido, com a extensão .000. Observe que a árvore de arquivos S57 não é constante. Certifique-se de inserir o caminho do arquivo com a extensão .000.

Se usarmos essa linha de comando, sem outras opções, por exemplo
ogr2ogr -skipfailures c:\blog\nautical\ENC603360 c:\blog\nautical\FR603360\2\0\FR603360.000

Obteremos uma forma por tipo de objeto S57, por exemplo, o objeto MARCUL (culturas marinhas). O problema é que os objetos SD57 podem ser pontos, linhas ou polígonos simultaneamente. Esse é o caso do MARCUL. Sem nenhuma outra opção na linha de comando, obteremos um shapefile do primeiro tipo encontrado para MARCUL, com as outras geometrias ignoradas.

Portanto, realizaremos três translações:

a primeira, selecionando todas as entidades do tipo ponto presentes:

ogr2ogr -skipfailures -where “OGR_GEOMETRY=’POINT’ or OGR_GEOMETRY=’MULTIPOINT'” C:/test/points C:\test\2D7DK000.000

a segunda, selecionando todas as entidades de linha presentes:

ogr2ogr -skipfailures -where “OGR_GEOMETRY=’LINESTRING’ or OGR_GEOMETRY=’MULTILINESTRING'” C:/test/lines C:\test\2D7DK000.000

o terceiro, selecionando todas as entidades de polígono presentes:

ogr2ogr -skipfailures -where “OGR_GEOMETRY=’POLYGON’ or OGR_GEOMETRY=’MULTIPOLYGON'” C:/test/polygons C:/test\2D7DK000.000

Os erros exibidos correspondem a uma das limitações do formato shapefile. Alguns atributos dos objetos S57 estão no formato “lista”, que não existe no shapefile. A maioria deles são atributos do tipo “categoria” do objeto. Se precisar desses atributos, você precisará transformar os arquivos S57 em um banco de dados postgresql/postgis. Essa opção não será discutida neste artigo. Quando o shapefile é criado, o atributo list é simplesmente ignorado. O restante dos atributos que não estão no formato de lista é transformado sem nenhum problema. A simbologia não levará em conta o tipo específico de objeto, mas usará apenas um símbolo genérico.

Se você observar agora o conteúdo do diretório, verá que as formas foram de fato criadas.

Portanto, você tem até 73 arquivos de forma do tipo ponto, 45 arquivos de forma do tipo linha e 89 arquivos de forma do tipo polígono, mas ainda não há simbologia para o QGis. O número de formas depende dos objetos presentes no mapa que você está processando. Se um tipo de objeto não estiver presente em um arquivo ENC (.000), nenhum shapefile será gerado.

Recursos de simbologia do QGis

Você precisa fazer o download de um arquivo zip que contém

  • um grande número de símbolos svg que criamos e agrupamos em um diretório “nautical”. Por padrão, recomendamos que você copie esse diretório para a raiz da unidade c:.
  • um projeto QGis (versão 3.34) chamado S57.qgs com a atribuição de cada símbolo a cada camada de forma.

Se você instalar o diretório “nautical” em outro local, será necessário editar o arquivo de projeto e substituir todas as ocorrências de C:/nautical pelo seu caminho.

Mantenha o arquivo S57.qgs em um local seguro sem fazer nenhuma outra alteração. Para cada cartão ENC, copie-o para o diretório criado com ogr2ogr. É essencial não usá-lo diretamente, pois qualquer modificação, por exemplo, a ausência de um objeto, será memorizada e você não terá mais esse objeto em um mapa futuro.

Para fazer o download do arquivo, clique aqui.

Exibição do mapa ENC no QGis com a simbologia apropriada

Agora, tudo o que você precisa fazer é copiar o arquivo de projeto QGis baixado, s567.qgs, no diretório com as formas criadas na etapa anterior. Em seguida, carregue esse projeto no QGis.

Se algum objeto estiver faltando no mapa, será exibida uma janela mostrando as camadas ausentes:

objetos ausentes no arquivo S57

Você precisa clicar no botão “Remove unusable layers” (Remover camadas não utilizáveis) e, em seguida, no botão “OK“. Em seguida, você verá os dados com uma simbologia de mapa náutico, depois de aumentar o zoom na nova extensão do mapa (a camada M_COVR corresponde à faixa de domínio do mapa).

Você perceberá que algo está faltando em seu mapa: os valores da sonda. Para adicioná-los, consulte o artigo S57 marine maps with QGis: displaying soundings . Para exibi-las, você não precisa apenas trabalhar na simbologia, pois os objetos SOUNDG têm o valor da profundidade na geometria (XYZ).

Si cet article vous a intéressé et que vous pensez qu'il pourrait bénéficier à d'autres personnes, n'hésitez pas à le partager sur vos réseaux sociaux en utilisant les boutons ci-dessous. Votre partage est apprécié !

Deixe um comentário

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