S57Manager : gérer des données ENC S-57 dans QGIS avec PostGIS

Import, structuration et exploitation des cartes marines officielles dans une base spatiale robuste


Introduction

Les cartes marines au format S-57 (ENC – Electronic Navigational Charts) sont des données officielles, structurées, complexes et riches sémantiquement.
Si elles sont largement utilisées dans les systèmes de navigation professionnelle, leur exploitation directe dans un SIG généraliste comme QGIS reste délicate.



Le plugin S57Manager est né de ce constat :

offrir une solution fiable, structurée et reproductible pour importer, stocker et afficher des données S-57 dans QGIS, en s’appuyant sur des bases de données spatiales modernes.

Dans ce premier article, nous présentons S57Manager dans sa globalité, puis nous détaillons l’option PostGIS, particulièrement adaptée aux usages professionnels, collaboratifs et multi-projets.

Le plugin correspond l’automatisation de la chaîne de traitement publié dans les deux articles :

Cartes ENC dans QGis avec Postgis(1)

Cartes ENC dans QGis avec Postgis(2)


1. Qu’est-ce que S57Manager ?

1.1 Objectifs du plugin

S57Manager vise à :

  • importer des fichiers ENC S-57 dans QGIS
  • décoder leur structure complexe (objets, attributs, géométries)
  • stocker les données de manière normalisée et exploitable
  • faciliter l’affichage et le filtrage dans QGIS

👉 Le plugin s’adresse autant :

  • aux géomaticiens
  • qu’aux gestionnaires portuaires
  • bureaux d’études
  • ou services techniques travaillant avec des données marines


1.2 Architecture générale

  • Import via GDAL / OGR
  • Décodage logique des objets S-57
  • Stockage structuré (PostGIS ou GeoPackage)
  • Affichage contrôlé dans QGIS
  • Outils spécifiques ENC (purpose, échelles, filtres)


2. Pourquoi PostGIS pour les données S-57 ?

2.1 Les enjeux des données ENC

Les ENC ne sont pas de simples couches vectorielles :

  • très grand nombre de tables
  • relations implicites entre objets
  • attributs codés
  • volumes importants
  • mises à jour possibles

PostGIS répond parfaitement à ces contraintes.


2.2 Avantages du stockage PostGIS

Avec S57Manager + PostGIS :

  • ✔ stockage centralisé
  • ✔ performances sur gros volumes
  • ✔ requêtes spatiales avancées
  • ✔ multi-utilisateurs
  • ✔ sauvegardes et mises à jour maîtrisées
  • ✔ intégration dans des chaînes SIG existantes


3. Configuration du mode PostGIS dans S57Manager

3.1 Paramétrage de la connexion

Le paramétrage de la connexion à la base Postgresql/postgis se fait directement dans QGIS. Le plugin recherche et affiche les connexions disponibles dans le projet en cours:


3.2 Structure des tables générées

Quand on clique sur OK dans le dialogue précédent, le plugin vérifie l’existence et le cas échéant il crée 5 schémas dans la base de données sélectionnée:

  • enc, shéma principal où seront stockées tous les fichiers S57 importées
  • linesenc,pointsenc et polysenc, schémas d’import temporaires. Ils accueillent les imports ogr pour permettre les opérations nécessaires aux géométries.Une fois les traitements effectués et les données finales copiées dans le schéma enc, ils sont vidés.
  • encm, pour l’instan non utilisé mais prévu pour des versions futures.

Le schéma ENC contient toutes les tables des fichiers S57

  • séparation par types géométriques(points: pt_, lignes: li_,polygones: pl_)
  • tables d’objets S-57
  • tables de relations
  • gestion des identifiants RCID

👉 Le schéma est conçu pour être lisible, documentable et interrogeable.


4. Importer une ENC S-57 vers PostGIS

4.1 Lancement de l’import

Le plugin recherche et charge tous les fichiers .000 dans le répertoire et sous-répertoires et il effectue:

  • la sélection des fichiers S-57
  • le suivi de progression
  • il affiche des logs détaillés


4.2 Contrôle et validation des données ENC dans PostGIS

L’import de données ENC dans PostGIS ne constitue qu’une première étape.
Avant toute exploitation cartographique ou analytique, il est indispensable de procéder à un contrôle qualité rigoureux.

Les ENC étant des données normées, critiques pour la sécurité maritime, toute erreur de structure ou d’interprétation peut conduire à des résultats incohérents, voire dangereux.

Le contrôle repose sur trois piliers complémentaires :

  1. la vérification des couches importées
  2. l’intégrité des géométries
  3. la cohérence des attributs


4.2.1 Vérification des couches importées

Après l’import dans PostGIS, la première vérification consiste à s’assurer que toutes les classes d’objets attendues sont bien présentes.

Présence et exhaustivité

