O projeto de integração dos mapas ENC ao QGis na forma de Geopackage está concluído. Este artigo completa os dois artigos já publicados sobre a simbologia ENC do banco de dados do Geopackage.
Adição de simbologia ao Geopackage
A simbologia padrão para as tabelas em um geopacote está contida em uma tabela chamada layer_styles, que só é criada se você usar a opção salvar por padrão no botão de estilo.
Depois de clonar as tabelas no arquivo ENC, a tabela não existe. Portanto, vamos importar a tabela que contém toda a simbologia para os mapas ENC.
Observação: a tabela layer_styles é uma tabela de sistema, ao contrário da tabela natsurf, que é uma tabela de dados simples. Ao contrário das tabelas de dados, as tabelas de sistema não aparecem no painel do explorador. Você precisa usar o Gerenciador de banco de dados QGis (menu Banco de dados -> Gerenciador de banco de dados) para visualizar e manipular tabelas de sistema, como a layer_styles. No entanto, o natsurf estará visível e poderá ser manipulado como qualquer outra camada de dados.
Esse geopacote contém uma tabela, denominada layer_styles, com as definições de simbologia de 153 tabelas S57, bem como uma tabela denominada natsurf, que será usada para formatar a renderização da tabela “nature of the seabed” (SBDARE).
Para integrar essas tabelas ao seu arquivo ENC (aqui ENC.gpkg):
- Abra o gerenciador de banco de dados no QGis.
- Você já deve ter a conexão geopackage->ENC.gpkg. Caso contrário, clique com o botão direito do mouse em “Geopackage”->nova conexão e aponte para o arquivo ENC.gpkg.
- Conecte-se à tabela layers_natsurf.gpkg baixada (clique com o botão direito do mouse em “Geopackage” ->nova conexão e aponte para o geopackage baixado)
- Selecione layer_styles em layers_natsurf.gpkg e, em seguida, clique com o botão direito do mouse em->add to canvas e você terá a tabela layer_styles na lista de camadas carregadas.
- Selecione natsurf em layers_natsurf.gpkg e, em seguida, clique com o botão direito do mouse em->adicionar à tela e você terá a tabela natsurf na lista de camadas carregadas.
- Selecione o geopackage ENC.gpkg no gerenciador de banco de dados.
- No menu Tabela, selecione Importar camada/arquivo
- Na lista de camadas, selecione natsurf e, em seguida, OK
- Repita a operação para a camada layer_styles.
A versão atual de layer_styles contém layouts de simbologia para 153 camadas. Lembre-se de verificar regularmente se há alguma atualização disponível para download.
Essa simbologia usa símbolos svg que você precisa baixar em seu computador. Ao clicar aqui, você fará o download de um arquivo “nauticalV3” que contém todos os símbolos svg necessários, bem como um diretório chamado “XML” com símbolos adicionais para o QGis.
Para instalar o diretório náutico, consulte o artigo Criação de um banco de dados Geopackage para mapas ENC (parte 2: adição de simbologia).
A tabela layer_styles contém a simbologia de 153 camadas, as camadas usuais para arquivos ENC. No entanto, pode haver até 210 camadas possíveis. Se, no seu caso, a tabela layer_styles não contiver uma ou mais das camadas do seu projeto, consulte o artigo Atualização (2): simbologia ENC com o Geopackage no QGis para adicionar essas simbologias ausentes dos arquivos de estilo .qml para todas as camadas (V1, V2 e V3), que podem ser baixados aqui.
Simbologias que mudam com essa nova versão
Os arquivos qml contidos no diretório qmlV3 são adaptados à cadeia de processamento atualizada, que recupera as primitivas e atribui os valores POSACC e QUAPOS às várias camadas S57, mas também a determinadas simbologias que foram especificadas. Se você começar com a cadeia de processamento V3, não precisará fazer nada para configurar essas simbologias. Elas são definidas por padrão em layer_stylesV3. Se estiver migrando de uma base de geopacote V2 para a V3, consulte o artigo Update(2): ENC symbology with Geopackage under QGis para a adição dessas simbologias ausentes nos arquivos de estilo .qml para todas as camadas (V1, V2 e V3).
Soundg (sondas batimétricas)
A tabela a seguir mostra a simbologia V3 da camada SOUNDG e os valores dos atributos usados para formatá-la.
Obstrn (Obstruções)
A tabela a seguir mostra a simbologia V3 da camada OBSTRN (pontos) e os valores dos atributos usados para formatá-la
UWTROC (rocha submersa/exposta)
A tabela a seguir mostra a simbologia V3 da camada UWTROC e os valores dos atributos usados para formatá-la
WRECKS (Destroços)
A tabela a seguir mostra a simbologia V3 da camada WRECKS e os valores dos atributos usados para formatá-la
DEPCNT (Contornos batimétricos)
A nova versão da simbologia leva em conta a qualidade dos dados (isóbatas aproximadas).
Symbole | VALDCO | QUAPOS | Label |
---|---|---|---|
>=0 | Isobathes Depth contours |
||
<0 | Isobathe découvrante Drying contour |
||
4 ou 5 | Isobathes approchées Approximate depth contours |
COALNE (litoral)
Foi adicionada uma nova categoria: Não pesquisado quando o atributo QUAPOS é 4 ou 5. Ela é simbolizada por uma linha tracejada
LNDELV (Linhas de contorno)
Assim como as isóbatas, as linhas de contorno agora são simbolizadas com uma linha tracejada quando o valor de QUAPOS é 4 ou 5.
LNDMRK, SEAARE, UWTROC, LNDELV, OBSTRN, WRECKS (Tipo de ponto)
Os rótulos dos valores de profundidade ou elevação dessas camadas levam em conta o valor QUAPOS. Eles agora têm um prefixo PA (Approximate Position, posição aproximada) quando o QUAPOS tem um valor de 4 e um prefixo PD (Doubtful Position, posição duvidosa) quando o QUAPOS tem um valor de 5.
SBDARE (natureza dos fundos)
A nova simbologia requer algum trabalho especial. Nas primeiras versões, implementamos uma simbologia que usava a tabela natsurf para formatar os rótulos necessários para a natureza do plano de fundo. Todo o processo era gerenciado no nível da expressão de geração de rótulos. Embora essa solução fosse viável para um pequeno número de mapas no banco de dados, os tempos de cálculo necessários para grandes números tornaram-se proibitivos.
Para esta versão final, optamos por implementar um script python que gera um atributo “Label” na tabela SBDARE. Esse atributo é usado como um rótulo e permite que a camada seja exibida quase instantaneamente.
Carregue a camada pt_SBDARE e a tabela natsurf em seu projeto.
Você precisa criar o atributo Label na tabela pt_SBDARE:
Abra a tabela de atributos -> Calculadora de campos
Nomeie o campo Label, do tipo Text, e insira um valor padrão de ”.
No console python, carregue o script Label_sbdare.py, que pode ser baixado aqui.
Depois de executados, os rótulos aparecerão no atributo Label (Rótulo) da tabela:
LIGHTS (Luzes)
A simbologia das luzes foi aprimorada. Agora, três tipos de luzes são simbolizados
- Luzes de setor
- Luzes direcionais
- Luzes principais e secundárias
Para essa última categoria, há dois tipos de representação disponíveis
- Tipo ECDIS com círculos coloridos
- Tipo de mapa em papel com símbolos coloridos
No diretório qmlV3, há dois arquivos de simbologia para a camada Luzes
- pt_lightsPoint.qml
- pt_lightsMultipoint.qml
A tabela Lights resultante do processo de importação V1 e V2 é do tipo Point. No entanto, para que seja possível recuperar as primitivas, as modificações no comando ogr2ogr produzem uma camada de luzes multiponto. Por padrão, a simbologia da tabela layer_styles V3 é a de Multipoints.
Se estiver trabalhando com uma base com a tabela do tipo Pontos, poderá carregar a simbologia correspondente e salvá-la como a simbologia padrão em layer_styles.
Essas duas simbologias foram corrigidas por um desvio angular em comparação com as versões anteriores. Trabalhar com camadas em coordenadas geográficas significa que as distâncias latitudinais e longitudinais não estão em uma proporção constante. Se um delta X e um delta Y tiverem o mesmo comprimento no equador, quanto mais longe você estiver do equador, mais o delta X diminuirá em relação ao delta Y. Para desenhar as linhas dos setores a partir do fogo, criamos um ponto à mesma distância X e Y na direção do setor. Para que o ângulo resultante seja o do setor, uma correção deve ser aplicada multiplicando-se pela tangente da latitude do ponto. Os ângulos reais exibidos nas versões anteriores desviavam-se em até 10° do valor dos atributos SECTR1 e SECTR2. A correção tangente(Latitude) é uma aproximação que reduz esse desvio para cerca de 1°.