﻿{"id":16226,"date":"2026-01-28T10:00:00","date_gmt":"2026-01-28T09:00:00","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=16226"},"modified":"2026-01-18T05:18:33","modified_gmt":"2026-01-18T04:18:33","slug":"s57manager-manage-s-57-enc-data-in-qgis-with-postgis","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/","title":{"rendered":"S57Manager: Manage S-57 ENC data in QGIS with PostGIS"},"content":{"rendered":"\n<h1 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Import_structuring_and_use_of_official_nautical_charts_in_a_robust_spatial_database\"><\/span>Import, structuring and use of official nautical charts in a robust spatial database<span class=\"ez-toc-section-end\"><\/span><\/h1>\n\n\n\n<p><a href=\"https:\/\/github.com\/SigEtTerritoires\/S57Manager\" title=\"\">S57Manager<\/a> is a QGIS plugin that enables the structured import, validation and visualization of ENC (S-57) nautical charts using <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/starting-with-postgres-postgis\/\">PostGIS<\/a> or <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/geopackage-format-and-qgis-3\/\">GeoPackage<\/a>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Introduction\"><\/span>Introduction<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Nautical charts in <strong>S-57 format<\/strong> (ENC \u2013 Electronic Navigational Charts) are official, structured, complex datasets with rich semantics.<br>While they are widely used in professional navigation systems, their direct use in a general-purpose GIS such as <strong>QGIS<\/strong> remains challenging.(-><a href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/why-encs-s-57-are-complex-data\/\" title=\"\">Why ENCs (S-57) are complex data<\/a>)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-light-blue ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Contenu <\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Import_structuring_and_use_of_official_nautical_charts_in_a_robust_spatial_database\" >Import, structuring and use of official nautical charts in a robust spatial database<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Introduction\" >Introduction<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#1_What_is_S57Manager\" >1. What is S57Manager?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#11_Plugin_objectives\" >1.1 Plugin objectives<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#12_General_architecture\" >1.2 General architecture<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#2_Why_PostGIS_for_S-57_data\" >2. Why PostGIS for S-57 data?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#21_The_challenges_of_ENC_data\" >2.1 The challenges of ENC data<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#22_Advantages_of_PostGIS_storage\" >2.2 Advantages of PostGIS storage<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#3_Configuring_PostGIS_mode_in_S57Manager\" >3. Configuring PostGIS mode in S57Manager<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#31_Connection_settings\" >3.1 Connection settings<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#32_Structure_of_generated_tables\" >3.2 Structure of generated tables<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#4_Importing_an_S-57_ENC_into_PostGIS\" >4. Importing an S-57 ENC into PostGIS<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#41_Launching_the_import\" >4.1 Launching the import<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#42_Control_and_validation_of_ENC_data_in_PostGIS\" >4.2 Control and validation of ENC data in PostGIS<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#421_Verification_of_imported_layers\" >4.2.1 Verification of imported layers<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Presence_and_completeness\" >Presence and completeness<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Logical_organization\" >Logical organization<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#422_Geometric_integrity\" >4.2.2 Geometric integrity<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Valid_geometries\" >Valid geometries<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Topological_consistency\" >Topological consistency<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#423_Attribute_consistency\" >4.2.3 Attribute consistency<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-22\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Presence_of_essential_attributes\" >Presence of essential attributes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-23\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Coded_values_and_domains\" >Coded values and domains<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-24\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Semantic_consistency\" >Semantic consistency<\/a><\/li><\/ul><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-25\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Why_these_checks_are_essential\" >Why these checks are essential<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-26\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#5_Use_in_QGIS\" >5. Use in QGIS<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-27\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#51_Display_by_object_families\" >5.1 Display by object families<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-28\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#52_Filtering_displayed_layers\" >5.2 Filtering displayed layers<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-29\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Filtering_by_purpose\" >Filtering by purpose<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-30\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Display_scale\" >Display scale<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-31\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#53_Custom_symbolization\" >5.3 Custom symbolization<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-32\" href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/s57manager-manage-s-57-enc-data-in-qgis-with-postgis\/#Conclusion\" >Conclusion<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>The <strong>S57Manager plugin<\/strong> was created to address this issue:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>to provide a <strong>reliable, structured and reproducible solution<\/strong> for importing, storing and displaying S-57 data in QGIS, relying on modern spatial databases.<\/p>\n<\/blockquote>\n\n\n\n<p>In this first article, we present <strong>S57Manager as a whole<\/strong>, then focus on the <strong>PostGIS option<\/strong>, which is particularly well suited for professional, collaborative and multi-project workflows.<\/p>\n\n\n\n<p>The plugin implements the automation of the processing chain described in the following two articles:<\/p>\n\n\n\n<p><a href=\"https:\/\/www.sigterritoires.fr\/index.php\/en\/enc-maps-in-qgis-with-postgis1\/\" title=\"\">ENC charts in QGIS with PostGIS (1)<\/a><br>ENC charts in QGIS with PostGIS (2)<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_What_is_S57Manager\"><\/span>1. What is S57Manager?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"11_Plugin_objectives\"><\/span>1.1 Plugin objectives<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>S57Manager aims to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>import S-57 ENC files into QGIS<\/li>\n\n\n\n<li>decode their complex structure (objects, attributes, geometries)<\/li>\n\n\n\n<li>store the data in a normalized and usable way<\/li>\n\n\n\n<li>facilitate visualization and filtering in QGIS<\/li>\n<\/ul>\n\n\n\n<p>&#x1f449; The plugin is intended for:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GIS specialists<\/li>\n\n\n\n<li>port authorities<\/li>\n\n\n\n<li>consulting firms<\/li>\n\n\n\n<li>technical services working with marine data<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"12_General_architecture\"><\/span>1.2 General architecture<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Import via GDAL \/ OGR<\/li>\n\n\n\n<li>Logical decoding of S-57 objects<\/li>\n\n\n\n<li>Structured storage (PostGIS or GeoPackage)<\/li>\n\n\n\n<li>Controlled display in QGIS<\/li>\n\n\n\n<li>ENC-specific tools (usage purpose, scales, filters)<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_Why_PostGIS_for_S-57_data\"><\/span>2. Why PostGIS for S-57 data?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"21_The_challenges_of_ENC_data\"><\/span>2.1 The challenges of ENC data<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>ENCs are not simple vector layers:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>very large number of tables<\/li>\n\n\n\n<li>implicit relationships between objects<\/li>\n\n\n\n<li>coded attributes<\/li>\n\n\n\n<li>large data volumes<\/li>\n\n\n\n<li>possible updates<\/li>\n<\/ul>\n\n\n\n<p>PostGIS perfectly meets these constraints.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"22_Advantages_of_PostGIS_storage\"><\/span>2.2 Advantages of PostGIS storage<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>With <strong>S57Manager + PostGIS<\/strong>:<\/p>\n\n\n\n<p>&#x2714; centralized storage<br>&#x2714; high performance on large datasets<br>&#x2714; advanced spatial queries<br>&#x2714; multi-user access<br>&#x2714; controlled backups and updates<br>&#x2714; integration into existing GIS workflows<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_Configuring_PostGIS_mode_in_S57Manager\"><\/span>3. Configuring PostGIS mode in S57Manager<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"31_Connection_settings\"><\/span>3.1 Connection settings<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Connection settings for the Postgresql\/postgis database are configured directly in QGIS. The plugin searches for and displays the connections available in the current project:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_connexion.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"392\" data-attachment-id=\"16144\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/s57manager-gerer-des-donnees-enc-s-57-dans-qgis-avec-postgis\/s57manager_postgis_connexion\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_connexion.png?fit=1471%2C900&amp;ssl=1\" data-orig-size=\"1471,900\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"S57Manager_postgis_connexion\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_connexion.png?fit=640%2C392&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_connexion.png?resize=640%2C392&#038;ssl=1\" alt=\"\" class=\"wp-image-16144\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_connexion.png?resize=1024%2C627&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_connexion.png?resize=300%2C184&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_connexion.png?resize=768%2C470&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_connexion.png?w=1471&amp;ssl=1 1471w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_connexion.png?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"32_Structure_of_generated_tables\"><\/span>3.2 Structure of generated tables<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>When you click OK in the previous dialog box, the plugin checks for the existence of five schemas in the selected database and creates them if necessary:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_schemas.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"986\" data-attachment-id=\"16145\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/s57manager-gerer-des-donnees-enc-s-57-dans-qgis-avec-postgis\/s57manager_postgis_schemas\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_schemas.png?fit=695%2C1070&amp;ssl=1\" data-orig-size=\"695,1070\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"S57Manager_postgis_schemas\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_schemas.png?fit=640%2C986&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_schemas.png?resize=640%2C986&#038;ssl=1\" alt=\"\" class=\"wp-image-16145\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_schemas.png?resize=665%2C1024&amp;ssl=1 665w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_schemas.png?resize=195%2C300&amp;ssl=1 195w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_schemas.png?w=695&amp;ssl=1 695w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<ul class=\"wp-block-list\">\n<li>enc, main schema where all imported S57 files will be stored<\/li>\n\n\n\n<li>linesenc,pointsenc and polysenc, temporary import schemas. They host ogr imports to enable the necessary operations on the geometries. Once the processing is complete and the final data has been copied to the enc schema, they are emptied.<\/li>\n\n\n\n<li>encm, not currently used but planned for future versions.<\/li>\n<\/ul>\n\n\n\n<p>The ENC schema contains all the tables from the S57 files.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Separation by geometry type (points: pt_, lines: li_, polygons: pl_)<\/li>\n\n\n\n<li>S-57 object tables<\/li>\n\n\n\n<li>Relationship tables<\/li>\n\n\n\n<li>RCID identifier management<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_enc_tables.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"549\" height=\"1024\" data-attachment-id=\"16146\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/s57manager-gerer-des-donnees-enc-s-57-dans-qgis-avec-postgis\/s57manager_postgis_enc_tables\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_enc_tables.png?fit=685%2C1277&amp;ssl=1\" data-orig-size=\"685,1277\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"S57Manager_postgis_enc_tables\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_enc_tables.png?fit=549%2C1024&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_enc_tables.png?resize=549%2C1024&#038;ssl=1\" alt=\"\" class=\"wp-image-16146\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_enc_tables.png?resize=549%2C1024&amp;ssl=1 549w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_enc_tables.png?resize=161%2C300&amp;ssl=1 161w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_enc_tables.png?w=685&amp;ssl=1 685w\" sizes=\"auto, (max-width: 549px) 100vw, 549px\" \/><\/a><\/figure>\n\n\n\n<p>&#x1f449; The schema is designed to be readable, documentable, and queryable.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_Importing_an_S-57_ENC_into_PostGIS\"><\/span>4. Importing an S-57 ENC into PostGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"41_Launching_the_import\"><\/span>4.1 Launching the import<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogimport.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"559\" height=\"340\" data-attachment-id=\"16147\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/s57manager-gerer-des-donnees-enc-s-57-dans-qgis-avec-postgis\/dialogimport\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogimport.png?fit=559%2C340&amp;ssl=1\" data-orig-size=\"559,340\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dialogimport\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogimport.png?fit=559%2C340&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogimport.png?resize=559%2C340&#038;ssl=1\" alt=\"\" class=\"wp-image-16147\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogimport.png?w=559&amp;ssl=1 559w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogimport.png?resize=300%2C182&amp;ssl=1 300w\" sizes=\"auto, (max-width: 559px) 100vw, 559px\" \/><\/a><\/figure>\n\n\n\n<p>The plugin searches for and loads all .000 files in the directory and subdirectories and performs the following:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>selection of S-57 files<\/li>\n\n\n\n<li>progress tracking<\/li>\n\n\n\n<li>display of detailed logs<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_import.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"422\" data-attachment-id=\"16148\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/s57manager-gerer-des-donnees-enc-s-57-dans-qgis-avec-postgis\/s57manager_postgis_import\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_import.png?fit=1318%2C869&amp;ssl=1\" data-orig-size=\"1318,869\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"S57Manager_postgis_import\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_import.png?fit=640%2C422&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_import.png?resize=640%2C422&#038;ssl=1\" alt=\"\" class=\"wp-image-16148\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_import.png?resize=1024%2C675&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_import.png?resize=300%2C198&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_import.png?resize=768%2C506&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_import.png?resize=241%2C158&amp;ssl=1 241w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_import.png?w=1318&amp;ssl=1 1318w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"42_Control_and_validation_of_ENC_data_in_PostGIS\"><\/span>4.2 Control and validation of ENC data in PostGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Importing ENC data into PostGIS is only a first step.<br>Before any cartographic or analytical use, it is essential to carry out <strong>rigorous quality control<\/strong>.<\/p>\n\n\n\n<p>As ENC data are standardized and critical for <strong>maritime safety<\/strong>, any structural or interpretative error may lead to inconsistent\u2014or even dangerous\u2014results.<\/p>\n\n\n\n<p>Quality control relies on three complementary pillars:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>verification of imported layers<\/li>\n\n\n\n<li>geometric integrity<\/li>\n\n\n\n<li>attribute consistency<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"421_Verification_of_imported_layers\"><\/span>4.2.1 Verification of imported layers<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>After importing into PostGIS, the first check is to ensure that <strong>all expected object classes are present<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Presence_and_completeness\"><\/span><strong>Presence and completeness<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Depending on the ENC content, one should notably find:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>hydrographic objects (depth areas, soundings)<\/li>\n\n\n\n<li>coastline and land areas<\/li>\n\n\n\n<li>aids to navigation<\/li>\n\n\n\n<li>hazards and obstructions<\/li>\n\n\n\n<li>regulated or special areas<\/li>\n<\/ul>\n\n\n\n<p>The absence of a layer may indicate:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>an error during import<\/li>\n\n\n\n<li>unintended filtering<\/li>\n\n\n\n<li>incompatibility with the S-57 version used<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Logical_organization\"><\/span><strong>Logical organization<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>In PostGIS, data can be organized:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>by schema (hydrography, navigation, regulations, etc.)<\/li>\n\n\n\n<li>by geometry type (points, lines, polygons)<\/li>\n\n\n\n<li>by S-57 object class<\/li>\n<\/ul>\n\n\n\n<p>Clear structuring facilitates:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>maintenance<\/li>\n\n\n\n<li>understanding by third parties<\/li>\n\n\n\n<li>automation of processing<\/li>\n<\/ul>\n\n\n\n<p>&#x1f449; <strong>S57Manager<\/strong> helps maintain a readable organization compatible with GIS best practices.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"422_Geometric_integrity\"><\/span>4.2.2 Geometric integrity<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>ENC data rely on <strong>shared and topological geometries<\/strong>, which makes their import more delicate than a classic vector dataset.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Valid_geometries\"><\/span><strong>Valid geometries<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>It is essential to verify that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>polygons are closed<\/li>\n\n\n\n<li>geometries are not self-intersecting<\/li>\n\n\n\n<li>lines are not degenerated<\/li>\n\n\n\n<li>points are not unnecessarily duplicated<\/li>\n<\/ul>\n\n\n\n<p>In PostGIS, validation functions make it possible to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>detect invalid geometries<\/li>\n\n\n\n<li>correct them if necessary<\/li>\n\n\n\n<li>document anomalies<\/li>\n<\/ul>\n\n\n\n<p>An invalid geometry may:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>prevent display in QGIS<\/li>\n\n\n\n<li>distort area or distance calculations<\/li>\n\n\n\n<li>block subsequent spatial operations<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Topological_consistency\"><\/span><strong>Topological consistency<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Even if S-57 topology is not always preserved exactly after import, certain rules must remain consistent:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a depth area must not arbitrarily overlap a land area<\/li>\n\n\n\n<li>the coastline must correspond to the land\/sea boundary<\/li>\n\n\n\n<li>point objects must be located in logically compatible areas<\/li>\n<\/ul>\n\n\n\n<p>These checks are particularly important during data aggregation or generalization.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"423_Attribute_consistency\"><\/span>4.2.3 Attribute consistency<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>S-57 attributes are both <strong>rich and constrained<\/strong>.<br>They must be checked with the same level of care as geometries.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Presence_of_essential_attributes\"><\/span><strong>Presence of essential attributes<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Each object class includes attributes that are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>mandatory<\/li>\n\n\n\n<li>conditional<\/li>\n\n\n\n<li>optional<\/li>\n<\/ul>\n\n\n\n<p>The absence of a key attribute may indicate:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>an import error<\/li>\n\n\n\n<li>misinterpretation of the S-57 schema<\/li>\n\n\n\n<li>information loss during conversion<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Coded_values_and_domains\"><\/span><strong>Coded values and domains<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Many attributes use:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>coded numeric values<\/li>\n\n\n\n<li>closed lists defined by the IHO<\/li>\n<\/ul>\n\n\n\n<p>It is crucial to verify that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>values fall within authorized domains<\/li>\n\n\n\n<li>codes match their intended meaning<\/li>\n\n\n\n<li>fields do not contain aberrant values<\/li>\n<\/ul>\n\n\n\n<p>An incorrect value can affect:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>cartographic interpretation<\/li>\n\n\n\n<li>object hierarchy<\/li>\n\n\n\n<li>display or priority rules<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Semantic_consistency\"><\/span><strong>Semantic consistency<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>Finally, some checks are a matter of <strong>nautical common sense<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a hazard cannot be located on land<\/li>\n\n\n\n<li>an aid to navigation must be consistent with its environment<\/li>\n\n\n\n<li>a regulated area must have a compatible type and category<\/li>\n<\/ul>\n\n\n\n<p>These cross-checks are often facilitated by:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>PostGIS spatial queries<\/li>\n\n\n\n<li>joins between layers<\/li>\n\n\n\n<li>visualization in QGIS<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Why_these_checks_are_essential\"><\/span>Why these checks are essential<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>PostGIS offers exceptional analytical power, but it does not automatically correct <strong>semantic or normative inconsistencies<\/strong>.<\/p>\n\n\n\n<p>In the case of ENC data:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>data quality directly conditions reliability<\/li>\n\n\n\n<li>errors may propagate through analyses<\/li>\n\n\n\n<li>an initial quality check prevents downstream issues<\/li>\n<\/ul>\n\n\n\n<p>&#x1f449; <strong>S57Manager<\/strong> follows this approach:<br>not merely importing data, but importing it <strong>cleanly<\/strong>, with respect for both the structure and the nautical meaning of the data.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_Use_in_QGIS\"><\/span>5. Use in QGIS<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"51_Display_by_object_families\"><\/span>5.1 Display by object families<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>Given the richness and density of ENC data, displaying all layers simultaneously quickly results in an unreadable map.<br>A recommended practice is to organize the display by <strong>object families<\/strong>, i.e. by major functional groups sharing a common nautical logic.<\/p>\n\n\n\n<p>For example:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>hydrographic objects (depth areas, soundings, isobaths),<\/li>\n\n\n\n<li>coastline elements and land surfaces,<\/li>\n\n\n\n<li>aids to navigation (buoys, lights, beacons),<\/li>\n\n\n\n<li>hazards and obstructions,<\/li>\n\n\n\n<li>regulated or special areas.<\/li>\n<\/ul>\n\n\n\n<p>In QGIS, this organization can be implemented through:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>layer groups,<\/li>\n\n\n\n<li>shared styles by family,<\/li>\n\n\n\n<li>conditional display filters,<\/li>\n\n\n\n<li>or distinct schemas on the PostGIS side.<\/li>\n<\/ul>\n\n\n\n<p>Displaying data by family offers several advantages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>it facilitates progressive map reading by revealing information through logical layers;<\/li>\n\n\n\n<li>it allows quick visual checks of data consistency (missing objects, positional anomalies);<\/li>\n\n\n\n<li>it prepares the ground for advanced styling, close to S-52 rules, without attempting to reproduce them fully.<\/li>\n<\/ul>\n\n\n\n<p>&#x1f449; <strong>S57Manager<\/strong> follows this logic by preserving a structure compatible with ENC object families, allowing users to build readable, scalable QGIS projects adapted to their needs.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogdisplay.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"864\" data-attachment-id=\"16149\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/s57manager-gerer-des-donnees-enc-s-57-dans-qgis-avec-postgis\/dialogdisplay\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogdisplay.png?fit=692%2C934&amp;ssl=1\" data-orig-size=\"692,934\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dialogdisplay\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogdisplay.png?fit=640%2C864&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogdisplay.png?resize=640%2C864&#038;ssl=1\" alt=\"\" class=\"wp-image-16149\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogdisplay.png?w=692&amp;ssl=1 692w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogdisplay.png?resize=222%2C300&amp;ssl=1 222w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"52_Filtering_displayed_layers\"><\/span>5.2 Filtering displayed layers<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>The <strong>\u201cENC Tools\u201d<\/strong> menu allows filtering of displayed layers according to <strong>usage and\/or display scale<\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Filtering_by_purpose\"><\/span>Filtering by purpose<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>ENCs are designed for very different uses, ranging from route planning to coastal or port navigation.<br>This diversity is formalized by the concept of <strong>purpose<\/strong>, which corresponds to the cartographic usage level of the data (general, coastal, approach, harbour, etc.).<\/p>\n\n\n\n<p>Applying a purpose-based filter makes it possible to display only objects relevant to a given context, avoiding visual clutter and unnecessary information at the considered scale.<br>An object that is valid in a general navigation ENC may become inappropriate\u2014or even misleading\u2014in a harbour context, and vice versa.<\/p>\n\n\n\n<p>In a PostGIS \/ QGIS environment, this filtering can be implemented:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>via attributes inherited from the ENC import,<\/li>\n\n\n\n<li>through SQL views dedicated to each purpose,<\/li>\n\n\n\n<li>or via scale-dependent visibility rules.<\/li>\n<\/ul>\n\n\n\n<p>The benefits are multiple:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>improved cartographic readability, adapted to the expected level of detail;<\/li>\n\n\n\n<li>consistency between scale, usage and content;<\/li>\n\n\n\n<li>a solid basis for differentiated styles according to navigation context.<\/li>\n<\/ul>\n\n\n\n<p>&#x1f449; <strong>S57Manager<\/strong> facilitates this filtering by preserving purpose information during import and enabling layers and queries to be structured according to targeted uses, without imposing rigid symbolization.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogtools.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"441\" data-attachment-id=\"16150\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/s57manager-gerer-des-donnees-enc-s-57-dans-qgis-avec-postgis\/dialogtools\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogtools.png?fit=945%2C651&amp;ssl=1\" data-orig-size=\"945,651\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dialogtools\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogtools.png?fit=640%2C441&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogtools.png?resize=640%2C441&#038;ssl=1\" alt=\"\" class=\"wp-image-16150\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogtools.png?w=945&amp;ssl=1 945w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogtools.png?resize=300%2C207&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogtools.png?resize=768%2C529&amp;ssl=1 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Display_scale\"><\/span>Display scale<span class=\"ez-toc-section-end\"><\/span><\/h4>\n\n\n\n<p>In ENCs, scale is not a simple cartographic parameter: it conditions the very <strong>validity of the displayed information<\/strong>.<br>Each object is designed to be interpreted within a given scale range, closely linked to its purpose and level of generalization.<\/p>\n\n\n\n<p>Displaying an object outside its scale domain may lead to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>loss of readability (excessive object density),<\/li>\n\n\n\n<li>false precision (over-detailed objects at small scale),<\/li>\n\n\n\n<li>or even misinterpretation by the end user.<\/li>\n<\/ul>\n\n\n\n<p>Managing display scale therefore makes it possible to:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>automatically adapt layer visibility to zoom level,<\/li>\n\n\n\n<li>preserve consistency between geometric detail and usage context,<\/li>\n\n\n\n<li>bring QGIS behaviour closer to that of an ECDIS, while retaining GIS flexibility.<\/li>\n<\/ul>\n\n\n\n<p>In a PostGIS or GeoPackage architecture, this logic can be implemented through:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>scale ranges defined at layer level,<\/li>\n\n\n\n<li>views or queries filtering objects according to the current scale,<\/li>\n\n\n\n<li>or a combined purpose\/scale approach for finer control.<\/li>\n<\/ul>\n\n\n\n<p>&#x1f449; <strong>S57Manager<\/strong> provides tools to define and adjust minimum and maximum display scales for selected layers, enabling progressive, readable cartography consistent with the ENC philosophy, without unnecessarily complicating the QGIS project.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"53_Custom_symbolization\"><\/span>5.3 Custom symbolization<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>When S-57 layers are loaded directly, they appear as points, lines and polygons with default symbology, far removed from a nautical chart.<br><strong>S57Manager<\/strong> makes it possible to directly apply an <strong>ECDIS-like symbolization<\/strong>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"417\" data-attachment-id=\"16151\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/s57manager-gerer-des-donnees-enc-s-57-dans-qgis-avec-postgis\/s57manager_postgis_dislay\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?fit=2424%2C1578&amp;ssl=1\" data-orig-size=\"2424,1578\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"S57Manager_postgis_dislay\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?fit=640%2C417&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?resize=640%2C417&#038;ssl=1\" alt=\"\" class=\"wp-image-16151\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?resize=1024%2C667&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?resize=300%2C195&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?resize=768%2C500&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?resize=1536%2C1000&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?resize=2048%2C1333&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?resize=241%2C158&amp;ssl=1 241w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?resize=264%2C172&amp;ssl=1 264w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>This requires two steps:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Installing the required SVG symbols<\/strong><br>These symbols are included in the plugin and are installed in the user profile by clicking the <em>\u201cInstall SVG symbol library\u201d<\/em> button in the S57 Options dialog.<\/li>\n\n\n\n<li><strong>Installing default symbolization in the PostGIS database<\/strong><br>The <em>\u201cInstall default S57 symbology\u201d<\/em> button checks whether the <code>layer_styles<\/code> table exists in the <code>public<\/code> schema of the PostGIS database.\n<ul class=\"wp-block-list\">\n<li>If it does not exist, it is created and the default symbology for the 260 S-57 layers is added.<\/li>\n\n\n\n<li>If it already exists, the default symbologies for the 260 layers are added to the existing ones.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogsettings_svg.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"608\" height=\"740\" data-attachment-id=\"16152\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/s57manager-gerer-des-donnees-enc-s-57-dans-qgis-avec-postgis\/dialogsettings_svg\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogsettings_svg.png?fit=608%2C740&amp;ssl=1\" data-orig-size=\"608,740\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"dialogsettings_svg\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogsettings_svg.png?fit=608%2C740&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogsettings_svg.png?resize=608%2C740&#038;ssl=1\" alt=\"\" class=\"wp-image-16152\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogsettings_svg.png?w=608&amp;ssl=1 608w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/dialogsettings_svg.png?resize=246%2C300&amp;ssl=1 246w\" sizes=\"auto, (max-width: 608px) 100vw, 608px\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span>Conclusion<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>The <strong>PostGIS mode of S57Manager<\/strong> provides a robust solution for the long-term integration of ENC data into a professional GIS.<br>It is clearly aimed at environments where durability, performance and collaboration are essential criteria.<\/p>\n\n\n\n<p>&#x1f449; In the next article, we will see how <strong>S57Manager<\/strong> enables a lighter and more autonomous approach through the use of <strong>GeoPackage<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Import, structuring and use of official nautical charts in a robust spatial database S57Manager is a QGIS plugin that enables the structured import, validation and visualization of ENC (S-57) nautical charts using PostGIS or GeoPackage. Introduction&hellip;<\/p>\n","protected":false},"author":1,"featured_media":16151,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"give_campaign_id":0,"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"sfsi_plus_gutenberg_text_before_share":"","sfsi_plus_gutenberg_show_text_before_share":"","sfsi_plus_gutenberg_icon_type":"","sfsi_plus_gutenberg_icon_alignemt":"","sfsi_plus_gutenburg_max_per_row":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[3394,1377,3931],"tags":[3965,3961,3943,3967,3963,3957,3955,3959,3939],"class_list":["post-16226","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-pluigin-en","category-qgis-en","category-s57-en","tag-ecdis-gis","tag-electronic-navigational-charts","tag-enc-postgis","tag-hydrographic-data-postgis","tag-marine-gis-data","tag-nautical-chart-gis","tag-nc-charts","tag-qgis-s-57-plugin","tag-s-57-qgis"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2025\/12\/S57Manager_postgis_dislay.png?fit=2424%2C1578&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-4dI","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16226","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/comments?post=16226"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/16226\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media\/16151"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=16226"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=16226"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=16226"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}