Selon le contenu de l’ENC, on doit retrouver notamment :

  • les objets hydrographiques (zones de profondeur, sondes)
  • la ligne de côte et les surfaces terrestres
  • les aides à la navigation
  • les dangers et obstructions
  • les zones réglementées ou particulières

L’absence d’une couche peut révéler :

  • une erreur lors de l’import
  • un filtrage involontaire
  • une incompatibilité avec la version S-57 utilisée

Organisation logique

Dans PostGIS, les données peuvent être organisées :

  • par schéma (hydrographie, navigation, réglementation…)
  • par type géométrique (points, lignes, polygones)
  • par classe S-57

Une structuration claire facilite :

  • la maintenance
  • la lecture par des tiers
  • l’automatisation des traitements

👉 S57Manager aide à conserver une organisation lisible, compatible avec les pratiques SIG.


4.2.2 Intégrité des géométries

Les ENC reposent sur des géométries partagées et topologiques, ce qui rend leur import plus délicat qu’un jeu de données vectorielles classique.

Géométries valides

Il est indispensable de vérifier que :

  • les polygones sont fermés
  • les géométries ne sont pas auto-intersectées
  • les lignes ne sont pas dégénérées
  • les points ne sont pas dupliqués inutilement

Dans PostGIS, les fonctions de validation permettent de :

  • détecter les géométries invalides
  • les corriger si nécessaire
  • documenter les anomalies

Une géométrie invalide peut :

  • empêcher l’affichage dans QGIS
  • fausser des calculs de surface ou de distance
  • bloquer des opérations spatiales ultérieures

Cohérence topologique

Même si la topologie S-57 n’est pas toujours conservée telle quelle après import, certaines règles doivent rester cohérentes :

  • une zone de profondeur ne doit pas se superposer arbitrairement à une zone terrestre
  • une ligne de côte doit correspondre à la limite terre/mer
  • les objets ponctuels doivent se situer dans des zones logiquement compatibles

Ces contrôles sont particulièrement importants lors de l’agrégation ou de la généralisation des données.


4.2.3 Cohérence des attributs

Les attributs S-57 sont à la fois riches et contraignants.
Ils doivent être vérifiés avec autant de soin que les géométries.

Présence des attributs essentiels

Chaque classe d’objet possède des attributs :

  • obligatoires
  • conditionnels
  • optionnels

L’absence d’un attribut clé peut indiquer :

  • une erreur d’import
  • une mauvaise interprétation du schéma S-57
  • une perte d’information lors de la conversion

Valeurs codées et domaines

De nombreux attributs utilisent :

  • des valeurs numériques codées
  • des listes fermées définies par l’IHO

Il est crucial de vérifier que :

  • les valeurs sont dans les domaines autorisés
  • les codes correspondent à leur signification
  • les champs ne contiennent pas de valeurs aberrantes

Une valeur incorrecte peut modifier :

  • l’interprétation cartographique
  • la hiérarchie des objets
  • les règles d’affichage ou de priorité

Cohérence sémantique

Enfin, certains contrôles relèvent du bon sens nautique :

  • un danger ne peut pas être situé à terre
  • une aide à la navigation doit être cohérente avec son environnement
  • une zone réglementée doit avoir un type et une catégorie compatibles

Ces vérifications croisées sont souvent facilitées par :

  • des requêtes spatiales PostGIS
  • des jointures entre couches
  • une visualisation dans QGIS


Pourquoi ces contrôles sont essentiels

PostGIS offre une puissance d’analyse exceptionnelle, mais il ne corrige pas automatiquement les incohérences sémantiques ou normatives.

Dans le cas des ENC :

  • la qualité des données conditionne directement leur fiabilité
  • les erreurs peuvent se propager dans les analyses
  • un contrôle initial évite des problèmes en aval

👉 S57Manager s’inscrit dans cette logique :
non pas seulement importer, mais importer proprement, dans le respect de la structure et du sens nautique des données.


5. Exploitation dans QGIS

5.1 Affichage par familles d’objets

Face à la richesse et à la densité des données ENC, l’affichage simultané de toutes les couches conduit rapidement à une carte illisible.
Une bonne pratique consiste à organiser l’affichage par familles d’objets, c’est-à-dire par grands ensembles fonctionnels partageant une logique nautique commune.

On distingue par exemple :

  • les objets hydrographiques (zones de profondeur, sondes, isobathes),
  • les éléments du trait de côte et des surfaces terrestres,
  • les aides à la navigation (balises, feux, amers),
  • les dangers et obstructions,
  • les zones réglementées ou particulières.

Dans QGIS, cette organisation peut être mise en œuvre via :

  • des groupes de couches,
  • des styles partagés par famille,
  • des filtres d’affichage conditionnels,
  • ou des schémas distincts côté PostGIS.

L’affichage par famille présente plusieurs avantages :

  • il facilite la lecture progressive de la carte, en révélant l’information par couches logiques ;
  • il permet un contrôle visuel rapide de la cohérence des données (objets manquants, anomalies de position) ;
  • il prépare le terrain pour des styles avancés, proches des règles S-52, sans chercher à les reproduire intégralement.

👉 S57Manager s’appuie sur cette logique en conservant une structuration compatible avec les familles d’objets ENC, permettant à l’utilisateur de construire des projets QGIS lisibles, évolutifs et adaptés à ses usages.

5.2 Filtrage des couches affichées

Le menu « Outils ENC » permet un filtrage des couches affichées selon l’usage et/ou l’échelle d’affichage


Filtrage par purpose

Les ENC sont conçues pour des usages très différents, allant de la planification de route à la navigation côtière ou portuaire.
Cette diversité est formalisée par la notion de purpose, qui correspond au niveau d’utilisation cartographique de la donnée (usage général, côtier, approche, port, etc.).

Appliquer un filtrage par purpose permet de n’afficher que les objets pertinents pour un contexte donné, en évitant la surcharge visuelle et les informations inutiles à l’échelle considérée.
Un objet valide dans une ENC de navigation générale peut devenir inadapté, voire trompeur, dans un contexte portuaire, et inversement.

Dans un environnement PostGIS / QGIS, ce filtrage peut être mis en œuvre :

  • via des attributs hérités de l’import ENC,
  • par des vues SQL dédiées à chaque purpose,
  • ou par des règles de visibilité dépendantes de l’échelle.

Les bénéfices sont multiples :

  • une meilleure lisibilité cartographique, adaptée au niveau de détail attendu ;
  • une cohérence entre échelle, usage et contenu ;
  • une base solide pour des styles différenciés selon le contexte de navigation.

👉 S57Manager facilite ce filtrage en conservant l’information de purpose lors de l’import et en permettant de structurer les couches et requêtes selon les usages ciblés, sans imposer une symbolisation rigide.


Échelle d’affichage

Dans les ENC, l’échelle n’est pas un simple paramètre cartographique : elle conditionne la validité même de l’information affichée.
Chaque objet est conçu pour être interprété à une plage d’échelles donnée, en lien étroit avec son purpose et son niveau de généralisation.

Afficher un objet en dehors de son domaine d’échelle peut entraîner :

  • une perte de lisibilité (densité excessive d’objets),
  • une fausse précision (objets trop détaillés à petite échelle),
  • voire une interprétation erronée pour l’utilisateur final.

La gestion de l’échelle d’affichage permet donc :

  • d’adapter automatiquement la visibilité des couches au niveau de zoom,
  • de préserver la cohérence entre détail géométrique et contexte d’usage,
  • de rapprocher le comportement de QGIS de celui d’un ECDIS, tout en conservant la souplesse d’un SIG.

Dans une architecture PostGIS ou GeoPackage, cette logique peut être implémentée :

  • par des plages d’échelles définies au niveau des couches,
  • par des vues ou requêtes filtrant les objets selon l’échelle courante,
  • ou par une combinaison purpose / échelle pour un contrôle plus fin.

👉 S57Manager propose des outils pour définir et ajuster les échelles minimale et maximale d’affichage des couches sélectionnées, permettant une cartographie progressive, lisible et conforme à l’esprit des ENC, sans complexifier inutilement le projet QGIS.


5.3 Symbolisation personnalisée

Si on charge les couches S57 directement, on se retrouve avec des points, des lignes et des polygones avec une symbologie par défaut, très éloigne d’une carte marine.
S57Manager permet de trouver directement une symbologie de type ECDIS:

Pour cela il y a deux étapes à respecter:

  • La première est d’installer tous les symboles svg nécessaires: ceux-ci sont contenus dans le plugin et ils sont installés dans le profil utilisateur en cliquant sur le bouton « Installler bibliothèque de symboles svg » du dialogue Options S57.

  • La deuxième est d’installer, dans la base de données Postgis la symbologie par défaut pour chacune des couches S57.

Le bouton » Installer la symbologie par défaut S57″ vérifie si la table layer_styles existe dans le schéma public de la base Postgis. Si elle n’existe pas, elle est créé et les symbologies par défaut des 260 couches sont ajoutées. Si la table existe déjà, les symbologies par défaut des 260 couches sont ajoutées aux existantes.


Conclusion

Le mode PostGIS de S57Manager constitue une solution robuste pour intégrer durablement les données ENC dans un SIG professionnel.
Il s’adresse clairement aux environnements où pérennité, performance et collaboration sont des critères essentiels.

👉 Dans le prochain article, nous verrons comment S57Manager permet une approche plus légère et autonome grâce au GeoPackage.


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é !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *