﻿{"id":12754,"date":"2024-04-09T10:00:00","date_gmt":"2024-04-09T08:00:00","guid":{"rendered":"https:\/\/www.sigterritoires.fr\/?p=12754"},"modified":"2024-04-08T20:34:20","modified_gmt":"2024-04-08T18:34:20","slug":"cartes-enc-geopackage-dans-qgis-version-finale-premiere-partie","status":"publish","type":"post","link":"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-geopackage-dans-qgis-version-finale-premiere-partie\/","title":{"rendered":"Cartes ENC Geopackage dans QGis Version finale: premi\u00e8re partie"},"content":{"rendered":"\n<div class='stb-container stb-style-info'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAACLRJREFUeNrsmmuIXGcZgJ\/3+845c9udZLNp7umF2osUS9NqL5S2VsE\/BX8IoRZBWtAi\/vRSEMG\/Bi0UBf+0ItQ\/tRcQQRBBK5hWrJq2aatNm0uTbHaTbPYyM7tzOee7vP6Yk1uzKWTrbqTkO7zMcOYczjzfe39nRFX5JCzDJ2RdAbkCskIrueQ7FveWbwSNjvbMXvLBHGCJUYkaRVV3ALeosjnG2FDV6RD1qKq+psq0qiIy3MckyXBucMFjbrzrhysMcpGlaNMaeSRL7OPWmNsAE1WJQfEx4n3E+9DyIf5R4UngX5dXI8g5r4ICIjxYqyS\/qmT2WmtMeV6JJYDzEWcCxsha48PDzseHQ4hPi\/AdoHuZQPRcLSAU31jTXPN0VqkLGkASkLS8wJH4LtblGGMRcsCiCqo8rqp3q8aHgGOrDtKa\/scZHGvY2ahlz6T1q1E\/DyZBkjGIrrxCsaaByBxJ82bMwjHiwmE0GhRLiHJrCPnvgC8CrVWNWkXepsjb+Lx9Q8UOnkmbt6IaEKkijTugfiuYKtgGmBrYUUy6lqS2jerYDhITMVawVsiqa7BJ43bQH696+K03tlBrbKZRrz5Zad60BrMG0QJG7oDK1aARzAhIbQhiqmCb0N+HFIepjF6PNYIQMEaojW7B2Oq3QO8Tzh4rrxHXJvj2nVmWfpnazeBnId0E2ZYyBmRg6qXVpiAVkCqoR9xRstoGkrSOEUVDTpI1qTQ2IMh3xRhOy8onxFA0LcVXbGUDmFGIA8g2lc4dgVACCYgBLJgEpIqYGjo4iBEQMaAFIkK1sRkx6ReySmNzpTpKpTq68iBiuM1a+YJkm0A9mBTs2vLTODxHLIOblGJBEsRUEc0RHMYYVD2qnqy6DpuOjAZf3DuMaLoKIMSrjZEtJOuG2rCNYchFhxrReG6EPptzRACDHd2B2Po51wdMUietjOL94GpXdHFFb+XDb4xxPdgRSMsQO\/yCaBialQaQYaJAz3FaVbB1Qu8AGnvnJVZjUoytEWNYs9z+6JJBVClQAujQB8JiubslxHlmdW4SjRD7qF9AYyyVJojYob8Mi6\/AMiLWskwrRCZ8CNPExWFojX2IXdAcYlH6iJ4DoGd8R4ca5YwfiGBsZWiwfsDHyfDLCL9x7yD3\/4z5iSGIBiiOQ1iA2AN1QzM6AxGGmV5zlAohCjEqGiMiKSZpEGOBy9sR5LVVA\/E+HB3k8bm8NzncZdOAYhLcDIQ2aB9wpRSgA9A+6tt418X5ghAiIUZM0sCmDdxgDl90\/i4i\/17Vxsr5+IfuwuwbcTCBZBvR0AE\/DX6u1Ex3qJ3T4mdw+Tx5\/xTBR0LUoe9nY4hJ6XcmiLH4xXL9Y1kgUSEidPt+V29+L2qboAH1bTS0IXRKkC6EDupOUgzmKJzHFT18qQ2kQlodx+cd+t3JPSC\/Wd1WVxVRxXte6LYm\/+L7x4l2PbE4hbo51M2jbhZ1pwj5cYpBm6IIOKd4r4QQiTFi0zUYW6fbOUQoFneJmLi6IGWyFgO9PPygO7c3km3FByX4BYJv410LV3RwzuF8xId4RhNRFVVLUl2Hdx36nYmXQV66rMOHqLzW7Uw9HdwCkm0mhkAISowQIsMvX2ogln4RY0SSGjap0+tMhOAHTwxrMvmQrCKIiJAXcVe\/\/f6CZJvQMpMrwzxRdoJEBdV45pxNm3jXI+9NPyvCnrOh+lxZ8Vrr\/APMkd7C1AsxBiRtAlruqZz\/GDGoRhCLsTXy7omeatwlJkNMeoGseIlijFyAVjj\/c9ebeqxaGzeaLyAiiAiqw+Rn01FIMlwxgZg6MRQg9rmRsRv38z+aPSfLMacLA5l9K++f2l1r3PSAtRWQDGMcQkGIILaCSTbQ6xxBbAXve9RGtz9bqW9ANVweEGuXAhG86z+v6h+QZAzFIkSsdEhjoIgOjQ6wCBYRe2Bs02f\/JqfLf872YjatDrvKlfYRI3KBWCPEGF6JIQfTQEyC2AYmHSdNKxAWcd0jiMlQIMlG\/xxiCM51ca6Hcz1iHGBTy6uv\/JUnvv+9VXD20v4\/LCDvxTCYwGblbKsCZgSTjGJtgsYCEYuqUqlvfNOabNiHmIRKpUGSNnj8m9\/m\/s8\/xE+ffGrlTStNzUUSvhYoLUi3IxGVDEER2yCtKtY71M0DkFXXnUirY2fu7fZ6PProY7z04gur5yPOxYuBoKHXRTxIhpy2c21gE8UkDpEWgkdNtugipAZOnjzJzp072b179+o6+49+9s7S5X2Ar331wUMP3j5\/t6muK2cOCSQVrOlSyZTceibmUn6\/9\/W2Td9l8thRnnnqJ0wdO7r6UStrbFj6PHBo\/qrWnuePcuctluu2WQ5+8AF50adwntlWzuSJNgcmpjh25OVBa\/o47779Bv1+\/\/KE37f3vrl0CxwC22+6pfaZHfcxv9Dm0J559u3vMD27iIkDEnHMzszQas0xefhgemDfOwTvL9\/PCp+6ZsvSPhIj69evr7QXFtg6PsZ1122lPlLn9bf2056ZpNfpEENBo9Fgfm4mKSHsh0b8yyu0lgMyumHbRUEK73tjWUJzdIRaNWN83Rhrx8bBdzGxT6\/XIy9yXJ43gGZpkXr+qIUcGFwq0CWD+G7rIr28Z9BdzCqVKovdHpHAfKtNa36OXneRGBVjbVmD6UZg03A4zOk5qyshwqpoZObUqaV7k+D5YN\/bL2679savbxtvkqQwPraWkeZafL9F3p2n3+szc\/LEoXZrbgHYAiyUsgj0gNOTC11xkPcOHLrYBJLDU9Ovrtt6w7vXb\/vSp8ebTSZOzDBSh5YWxKiIEaZPTL2vMebABDBbApQD44\/RG13qiLJWrV58eOcDWb1+zV333Pvrz919z\/2zrQVm5+fI+33mZk51D+77z59OnZz6JaqvAvMfPRrQlQVZqoxfYt227qpNj2zcuv2OLEuzQb8\/eXj\/vt\/mg\/5bwNFSC1xWkP\/XdeUvHFdAroB89PrvAIkUyrgAK0PWAAAAAElFTkSuQmCC' alt='img'\/><\/div><div class='stb-caption-content'><\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<p>Le d\u00e9roulement du projet ayant fait l\u2019objet de plusieurs articles et mises \u00e0 jour, nous mettons \u00e0 votre disposition dans le lien suivant un document de synth\u00e8se (PDF) <div class='w3eden'><!-- WPDM Link Template: Default Template -->\n\n<div class=\"link-template-default card mb-2\">\n    <div class=\"card-body\">\n        <div class=\"media\">\n            <div class=\"mr-3 img-48\"><img decoding=\"async\" class=\"wpdm_icon\" alt=\"Ic\u00f4ne\" src=\"https:\/\/www.sigterritoires.fr\/wp-content\/plugins\/download-manager\/assets\/file-type-icons\/7z.svg\" \/><\/div>\n            <div class=\"media-body\">\n                <h3 class=\"package-title\"><a href='https:\/\/www.sigterritoires.fr\/index.php\/download\/synthese-finale-base-de-donnees-enc-sous-geopackage\/'>Synth\u00e8se finale : Base de donn\u00e9es ENC sous Geopackage<\/a><\/h3>\n                <div class=\"text-muted text-small\"><i class=\"fas fa-copy\"><\/i> 1 fichier\u00b7s <i class=\"fas fa-hdd ml-3\"><\/i> 3.30 MB<\/div>\n            <\/div>\n            <div class=\"ml-3\">\n                <a class='wpdm-download-link download-on-click btn btn-primary ' rel='nofollow' href='#' data-downloadurl=\"https:\/\/www.sigterritoires.fr\/index.php\/download\/synthese-finale-base-de-donnees-enc-sous-geopackage\/?wpdmdl=12866&refresh=6a039828c9edf1778620456\">Document et outils geopackage ENC<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<\/div><\/p>\n\n\n\n<p>Vous pourrez ainsi avoir une vision compl\u00e8te et coh\u00e9rente de toutes les \u00e9tapes pour cr\u00e9er et charger une base de donn\u00e9es <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/pourquoi-enc-s57-donnees-complexes\/\">ENC<\/a> sous QGis au format <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/le-format-geopackage-et-qgis-3\/\">geopackage<\/a> et tous les \u00e9l\u00e9ments n\u00e9cessaires (.bat, .py, .svg) \u00e0 la mise en place d\u2019une symbologie appropri\u00e9e automatique.<\/p>\n\n\n\n<p><\/div><\/div>\n\n\n\n<p>Le projet d&rsquo;int\u00e9grations des cartes ENC dans QGis sous la forme de Geopackage est maintenant termin\u00e9e. Cet article compl\u00e8te les deux articles d\u00e9j\u00e0 publi\u00e9s concernant la mise en place et la gestion de la base de donn\u00e9es Geopackage.<\/p>\n\n\n\n<p>Dans le premier article: <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/creation-dune-base-de-donnees-geopackage-pour-les-cartes-enc-1ere-partie-constituer-la-base-de-donnees\/\" title=\"Cr\u00e9ation d\u2019une base de donn\u00e9es Geopackage pour les cartes ENC (1\u00e8re partie: constituer la base de donn\u00e9es)\">Cr\u00e9ation d\u2019une base de donn\u00e9es Geopackage pour les cartes ENC (1\u00e8re partie: constituer la base de donn\u00e9es)<\/a>, vous trouverez l&rsquo;essentiel du travail avec des geopackages pour int\u00e9grer les donn\u00e9es des fichiers <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/affichage-des-cartes-marines-s57-dans-qgis-3-x\/\">S57<\/a> (ENC). Vous devez commencer par cet article pour comprendre la proc\u00e9dure qui permet l&rsquo;import des fichiers S57 avec ogr2ogr, ainsi que les diff\u00e9rentes \u00e9tapes de mise en forme des donn\u00e9es. Vous aurez aussi la possibilit\u00e9 de t\u00e9l\u00e9charger tous les outils (fichiers de commandes .bat, scripts python) pour mener \u00e0 bien toutes ces \u00e9tapes.<\/p>\n\n\n\n<p>Suite \u00e0 la publication de cet article, nous avons continu\u00e9 \u00e0 travailler sur une proc\u00e9dure \u00e9quivalente mais en utilisant une base de donn\u00e9es PostgreSQL\/postgis. Ceci nous a permis de trouver plusieurs am\u00e9liorations au workflow initial.<\/p>\n\n\n\n<p>Un deuxi\u00e8me article: <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/mise-a-jour1-base-de-donnees-enc-avec-geopackage-sous-qgis\/\" title=\"Mise \u00e0 jour(1) :Base de donn\u00e9es ENC avec Geopackage sous QGis\">Mise \u00e0 jour(1) :Base de donn\u00e9es ENC avec Geopackage sous QGis<\/a>,, pr\u00e9sente une mise \u00e0 jour de la proc\u00e9dure d&rsquo;import (fichiers .bat avec les commandes ogr2ogr) pour permettre une gestion ais\u00e9e des doublons d&rsquo;information. Ces doublons apparaissent quand des cartes \u00e0 diff\u00e9rentes \u00e9chelles sont int\u00e9gr\u00e9es dans la m\u00eame base de donn\u00e9es. L&rsquo;ajout d&rsquo;un attribut \u00ab\u00a0finalit\u00e9\u00a0\u00bb de la carte ENC permet de n&rsquo;afficher que des informations uniques par finalit\u00e9 de carte.<\/p>\n\n\n\n<p>L&rsquo;objectif du projet \u00e9tant de produire dans QGis une symbologie \u00e9quivalente \u00e0 celle des cartes papier il restait un point \u00e0 r\u00e9soudre, la prise en compte du param\u00e8tre \u00ab\u00a0qualit\u00e9\u00a0\u00bb de la position des objets g\u00e9ographiques. C&rsquo;est ce point, principalement, qui est abord\u00e9 dans cet article.<\/p>\n\n\n\n<p><strong><em>Les trois articles sont compl\u00e9mentaires quant \u00e0 leur contenu, mais pour les fichiers mis \u00e0 disposition, ne t\u00e9l\u00e9chargez que les fichiers propos\u00e9s dans cet article. Ils se terminent par &lsquo;V3&rsquo; et vous assurent d&rsquo;utiliser la derni\u00e8re version.<\/em><\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le format S57 et les SIG<\/h2>\n\n\n\n<p>Si vous vous lancez \u00e0 travailler avec des fichiers S57 dans un SIG, il y a quelques \u00e9l\u00e9ments que vous devez conna\u00eetre pour naviguer sans \u00e9cueils.<\/p>\n\n\n\n<p>Tout d\u2019abord, la structure des fichiers S57 ne r\u00e9pond pas aux structures adopt\u00e9es dans les SIG.<\/p>\n\n\n\n<p>Dans un SIG vous avez un objet g\u00e9ographique qui est repr\u00e9sent\u00e9 par une table avec deux types d\u2019informations&nbsp;: la g\u00e9om\u00e9trie des entit\u00e9s de l\u2019objet et les attributs de ces entit\u00e9s.<\/p>\n\n\n\n<p>Si vous avez d\u2019autres objets qui ont des g\u00e9om\u00e9tries identiques, l\u2019information g\u00e9om\u00e9trique est dupliqu\u00e9e, une fois dans chaque table.<\/p>\n\n\n\n<p>Pour le format S57 l\u2019objectif principal est d\u2019optimiser le stockage des informations et par cons\u00e9quent de ne pas dupliquer les informations. Si un objet a une entit\u00e9 ponctuelle, un point sera cr\u00e9\u00e9. Du moment ou d\u2019autres objets ont des entit\u00e9s situ\u00e9es sur ce point, on utilisera la r\u00e9f\u00e9rence du point qui a d\u00e9j\u00e0 \u00e9t\u00e9 cr\u00e9\u00e9. De cette mani\u00e8re un point n\u2019est d\u00e9crit qu\u2019une seule fois dans le fichier. Il en va de m\u00eame pour les polylignes et les surfaces. Un fichier S57 aura donc une s\u00e9rie de tables contenant l\u2019information g\u00e9om\u00e9trique, d\u00e9nomm\u00e9es \u00ab&nbsp;primitives&nbsp;\u00bb&nbsp;:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>IsolatedNode (points)<\/li>\n\n\n\n<li>ConnectedNode (points)<\/li>\n\n\n\n<li>Edge (polylignes)<\/li>\n\n\n\n<li>Face (polygones)<\/li>\n<\/ul>\n\n\n\n<p>La table attributaire des diff\u00e9rents objets S57 contient seulement les attributs des objets.<\/p>\n\n\n\n<p>Ce qui complique la t\u00e2che c\u2019est qu\u2019il y a deux attributs qui se r\u00e9f\u00e8rent aux g\u00e9om\u00e9tries&nbsp;: <strong><em>posacc <\/em><\/strong>(l\u2019estimation de la pr\u00e9cision de la position, valeur quantitative) et <strong><em>quapos <\/em><\/strong>(qualit\u00e9 de la position, variable qualitative).<\/p>\n\n\n\n<p>Ces deux attributs se trouvent dans les tables des primitives.<\/p>\n\n\n\n<p>Pour passer de la structure S57 \u00e0 une structure SIG (<a href=\"https:\/\/www.sigterritoires.fr\/index.php\/frshapefile-vs-geopackage-quel-format-choisir\/\">shapefile<\/a>, geopackage, <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/debuter-avec-postgrespostgis\/\">postgis<\/a>) nous utilisons la biblioth\u00e8que GDAL et sa commande ogr2ogr.<\/p>\n\n\n\n<p>Cette commande va cr\u00e9er des tables SIG \u00e0 partir de la structure S57, en cr\u00e9ant une table par objet S57, en affectant \u00e0 chaque entit\u00e9 les g\u00e9om\u00e9tries correspondantes tir\u00e9es des tables primitives et en ajoutant \u00e0 chaque entit\u00e9 les attributs de l\u2019objet S57. La trace des primitives utilis\u00e9es pour la g\u00e9om\u00e9trie de chaque entit\u00e9 se trouve dans le champ <strong><em>NAME_RCID <\/em><\/strong>des tables SIG, \u00e0 condition d\u2019avoir ajout\u00e9 les options <strong><em>-oo \u00ab\u00a0RETURN_LINKAGES=ON\u00a0\u00bb \u2013oo \u00ab\u00a0LNAM_REFS=ON\u00a0\u00bb<\/em><\/strong> \u00e0 la ligne de commande ogr2ogr.<\/p>\n\n\n\n<p>La figure suivante montre une couche de type point. La valeur indiqu\u00e9e dans le champ <strong><em>NAME_RCID <\/em><\/strong>est celle <strong><em>RCID <\/em><\/strong>du point utilis\u00e9 de la table IsolatedNode.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"84\" data-attachment-id=\"12755\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-geopackage-dans-qgis-version-finale-premiere-partie\/aert1\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert1.png?fit=1294%2C170&amp;ssl=1\" data-orig-size=\"1294,170\" 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=\"aert1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert1.png?fit=640%2C84&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert1.png?resize=640%2C84&#038;ssl=1\" alt=\"\" class=\"wp-image-12755\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert1.png?resize=1024%2C135&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert1.png?resize=300%2C39&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert1.png?resize=768%2C101&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert1.png?w=1294&amp;ssl=1 1294w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>La figure suivante montre un exemple de couche de type lin\u00e9aire. Les valeurs indiqu\u00e9es dans le champ NAME_RCID sont celles des <strong><em>RCID <\/em><\/strong>des polylignes utilis\u00e9es de la table Edge.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"87\" data-attachment-id=\"12756\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-geopackage-dans-qgis-version-finale-premiere-partie\/aert2\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?fit=1587%2C216&amp;ssl=1\" data-orig-size=\"1587,216\" 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=\"aert2\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?fit=640%2C87&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?resize=640%2C87&#038;ssl=1\" alt=\"\" class=\"wp-image-12756\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?resize=1024%2C139&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?resize=300%2C41&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?resize=768%2C105&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?resize=1536%2C209&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?w=1587&amp;ssl=1 1587w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert2.png?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>La figure suivante montre un exemple de couche de type polygone. Les valeurs indiqu\u00e9es dans le champ NAME_RCID sont celles des polylignes utilis\u00e9es de la table Edge.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"108\" data-attachment-id=\"12757\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-geopackage-dans-qgis-version-finale-premiere-partie\/aert3\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?fit=1665%2C279&amp;ssl=1\" data-orig-size=\"1665,279\" 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=\"aert3\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?fit=640%2C108&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?resize=640%2C108&#038;ssl=1\" alt=\"\" class=\"wp-image-12757\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?resize=1024%2C172&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?resize=300%2C50&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?resize=768%2C129&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?resize=1536%2C257&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?w=1665&amp;ssl=1 1665w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert3.png?w=1280&amp;ssl=1 1280w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Pour pouvoir r\u00e9cup\u00e9rer les attributs <strong>QUAPOS <\/strong>et <strong>POSACC <\/strong>de chaque entit\u00e9 des tables de type point nous devons r\u00e9cup\u00e9rer les valeurs du point <strong>IsolatedNode <\/strong>pour les affecter aux tables des diff\u00e9rents objets ENC. <\/p>\n\n\n\n<p>Si les identifiants \u00e9taient directement les RCID dans les tables ENC, on pourrait faire une <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/jointure-table-qgis\/\">jointure<\/a> entre chaque table (soundg, obstrn,&#8230;) et IsolatedNode. Mais comme vous pouvez le voir dans les images pr\u00e9c\u00e9dentes, l&rsquo;attribut NAME_RCID est de type <em>stringlist <\/em>ce qui bloque cette solution. Nous avons donc d\u00e9velopp\u00e9 un script python qui fait ce travail lors du chargement des donn\u00e9es S57-&gt;geopackage.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">T\u00e9l\u00e9chargement des fichiers V3<\/h2>\n\n\n\n<p><a href=\"https:\/\/www.nasca.ovh\/downloads\/filesV3.7z\" title=\"\">Vous pouvez t\u00e9l\u00e9charger l&rsquo;ensemble des fichiers .bat et .py cit\u00e9s dans cet article \u00e0 partir de ce lien.<\/a><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Modification des commandes ogr2ogr d\u2019import des fichiers S57<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Import des couches \u00ab&nbsp;points&nbsp;\u00bb<\/h3>\n\n\n\n<p>Pour importer les primitives des fichiers S57 il est n\u00e9cessaire d\u2019ajouter l\u2019option &#8211;<strong><em>oo RETURN_PRIMITIVES = ON&nbsp;<\/em><\/strong> aux commandes d\u2019import. Dans le cas des points il est aussi n\u00e9cessaire d\u2019ajouter l\u2019option <strong><em>-nlt MULTIPOINT<\/em><\/strong> car si non la table <strong><em>IsolatedNode <\/em><\/strong>sera cr\u00e9\u00e9e comme de type point et les couches multipoint ne pourront pas \u00eatre prises en charge.<\/p>\n\n\n\n<p>Le fichier .bat d\u2019import des couches de type point sera alors&nbsp;:<\/p>\n\n\n\n<div class='stb-container stb-style-download stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAADcFJREFUeNrsmnmQXNV1xn\/3Lf1eb9OzdM+qGe2DFgZFIGQIizFGBpRAgQUhmDUOqQI7qYIirtguAgHbyBUbO3FsEpcTIixMICKgsDgskYyNWGwEaLEQoA1mn+np6Z6ZXt9288d9o8E2IhKSUymXXtWrN931+vX97vnOOd93eoSUkt+FQ+N35DgO5DiQ39JhfNCbQojfeC+ia0RtC8\/zKdUclvUspVQus3hJD\/nxMfoGhwkqU3zi\/NV2NF7X+OSjD2WSDem6IJAWgKGJ2kR+fPLiNX+UrZaL45ue+XHViCbo7GijpaWVHdu3kYhH2frGTmzTQAiB5\/u4fvAba\/mgAmUczS4IIfA9j+pUIbpo4bwerLozS1b6FLtjwfJP\/sU3WnNTtVix7JgEAUnLcNPJSAlqw6X+\/W\/0nHrGa8ItbRkZHNjpNjVVP2jzjjoih3VIKE5MGF2zu1bH5yy9WrZ0n5N1zMzOgTFGXxrAK1XA80FK8APwPAuBZdrRxpbGhiWL5i6+qi0psk0L9m1u0ksP\/PzFF5+ORdu8j7ypHxSmD6eWR6nmsmJZz6KTV11y+z6v8Q\/2lURd\/0gOr1gEASBACAUiEBAEClQQQAB4EnyJmUgxb14ny+emJhdEhp7a9Oj6r7z82vbdlqGjadoRUeuIgFimQaXqcO6qVZfPP++P7970zviCvXv2EggDYgkQEiRhFMK\/gzAivgShhfVFqKsPeGDE6jj1lKV8+pTY3lf+\/e9v+4+NTz1sGTpSSpxjDUQHIgL90muuvTl65pV3\/dvz22Pl0QHwqmqBdh1omtp1yftASBUFCUgdhD4DBB00AzQbtCQdJ53IFy9bUHln\/V\/f\/t17f\/BtobbgsIAcdvnVBNql11x7q7HqhrXrt\/bFyq4Ltg1GBHwPnKpa7K9uSUgzDTQLTAuMXzvNOMQbobmTgckodzyvRRfe9J27P3\/TDV8QR7K+w71x1YWrr01ccMOdD768z3Q8D+oaIJoEwwRdA68CgaeiIlA5IoR6rZkKsG6BFlGgtBBErAHqZ0FmNjS3MZ6rcMcjA+aCq+6647I1l15\/TIEsnNu1fPEVf\/61B7b2216tBpapAMTqwIqCpgMBuI56pBAc5JcIgei2AqJH1GnGQhDt0NQJdRnFX1Ekv38\/X3\/kHfvsz962dkn33BXHBIita6k1N976lScOVNvL+TxYEbU4ISBiQaIhBKNB4IAMFO\/F+2hlRn6VVmZ0BkS6E1Jp0CRUJ6A4BrLE8N5e1m+tNt\/wl3d+LaJRd9RAzr\/o4iv3pntW7enPqcV6rtps3QijkoREWi2QAHxXRUDTFRjdACMKhq0iEYlCvAEa2iHTCXXNoAmoFmBqFKbyUKtCRPCL7ft5W19yzqcvv\/yqowLSEDXTs89aff2W\/ZMRKXTQTdUXPE+BMUy104l6RQ3DVGCmaRcJIxCJQTSuSnS8HhrboLkTUs1qBZVxmByFYgGcmqp8AgLf55lt2Uj32Zdc15CwMkcMZLr4nnb2OasGY3NOGslOQuCD1ELa6ApMEIBpQiwO9RlIpsE01FlzYXAA+nphYBgGRqEqoKkDWmere5FQzYcg8uBUQPozC9AE\/UN5ekVHz2lnnPVJAP0QUsY4hPpAB635hGXn7iiaUemEVPJDBaELRR3fn8kBTVfn2ADs3UU608Q5n+gJfq+7q2hEkuweLie39DliXxHIpBSdSuMwOQKlvIoE8mDFRqrK51Wr7B4OYiuWnf4p45n\/3uBJ6R+R1upsb+5KdC1ZPjRUUHmhh7yXngLkS1V28VUuWLb68vwEl328x7vzxst3z25t3O041UKlUsZz\/fqi0Jf+8w5v0Xef7dXdhAVuXtHJdZQqQMxEIwjRiIDBbJFgVueSlkx9+0C20HdEQKxEalb\/hN+RHehXOy+tsGfoICKqZ7ieAumbIAX09XLN6tO9H9y8ZrOpadt937ftaMw2IlHGstmRYGL8vS+ubBwW1eCcbz28UyedVJ9HqggRyhv5vqjogqHcBOX5mXnp1vZ5hwKiHQpdqr5pbtUVLf5oPxRzMDEGk+NQmoRqRckOEYHAAC+AwX46jTJ3XX3udsvQt2u6niyVy9ozzz777qZNmw7ohqEnG9PJ4aHc63+2IrVzaaMLY7kwp3QwNBVhXczQiwC0AK84RWDVZ1pa2+dHxBHI+PbWNM2tbe0emqBcBGmDqIKhQyXs0tN9wTRVjozkuOSiE91ZDfFfOq5re57v33LLLU+88MILL0spWbly5elr1679w3hdg21r3q4LTuk4cdejbxs0N4AIVbEfyn4pFX0DBwIXfJeJsosVT2Yy6frDr1rxRBzTsut8N1C77fvqwbUa1EpQmlDRKYxCIQfj41Aq0t3ZUiqWSmXTjMQefvjhnevWrXs+lUpN1tXVTT700EPPb968eXdbW2scoU0snF0\/RSwOEQNMoapV4IDngF8BWQXpKpCapOh4eGh2Ll84fCD7DvQKTdc06fvKR\/jB+67Tpw+uD46jzkBD001ZLleo1WpaLpcrtbe312zbJpFI0N3d7dRqtXIsFtNsOyo14fqYDkQkmBI0XxUS6QAuCB90qShnGkhdBylFzUMcNrUcX0rfccqGJpTkkHJGemtGqJ1CEWjaYCchoTFWFvHAd+yR0dHKeeedd1JbW9uSe++9902AtWvXLlq2bNlix3EqqWQyvufA1iQTg+CmVNWLWWCb4QZ5SiH4QWjGfBJxG6EJT36Axv7QqpUdHc4m53gqH9BVH9EjKi+08KqHeWInIGPz3N5y5PpPRU7Ij2RfyLS2NS6PRP5kzZo1L5umycqVK0+fNWtWKvC93JSr9Tz3zphFRwvogXKMEUt9l9BnzJgbVsaKT6o+xlilWDhiz54bG+1tCGp5YnUNyECp14NSPIzK9NWwYXYLL40GbHyPkz8zp360f3jorVRjuu6mz33uoqhtS8dxKp7r5QzT6P76gz9esW2kBMuWQtVRKsBH5YOuK2GqaYoJToDWbBExKpPZ4cHeI9ZaTnmqvz1lDqcbGkGG0RBm6BX1UAFbilbJDDTPIuhcxB0bJuwf7qhd0JhuPNOUTiQ3MlgcHx0q6tI1y7XaGV\/6\/mMX3rPuKZtUQjWKmAmJKMQjilo6qslqEiwDYhFaZ6exykO92YH+A0cckYGBwV53vO\/t1ubuxWO5ogq5mAagK2MUTUB9M6RnQTQFEgo5nb\/63jZ7Q2dwxkUrO09ePDc9JUSZ7W\/9PLlhy87ortGqoHOhyoH8BNQnFQBfU0VEhtJfovIDQUeTRXTXuwdGsvm+IwZS8ynk3nvzxRNWrLz4l\/uyGlKbAWPYEK1TIJo6lCdxfZgcA6+Al4rxyr4R8crubTFMPQZVqGYhakDnQtX0KhOQL4Q6TVUmNA1cpXzRNZAawogwP1IJ9r7005\/VoPCRZPxrL2\/ZPD9e3d+STs8oXyOqLG6qBdIdSsK7nuopuUHIj4BbhXQjzOmCznaY1QlzFkBjE1QKKieEptTuVBEcX\/UqXSg6aeHgQkpaMnHmTR048PqLWzZ\/ZD8ykM3vGN31kyc\/fupcVal0G2IpaGiFTDskGxQd8iOQG4CJUaiVlX5ya0oMTjdTNyynTlndE4T0qVSgWFHPCQK1Iss46P1PazYZfOaxJ\/vzk9uPxiF6Gzc8eP\/HMvnd3Yvngx6HhhbIdCiX53gKxNgAFLJQKYemy1eJ7PsKgOMoCaJHVJXzQ60WhHlQqkDFC1\/Lg1ZhTlcjHxt\/8+3HfvTAOlUBjsLqFqbKuzd876v33Hh+V7W+eyEkmpX78zzIj4aRGINqWe289FUTDRuZUsdeOFExwl4B+E44hfTU\/aUK1EJL4AVEklGuaqe28W\/vvGeiWtt9LKYozitbt23c+8R37rvtmh6sTBNM1WAiC+NDSmvVyqoKSVfJjMBXC\/RcpZ2kFyqD0AIYlhoxShlqudDflGpQdiBicV1PM333ffNffvHG9scA51gAkUDuX++779vu0\/c8\/uUL01jOJAz0qSpVK4W764bRCDVT4M6o1yCcFwotVAiWUtL4KipuTUWl4iEcwRXL2ok+\/v3HHvnRA9+SMMYhZMlHGtBVXH\/v3bf\/zZfEk199\/NbzEtiiCoUC+LUQxPTi3VAnTQPxQqc3PXHUFb0MWzU9gSoCpRJmNMpnlreTefIf\/3PdPd\/4ctn19x3zafxB56iLhdf96Q1f6Dr3s9fev3nQ2rOnN1SqMxPSg5NGjbBHmBCJKAOl6+Ec21dj1kACJm1dHVxxctrJPvVP6x754f3frAVyzyEpcjRD7F8bsrSevvKUSy+6\/ubP7yy1LX7u1XdFLptH+o7a5Wm3p2nKHkdCA2boytKGQIUOdQmbMxa00+Pvf+sn6\/\/uH159bdtGCUMfRqdjBWQaTCwZs5atueLKqzM9564+UE51vjNQ1AayExSKJXw3rJZ6CMSyIGqjxywa6uK0ZOLMr9OCzlp\/X\/61p\/\/rqUceWj9RcbYD5f8tJ44lkPcfdS2NqeW\/f9bZq1KzFp0aa1t0QlHEmkfKwnb1mAg0E2maGKaGqbmyJSarca+QLR3Y8XZh385XX\/nZT58dKUy+Dkwd9o9lvyUgB38LMgWts7s6FiTqG+fokVhbfWM6bVh2DCEInGo5n8uO+dXS0FQ+9957fUN7XBg+nNL6fw3k16lnAaErI9TmOEDtcMrpMQFy\/B8GjgM5DuQ4kP+3x\/8MAHWpUzAU7qJ7AAAAAElFTkSuQmCC' alt='img'\/><\/div><div class='stb-caption-content'>mass_load_s57_points_V3.bat<\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@echo off<br>setlocal enabledelayedexpansion<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>REM Assurez-vous qu'au moins 2 arguments ont \u00e9t\u00e9 fournis<br>if \"%~2\"==\"\" (<br>echo Usage: %0 directory000 output_geopackage<br>exit \/b 1<br>)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>REM R\u00e9cup\u00e9rer les arguments de la ligne de commande<br>set \"directory=%~1\"<br>set \"output_geopackage=%~2\"<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>REM Compter le nombre total de fichiers \u00e0 traiter<br>set \/a total_files=0<br>for \/r \"%directory%\" %%a in (*.000) do (<br>set \/a total_files+=1<br>)<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>REM Initialiser le compteur de fichiers trait\u00e9s\nset \/a processed_files=0\nREM It\u00e9rez sur tous les fichiers .000 dans le r\u00e9pertoire\nfor \/r \"%directory%\" %%i in (*.000) do (\necho Traitement du fichier: %%~ni\nset \/a processed_files+=1\necho Traitement en cours : !processed_files! sur !total_files!\nset \"file=%%~ni\"\nogr2ogr -f GPKG -skipfailures -append -update -where \"OGR_GEOMETRY='POINT' or OGR_GEOMETRY='MULTIPOINT'\" -oo SPLIT_MULTIPOINT=ON -oo RETURN_LINKAGES=ON -oo LNAM_REFS=ON -oo ADD_SOUNDG_DEPTH=ON -oo RETURN_PRIMITIVES=ON -nlt MULTIPOINT -mapFieldType StringList=String,IntegerList=String \"%output_geopackage%\" \"%%i\"\nogr2ogr -f GPKG -skipfailures -append -update \"%output_geopackage%\" \"%%i\" \"DSID\"\nogr2ogr -f GPKG -skipfailures -append -update \"%output_geopackage%\" \"%%i\" \"C_AGGR\"\npython c:\/testgpkgV3\/update_geopackage_dsid_V3.py \"%output_geopackage%\" \"!file!\"\n)\necho Import termin\u00e9. Ajout de posass et quapos.\npython c:\/testgpkgV3\/add_posacc_quapos_to_pointsV3.py \"%output_geopackage%\"\necho Traitement termin\u00e9.\npause<\/code><\/pre>\n\n\n\n<p><\/div><\/div>\n\n\n\n<p>Pour l&rsquo;ex\u00e9cuter, ouvrez un fen\u00eatre OSGeo4W Shell, allez dans le r\u00e9pertoire contenant les fichiers .bat et rentrez la commande:<\/p>\n\n\n\n<p><strong><em>.\\mass_load_s57_points_V3.bat    r\u00e9pertoire_fichiers_000<\/em><\/strong> <strong><em>chemin\/pointsENC.gpkg<\/em><\/strong><\/p>\n\n\n\n<p>Au pr\u00e9alable, \u00e9ditez le fichier pour modifier les lignes:<\/p>\n\n\n\n<p><em>python <strong>c:\/testgpkgV3\/<\/strong>update_geopackage_dsid_prp_prim.py \u00ab\u00a0%output_geopackage%\u00a0\u00bb \u00ab\u00a0!file!\u00a0\u00bb<\/em><\/p>\n\n\n\n<p>et<\/p>\n\n\n\n<p><em>python <strong>c:\/testgpkgV3\/<\/strong>add_posacc_quapos_to_pointsV3.py<\/em><\/p>\n\n\n\n<p>Pour rentrer les chemins que vous aurez choisis pour stocker les scripts python.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"124\" data-attachment-id=\"12759\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-geopackage-dans-qgis-version-finale-premiere-partie\/capture-decran-2024-04-02-110244\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?fit=2256%2C438&amp;ssl=1\" data-orig-size=\"2256,438\" 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=\"Capture-decran-2024-04-02-110244\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?fit=640%2C124&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?resize=640%2C124&#038;ssl=1\" alt=\"\" class=\"wp-image-12759\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?resize=1024%2C199&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?resize=300%2C58&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?resize=768%2C149&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?resize=1536%2C298&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?resize=2048%2C398&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/Capture-decran-2024-04-02-110244.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Le premier script, <strong><em>update_geopackage_dsid_V3.py<\/em><\/strong>, a \u00e9t\u00e9 modifi\u00e9 pour ajouter en plus de <em>enc_chart, scale <\/em>et <em>purpose<\/em>, les attributs <em>POSACC <\/em>et <em>QUAPOS <\/em>\u00e0 toutes les tables point, au moment du passage S57-&gt;geopackage.<\/p>\n\n\n\n<p>Le deuxi\u00e8me script, <strong><em>add_posacc_quapos_to_pointsV3.py<\/em><\/strong>, une fois termin\u00e9 le chargement de tous les fichiers S57 du r\u00e9pertoire ENC, met \u00e0 jour les valeurs de ces attributs pour chaque entit\u00e9 des tables points.<\/p>\n\n\n\n<div class='stb-container stb-style-download stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAADcFJREFUeNrsmnmQXNV1xn\/3Lf1eb9OzdM+qGe2DFgZFIGQIizFGBpRAgQUhmDUOqQI7qYIirtguAgHbyBUbO3FsEpcTIixMICKgsDgskYyNWGwEaLEQoA1mn+np6Z6ZXt9288d9o8E2IhKSUymXXtWrN931+vX97vnOOd93eoSUkt+FQ+N35DgO5DiQ39JhfNCbQojfeC+ia0RtC8\/zKdUclvUspVQus3hJD\/nxMfoGhwkqU3zi\/NV2NF7X+OSjD2WSDem6IJAWgKGJ2kR+fPLiNX+UrZaL45ue+XHViCbo7GijpaWVHdu3kYhH2frGTmzTQAiB5\/u4fvAba\/mgAmUczS4IIfA9j+pUIbpo4bwerLozS1b6FLtjwfJP\/sU3WnNTtVix7JgEAUnLcNPJSAlqw6X+\/W\/0nHrGa8ItbRkZHNjpNjVVP2jzjjoih3VIKE5MGF2zu1bH5yy9WrZ0n5N1zMzOgTFGXxrAK1XA80FK8APwPAuBZdrRxpbGhiWL5i6+qi0psk0L9m1u0ksP\/PzFF5+ORdu8j7ypHxSmD6eWR6nmsmJZz6KTV11y+z6v8Q\/2lURd\/0gOr1gEASBACAUiEBAEClQQQAB4EnyJmUgxb14ny+emJhdEhp7a9Oj6r7z82vbdlqGjadoRUeuIgFimQaXqcO6qVZfPP++P7970zviCvXv2EggDYgkQEiRhFMK\/gzAivgShhfVFqKsPeGDE6jj1lKV8+pTY3lf+\/e9v+4+NTz1sGTpSSpxjDUQHIgL90muuvTl65pV3\/dvz22Pl0QHwqmqBdh1omtp1yftASBUFCUgdhD4DBB00AzQbtCQdJ53IFy9bUHln\/V\/f\/t17f\/BtobbgsIAcdvnVBNql11x7q7HqhrXrt\/bFyq4Ltg1GBHwPnKpa7K9uSUgzDTQLTAuMXzvNOMQbobmTgckodzyvRRfe9J27P3\/TDV8QR7K+w71x1YWrr01ccMOdD768z3Q8D+oaIJoEwwRdA68CgaeiIlA5IoR6rZkKsG6BFlGgtBBErAHqZ0FmNjS3MZ6rcMcjA+aCq+6647I1l15\/TIEsnNu1fPEVf\/61B7b2216tBpapAMTqwIqCpgMBuI56pBAc5JcIgei2AqJH1GnGQhDt0NQJdRnFX1Ekv38\/X3\/kHfvsz962dkn33BXHBIita6k1N976lScOVNvL+TxYEbU4ISBiQaIhBKNB4IAMFO\/F+2hlRn6VVmZ0BkS6E1Jp0CRUJ6A4BrLE8N5e1m+tNt\/wl3d+LaJRd9RAzr\/o4iv3pntW7enPqcV6rtps3QijkoREWi2QAHxXRUDTFRjdACMKhq0iEYlCvAEa2iHTCXXNoAmoFmBqFKbyUKtCRPCL7ft5W19yzqcvv\/yqowLSEDXTs89aff2W\/ZMRKXTQTdUXPE+BMUy104l6RQ3DVGCmaRcJIxCJQTSuSnS8HhrboLkTUs1qBZVxmByFYgGcmqp8AgLf55lt2Uj32Zdc15CwMkcMZLr4nnb2OasGY3NOGslOQuCD1ELa6ApMEIBpQiwO9RlIpsE01FlzYXAA+nphYBgGRqEqoKkDWmere5FQzYcg8uBUQPozC9AE\/UN5ekVHz2lnnPVJAP0QUsY4hPpAB635hGXn7iiaUemEVPJDBaELRR3fn8kBTVfn2ADs3UU608Q5n+gJfq+7q2hEkuweLie39DliXxHIpBSdSuMwOQKlvIoE8mDFRqrK51Wr7B4OYiuWnf4p45n\/3uBJ6R+R1upsb+5KdC1ZPjRUUHmhh7yXngLkS1V28VUuWLb68vwEl328x7vzxst3z25t3O041UKlUsZz\/fqi0Jf+8w5v0Xef7dXdhAVuXtHJdZQqQMxEIwjRiIDBbJFgVueSlkx9+0C20HdEQKxEalb\/hN+RHehXOy+tsGfoICKqZ7ieAumbIAX09XLN6tO9H9y8ZrOpadt937ftaMw2IlHGstmRYGL8vS+ubBwW1eCcbz28UyedVJ9HqggRyhv5vqjogqHcBOX5mXnp1vZ5hwKiHQpdqr5pbtUVLf5oPxRzMDEGk+NQmoRqRckOEYHAAC+AwX46jTJ3XX3udsvQt2u6niyVy9ozzz777qZNmw7ohqEnG9PJ4aHc63+2IrVzaaMLY7kwp3QwNBVhXczQiwC0AK84RWDVZ1pa2+dHxBHI+PbWNM2tbe0emqBcBGmDqIKhQyXs0tN9wTRVjozkuOSiE91ZDfFfOq5re57v33LLLU+88MILL0spWbly5elr1679w3hdg21r3q4LTuk4cdejbxs0N4AIVbEfyn4pFX0DBwIXfJeJsosVT2Yy6frDr1rxRBzTsut8N1C77fvqwbUa1EpQmlDRKYxCIQfj41Aq0t3ZUiqWSmXTjMQefvjhnevWrXs+lUpN1tXVTT700EPPb968eXdbW2scoU0snF0\/RSwOEQNMoapV4IDngF8BWQXpKpCapOh4eGh2Ll84fCD7DvQKTdc06fvKR\/jB+67Tpw+uD46jzkBD001ZLleo1WpaLpcrtbe312zbJpFI0N3d7dRqtXIsFtNsOyo14fqYDkQkmBI0XxUS6QAuCB90qShnGkhdBylFzUMcNrUcX0rfccqGJpTkkHJGemtGqJ1CEWjaYCchoTFWFvHAd+yR0dHKeeedd1JbW9uSe++9902AtWvXLlq2bNlix3EqqWQyvufA1iQTg+CmVNWLWWCb4QZ5SiH4QWjGfBJxG6EJT36Axv7QqpUdHc4m53gqH9BVH9EjKi+08KqHeWInIGPz3N5y5PpPRU7Ij2RfyLS2NS6PRP5kzZo1L5umycqVK0+fNWtWKvC93JSr9Tz3zphFRwvogXKMEUt9l9BnzJgbVsaKT6o+xlilWDhiz54bG+1tCGp5YnUNyECp14NSPIzK9NWwYXYLL40GbHyPkz8zp360f3jorVRjuu6mz33uoqhtS8dxKp7r5QzT6P76gz9esW2kBMuWQtVRKsBH5YOuK2GqaYoJToDWbBExKpPZ4cHeI9ZaTnmqvz1lDqcbGkGG0RBm6BX1UAFbilbJDDTPIuhcxB0bJuwf7qhd0JhuPNOUTiQ3MlgcHx0q6tI1y7XaGV\/6\/mMX3rPuKZtUQjWKmAmJKMQjilo6qslqEiwDYhFaZ6exykO92YH+A0cckYGBwV53vO\/t1ubuxWO5ogq5mAagK2MUTUB9M6RnQTQFEgo5nb\/63jZ7Q2dwxkUrO09ePDc9JUSZ7W\/9PLlhy87ortGqoHOhyoH8BNQnFQBfU0VEhtJfovIDQUeTRXTXuwdGsvm+IwZS8ynk3nvzxRNWrLz4l\/uyGlKbAWPYEK1TIJo6lCdxfZgcA6+Al4rxyr4R8crubTFMPQZVqGYhakDnQtX0KhOQL4Q6TVUmNA1cpXzRNZAawogwP1IJ9r7005\/VoPCRZPxrL2\/ZPD9e3d+STs8oXyOqLG6qBdIdSsK7nuopuUHIj4BbhXQjzOmCznaY1QlzFkBjE1QKKieEptTuVBEcX\/UqXSg6aeHgQkpaMnHmTR048PqLWzZ\/ZD8ykM3vGN31kyc\/fupcVal0G2IpaGiFTDskGxQd8iOQG4CJUaiVlX5ya0oMTjdTNyynTlndE4T0qVSgWFHPCQK1Iss46P1PazYZfOaxJ\/vzk9uPxiF6Gzc8eP\/HMvnd3Yvngx6HhhbIdCiX53gKxNgAFLJQKYemy1eJ7PsKgOMoCaJHVJXzQ60WhHlQqkDFC1\/Lg1ZhTlcjHxt\/8+3HfvTAOlUBjsLqFqbKuzd876v33Hh+V7W+eyEkmpX78zzIj4aRGINqWe289FUTDRuZUsdeOFExwl4B+E44hfTU\/aUK1EJL4AVEklGuaqe28W\/vvGeiWtt9LKYozitbt23c+8R37rvtmh6sTBNM1WAiC+NDSmvVyqoKSVfJjMBXC\/RcpZ2kFyqD0AIYlhoxShlqudDflGpQdiBicV1PM333ffNffvHG9scA51gAkUDuX++779vu0\/c8\/uUL01jOJAz0qSpVK4W764bRCDVT4M6o1yCcFwotVAiWUtL4KipuTUWl4iEcwRXL2ok+\/v3HHvnRA9+SMMYhZMlHGtBVXH\/v3bf\/zZfEk199\/NbzEtiiCoUC+LUQxPTi3VAnTQPxQqc3PXHUFb0MWzU9gSoCpRJmNMpnlreTefIf\/3PdPd\/4ctn19x3zafxB56iLhdf96Q1f6Dr3s9fev3nQ2rOnN1SqMxPSg5NGjbBHmBCJKAOl6+Ec21dj1kACJm1dHVxxctrJPvVP6x754f3frAVyzyEpcjRD7F8bsrSevvKUSy+6\/ubP7yy1LX7u1XdFLptH+o7a5Wm3p2nKHkdCA2boytKGQIUOdQmbMxa00+Pvf+sn6\/\/uH159bdtGCUMfRqdjBWQaTCwZs5atueLKqzM9564+UE51vjNQ1AayExSKJXw3rJZ6CMSyIGqjxywa6uK0ZOLMr9OCzlp\/X\/61p\/\/rqUceWj9RcbYD5f8tJ44lkPcfdS2NqeW\/f9bZq1KzFp0aa1t0QlHEmkfKwnb1mAg0E2maGKaGqbmyJSarca+QLR3Y8XZh385XX\/nZT58dKUy+Dkwd9o9lvyUgB38LMgWts7s6FiTqG+fokVhbfWM6bVh2DCEInGo5n8uO+dXS0FQ+9957fUN7XBg+nNL6fw3k16lnAaErI9TmOEDtcMrpMQFy\/B8GjgM5DuQ4kP+3x\/8MAHWpUzAU7qJ7AAAAAElFTkSuQmCC' alt='img'\/><\/div><div class='stb-caption-content'>add_posacc_quapos_to_pointsV3.py<\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import sys\nfrom osgeo import ogr\n\ndef add_posacc_quapos_to_pointsV3 (geopackage_path):\n    # Chemin vers le GeoPackage\n\n    # Liste des tables \u00e0 exclure\n    tables_exclues = &#091;\"IsolatedNode\", \"ConnectedNode\",\"DSID\",\"C_AGGR\",\"C_ASSO\",\"layer_styles\"]  \n\n    # Ouvrir le GeoPackage\n    driver = ogr.GetDriverByName(\"GPKG\")\n    geopackage = driver.Open(geopackage_path, 1)\n\n    # R\u00e9cup\u00e9rer la table IsolatedNode\n    isolated_node_table = geopackage.GetLayerByName(\"IsolatedNode\")\n\n    # Parcourir toutes les tables du GeoPackage\n    for i in range(geopackage.GetLayerCount()):\n        table = geopackage.GetLayerByIndex(i)\n        table_name = table.GetName()\n        \n        # V\u00e9rifier si la table n'est pas dans la liste des tables exclues et si elle n'est pas IsolatedNode\n        if table_name not in tables_exclues and table_name != \"IsolatedNode\" :\n            print(f\"Traitement table {table_name}\")\n            # R\u00e9cup\u00e9rer les noms des champs des tables\n            table_defn = table.GetLayerDefn()\n            field_names = &#091;table_defn.GetFieldDefn(j).GetName() for j in range(table_defn.GetFieldCount())]\n            \n            # Index des champs rcid et enc_chart dans la table IsolatedNode\n            isolated_node_defn = isolated_node_table.GetLayerDefn()\n            rcid_index_isolated_node = isolated_node_defn.GetFieldIndex(\"RCID\")\n            enc_chart_index_isolated_node = isolated_node_defn.GetFieldIndex(\"enc_chart\")\n            \n            # Parcourir les enregistrements de la table\n            table.ResetReading()\n            for feature in table:\n                rcid_full = feature.GetField(\"NAME_RCID\")\n                rcid = rcid_full.split(\":\")&#091;1]\n                rcid = rcid&#091;:-1]\n                enc_chart = feature.GetField(\"enc_chart\")\n                \n                # Rechercher le rcid et enc_chart dans la table IsolatedNode\n                isolated_node_table.SetAttributeFilter(\"RCID = '{}' AND enc_chart = '{}'\".format(rcid, enc_chart))\n                isolated_node_feature = isolated_node_table.GetNextFeature()\n                \n                if isolated_node_feature:\n                    # Mettre \u00e0 jour les attributs POSACC et QUAPOS de la table en cours avec ceux d'IsolatedNode\n                    posacc_index = table_defn.GetFieldIndex(\"POSACC\")\n                    quapos_index = table_defn.GetFieldIndex(\"QUAPOS\")\n                    if posacc_index &gt;= 0:\n                        posacc = isolated_node_feature.GetField(\"POSACC\")\n                        feature.SetField(posacc_index, posacc)\n                    if quapos_index &gt;= 0:\n                        quapos = isolated_node_feature.GetField(\"QUAPOS\")\n                        feature.SetField(quapos_index, quapos)\n                        \n                    \n                    # Sauvegarder les modifications\n                    table.SetFeature(feature)\n\n    # Fermer le GeoPackage\n    geopackage = None\n\nif __name__ == \"__main__\":\n    if len(sys.argv) != 2:\n        print(\"Usage: python script.py geopackage_path \")\n        sys.exit(1)\n    \n    geopackage_path = sys.argv&#091;1]\n    \n\n    add_posacc_quapos_to_pointsV3 (geopackage_path)\n\n  <\/code><\/pre>\n\n\n\n<p><\/div><\/div>\n\n\n\n<p>Dans l&rsquo;exemple qui suit, nous avons charg\u00e9 7 cartes ENC dans le geopackage d&rsquo;import pointsENC.gpkg.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"321\" data-attachment-id=\"12762\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-geopackage-dans-qgis-version-finale-premiere-partie\/aert4-1\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?fit=3734%2C1871&amp;ssl=1\" data-orig-size=\"3734,1871\" 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=\"aert4-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?fit=640%2C321&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?resize=640%2C321&#038;ssl=1\" alt=\"\" class=\"wp-image-12762\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?resize=1024%2C513&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?resize=300%2C150&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?resize=768%2C385&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?resize=1536%2C770&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?resize=2048%2C1026&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert4-1.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Vous pouvez constater que les tables du geopackage contiennent les attributs POSACC et QUAPOS et que le dernier script a bien renseign\u00e9 les valeurs correspondantes de ces champs.<\/p>\n\n\n\n<p>Dans la deuxi\u00e8me partie de cette version finale consacr\u00e9e \u00e0 la symbologie vous verrez la nouvelle gestion de la couche \u00ab\u00a0nature des fonds\u00a0\u00bb. Cette symbologie est bas\u00e9e sur la cr\u00e9ation d&rsquo;un atribut \u00ab\u00a0Label\u00a0\u00bb dans la couche SBDARE et son remplissage avec un script python <strong><em>Label_sbdare.py<\/em><\/strong> . Cette op\u00e9ration peut se faire sur le base de donn\u00e9es compl\u00e8te ou ici, sur le geopackage pointsENC.gpkg. Comme elle prend un certain temps de calcul, nous vous conseillons de le faire \u00e0 ce stade. R\u00e9f\u00e9rez-vous \u00e0 l&rsquo;article <strong><em>Cartes ENC Geopackage dans QGis Version finale: deuxi\u00e8me partie<\/em><\/strong> pour le mode op\u00e9ratoire.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Import des couches \u00ab&nbsp;lignes&nbsp;\u00bb<\/h3>\n\n\n\n<p>Pour importer les primitives des fichiers S57 il est n\u00e9cessaire d\u2019ajouter l\u2019option &#8211;<strong><em>oo RETURN_PRIMITIVES = ON<\/em><\/strong>&nbsp; aux commandes d\u2019import. <\/p>\n\n\n\n<p>Le fichier .bat d\u2019import des couches de type ligne sera alors&nbsp;:<\/p>\n\n\n\n<div class='stb-container stb-style-download stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAADcFJREFUeNrsmnmQXNV1xn\/3Lf1eb9OzdM+qGe2DFgZFIGQIizFGBpRAgQUhmDUOqQI7qYIirtguAgHbyBUbO3FsEpcTIixMICKgsDgskYyNWGwEaLEQoA1mn+np6Z6ZXt9288d9o8E2IhKSUymXXtWrN931+vX97vnOOd93eoSUkt+FQ+N35DgO5DiQ39JhfNCbQojfeC+ia0RtC8\/zKdUclvUspVQus3hJD\/nxMfoGhwkqU3zi\/NV2NF7X+OSjD2WSDem6IJAWgKGJ2kR+fPLiNX+UrZaL45ue+XHViCbo7GijpaWVHdu3kYhH2frGTmzTQAiB5\/u4fvAba\/mgAmUczS4IIfA9j+pUIbpo4bwerLozS1b6FLtjwfJP\/sU3WnNTtVix7JgEAUnLcNPJSAlqw6X+\/W\/0nHrGa8ItbRkZHNjpNjVVP2jzjjoih3VIKE5MGF2zu1bH5yy9WrZ0n5N1zMzOgTFGXxrAK1XA80FK8APwPAuBZdrRxpbGhiWL5i6+qi0psk0L9m1u0ksP\/PzFF5+ORdu8j7ypHxSmD6eWR6nmsmJZz6KTV11y+z6v8Q\/2lURd\/0gOr1gEASBACAUiEBAEClQQQAB4EnyJmUgxb14ny+emJhdEhp7a9Oj6r7z82vbdlqGjadoRUeuIgFimQaXqcO6qVZfPP++P7970zviCvXv2EggDYgkQEiRhFMK\/gzAivgShhfVFqKsPeGDE6jj1lKV8+pTY3lf+\/e9v+4+NTz1sGTpSSpxjDUQHIgL90muuvTl65pV3\/dvz22Pl0QHwqmqBdh1omtp1yftASBUFCUgdhD4DBB00AzQbtCQdJ53IFy9bUHln\/V\/f\/t17f\/BtobbgsIAcdvnVBNql11x7q7HqhrXrt\/bFyq4Ltg1GBHwPnKpa7K9uSUgzDTQLTAuMXzvNOMQbobmTgckodzyvRRfe9J27P3\/TDV8QR7K+w71x1YWrr01ccMOdD768z3Q8D+oaIJoEwwRdA68CgaeiIlA5IoR6rZkKsG6BFlGgtBBErAHqZ0FmNjS3MZ6rcMcjA+aCq+6647I1l15\/TIEsnNu1fPEVf\/61B7b2216tBpapAMTqwIqCpgMBuI56pBAc5JcIgei2AqJH1GnGQhDt0NQJdRnFX1Ekv38\/X3\/kHfvsz962dkn33BXHBIita6k1N976lScOVNvL+TxYEbU4ISBiQaIhBKNB4IAMFO\/F+2hlRn6VVmZ0BkS6E1Jp0CRUJ6A4BrLE8N5e1m+tNt\/wl3d+LaJRd9RAzr\/o4iv3pntW7enPqcV6rtps3QijkoREWi2QAHxXRUDTFRjdACMKhq0iEYlCvAEa2iHTCXXNoAmoFmBqFKbyUKtCRPCL7ft5W19yzqcvv\/yqowLSEDXTs89aff2W\/ZMRKXTQTdUXPE+BMUy104l6RQ3DVGCmaRcJIxCJQTSuSnS8HhrboLkTUs1qBZVxmByFYgGcmqp8AgLf55lt2Uj32Zdc15CwMkcMZLr4nnb2OasGY3NOGslOQuCD1ELa6ApMEIBpQiwO9RlIpsE01FlzYXAA+nphYBgGRqEqoKkDWmere5FQzYcg8uBUQPozC9AE\/UN5ekVHz2lnnPVJAP0QUsY4hPpAB635hGXn7iiaUemEVPJDBaELRR3fn8kBTVfn2ADs3UU608Q5n+gJfq+7q2hEkuweLie39DliXxHIpBSdSuMwOQKlvIoE8mDFRqrK51Wr7B4OYiuWnf4p45n\/3uBJ6R+R1upsb+5KdC1ZPjRUUHmhh7yXngLkS1V28VUuWLb68vwEl328x7vzxst3z25t3O041UKlUsZz\/fqi0Jf+8w5v0Xef7dXdhAVuXtHJdZQqQMxEIwjRiIDBbJFgVueSlkx9+0C20HdEQKxEalb\/hN+RHehXOy+tsGfoICKqZ7ieAumbIAX09XLN6tO9H9y8ZrOpadt937ftaMw2IlHGstmRYGL8vS+ubBwW1eCcbz28UyedVJ9HqggRyhv5vqjogqHcBOX5mXnp1vZ5hwKiHQpdqr5pbtUVLf5oPxRzMDEGk+NQmoRqRckOEYHAAC+AwX46jTJ3XX3udsvQt2u6niyVy9ozzz777qZNmw7ohqEnG9PJ4aHc63+2IrVzaaMLY7kwp3QwNBVhXczQiwC0AK84RWDVZ1pa2+dHxBHI+PbWNM2tbe0emqBcBGmDqIKhQyXs0tN9wTRVjozkuOSiE91ZDfFfOq5re57v33LLLU+88MILL0spWbly5elr1679w3hdg21r3q4LTuk4cdejbxs0N4AIVbEfyn4pFX0DBwIXfJeJsosVT2Yy6frDr1rxRBzTsut8N1C77fvqwbUa1EpQmlDRKYxCIQfj41Aq0t3ZUiqWSmXTjMQefvjhnevWrXs+lUpN1tXVTT700EPPb968eXdbW2scoU0snF0\/RSwOEQNMoapV4IDngF8BWQXpKpCapOh4eGh2Ll84fCD7DvQKTdc06fvKR\/jB+67Tpw+uD46jzkBD001ZLleo1WpaLpcrtbe312zbJpFI0N3d7dRqtXIsFtNsOyo14fqYDkQkmBI0XxUS6QAuCB90qShnGkhdBylFzUMcNrUcX0rfccqGJpTkkHJGemtGqJ1CEWjaYCchoTFWFvHAd+yR0dHKeeedd1JbW9uSe++9902AtWvXLlq2bNlix3EqqWQyvufA1iQTg+CmVNWLWWCb4QZ5SiH4QWjGfBJxG6EJT36Axv7QqpUdHc4m53gqH9BVH9EjKi+08KqHeWInIGPz3N5y5PpPRU7Ij2RfyLS2NS6PRP5kzZo1L5umycqVK0+fNWtWKvC93JSr9Tz3zphFRwvogXKMEUt9l9BnzJgbVsaKT6o+xlilWDhiz54bG+1tCGp5YnUNyECp14NSPIzK9NWwYXYLL40GbHyPkz8zp360f3jorVRjuu6mz33uoqhtS8dxKp7r5QzT6P76gz9esW2kBMuWQtVRKsBH5YOuK2GqaYoJToDWbBExKpPZ4cHeI9ZaTnmqvz1lDqcbGkGG0RBm6BX1UAFbilbJDDTPIuhcxB0bJuwf7qhd0JhuPNOUTiQ3MlgcHx0q6tI1y7XaGV\/6\/mMX3rPuKZtUQjWKmAmJKMQjilo6qslqEiwDYhFaZ6exykO92YH+A0cckYGBwV53vO\/t1ubuxWO5ogq5mAagK2MUTUB9M6RnQTQFEgo5nb\/63jZ7Q2dwxkUrO09ePDc9JUSZ7W\/9PLlhy87ortGqoHOhyoH8BNQnFQBfU0VEhtJfovIDQUeTRXTXuwdGsvm+IwZS8ynk3nvzxRNWrLz4l\/uyGlKbAWPYEK1TIJo6lCdxfZgcA6+Al4rxyr4R8crubTFMPQZVqGYhakDnQtX0KhOQL4Q6TVUmNA1cpXzRNZAawogwP1IJ9r7005\/VoPCRZPxrL2\/ZPD9e3d+STs8oXyOqLG6qBdIdSsK7nuopuUHIj4BbhXQjzOmCznaY1QlzFkBjE1QKKieEptTuVBEcX\/UqXSg6aeHgQkpaMnHmTR048PqLWzZ\/ZD8ykM3vGN31kyc\/fupcVal0G2IpaGiFTDskGxQd8iOQG4CJUaiVlX5ya0oMTjdTNyynTlndE4T0qVSgWFHPCQK1Iss46P1PazYZfOaxJ\/vzk9uPxiF6Gzc8eP\/HMvnd3Yvngx6HhhbIdCiX53gKxNgAFLJQKYemy1eJ7PsKgOMoCaJHVJXzQ60WhHlQqkDFC1\/Lg1ZhTlcjHxt\/8+3HfvTAOlUBjsLqFqbKuzd876v33Hh+V7W+eyEkmpX78zzIj4aRGINqWe289FUTDRuZUsdeOFExwl4B+E44hfTU\/aUK1EJL4AVEklGuaqe28W\/vvGeiWtt9LKYozitbt23c+8R37rvtmh6sTBNM1WAiC+NDSmvVyqoKSVfJjMBXC\/RcpZ2kFyqD0AIYlhoxShlqudDflGpQdiBicV1PM333ffNffvHG9scA51gAkUDuX++779vu0\/c8\/uUL01jOJAz0qSpVK4W764bRCDVT4M6o1yCcFwotVAiWUtL4KipuTUWl4iEcwRXL2ok+\/v3HHvnRA9+SMMYhZMlHGtBVXH\/v3bf\/zZfEk199\/NbzEtiiCoUC+LUQxPTi3VAnTQPxQqc3PXHUFb0MWzU9gSoCpRJmNMpnlreTefIf\/3PdPd\/4ctn19x3zafxB56iLhdf96Q1f6Dr3s9fev3nQ2rOnN1SqMxPSg5NGjbBHmBCJKAOl6+Ec21dj1kACJm1dHVxxctrJPvVP6x754f3frAVyzyEpcjRD7F8bsrSevvKUSy+6\/ubP7yy1LX7u1XdFLptH+o7a5Wm3p2nKHkdCA2boytKGQIUOdQmbMxa00+Pvf+sn6\/\/uH159bdtGCUMfRqdjBWQaTCwZs5atueLKqzM9564+UE51vjNQ1AayExSKJXw3rJZ6CMSyIGqjxywa6uK0ZOLMr9OCzlp\/X\/61p\/\/rqUceWj9RcbYD5f8tJ44lkPcfdS2NqeW\/f9bZq1KzFp0aa1t0QlHEmkfKwnb1mAg0E2maGKaGqbmyJSarca+QLR3Y8XZh385XX\/nZT58dKUy+Dkwd9o9lvyUgB38LMgWts7s6FiTqG+fokVhbfWM6bVh2DCEInGo5n8uO+dXS0FQ+9957fUN7XBg+nNL6fw3k16lnAaErI9TmOEDtcMrpMQFy\/B8GjgM5DuQ4kP+3x\/8MAHWpUzAU7qJ7AAAAAElFTkSuQmCC' alt='img'\/><\/div><div class='stb-caption-content'>mass_load_s57_lignes_V3.bat<\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>@echo off\nsetlocal enabledelayedexpansion\n\nREM Assurez-vous qu'au moins 2 arguments ont \u00e9t\u00e9 fournis\nif \"%~2\"==\"\" (\n    echo Usage: %0 directory000 output_geopackage \n    exit \/b 1\n)\n\nREM R\u00e9cup\u00e9rer les arguments de la ligne de commande\nset \"directory=%~1\"\nset \"output_geopackage=%~2\"\n\nREM Compter le nombre total de fichiers \u00e0 traiter\nset \/a total_files=0\nfor \/r \"%directory%\" %%a in (*.000) do (\n    set \/a total_files+=1\n)\n\nREM Initialiser le compteur de fichiers trait\u00e9s\nset \/a processed_files=0\nREM It\u00e9rez sur tous les fichiers .000 dans le r\u00e9pertoire\nfor \/r \"%directory%\" %%i in (*.000) do (\n    echo Traitement du fichier: %%~ni\n\tset \/a processed_files+=1\n    echo Traitement en cours : !processed_files! sur !total_files!\n\tset \"file=%%~ni\"\n    ogr2ogr -f GPKG -skipfailures -append -update -where \"OGR_GEOMETRY='LINESTRING' or OGR_GEOMETRY='MULTILINESTRING'\" -oo RETURN_PRIMITIVES=ON -oo RETURN_LINKAGES=ON -oo LNAM_REFS=ON -mapFieldType StringList=String,IntegerList=String \"%output_geopackage%\" \"%%i\"\n    ogr2ogr -f GPKG -skipfailures -append -update \"%output_geopackage%\" \"%%i\" \"DSID\"\n\togr2ogr -f GPKG -skipfailures -append -update \"%output_geopackage%\" \"%%i\" \"C_AGGR\"\n\tpython c:\/testgpkgV3\/update_geopackage_dsid_V3.py \"%output_geopackage%\" \"!file!\" \n)\necho Import termin\u00e9. Ajout de posacc et quapos.\npython c:\/testgpkgV3\/add_posacc_quapos_to_linesV3.py \"%output_geopackage%\"\necho Traitement termin\u00e9.\npause\n<\/code><\/pre>\n\n\n\n<p><\/div><\/div>\n\n\n\n<p>Pour l&rsquo;ex\u00e9cuter, ouvrez un fen\u00eatre OSGeo4W Shell, allez dans le r\u00e9pertoire contenant les fichiers .bat et rentrez la commande:<\/p>\n\n\n\n<p><strong><em>.\\mass_load_s57_lines_V3.bat    r\u00e9pertoire_fichiers_000<\/em><\/strong> <strong><em>chemin\/pointsENC.gpkg<\/em><\/strong><\/p>\n\n\n\n<p>Au pr\u00e9alable, \u00e9ditez le fichier pour modifier les lignes:<\/p>\n\n\n\n<p><em>python <strong>c:\/testgpkgV3\/<\/strong>update_geopackage_dsid_prp_prim.py \u00ab\u00a0%output_geopackage%\u00a0\u00bb \u00ab\u00a0!file!\u00a0\u00bb<\/em><\/p>\n\n\n\n<p>et<\/p>\n\n\n\n<p><em>python <strong>c:\/testgpkgV3\/<\/strong>add_posacc_quapos_to_linesV3.py<\/em><\/p>\n\n\n\n<p>pour rentrer les chemins que vous aurez choisis pour stocker les scripts python.<\/p>\n\n\n\n<p>Le deuxi\u00e8me script, <strong><em>add_posacc_quapos_to_linesV3.py<\/em><\/strong>, une fois termin\u00e9 le chargement de tous les fichiers S57 du r\u00e9pertoire ENC, met \u00e0 jour les valeurs de ces attributs pour chaque entit\u00e9 des tables lignes.<\/p>\n\n\n\n<div class='stb-container stb-style-download stb-caption-box'><div class='stb-caption'><div class='stb-logo'><img class='stb-logo__image' src='data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAACXBIWXMAAAsTAAALEwEAmpwYAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN\/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz\/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH\/w\/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA\/g88wAAKCRFRHgg\/P9eM4Ors7ONo62Dl8t6r8G\/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt\/qIl7gRoXgugdfeLZrIPQLUAoOnaV\/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl\/AV\/1s+X48\/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H\/LcL\/\/wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93\/+8\/\/UegJQCAZkmScQAAXkQkLlTKsz\/HCAAARKCBKrBBG\/TBGCzABhzBBdzBC\/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD\/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q\/pH5Z\/YkGWcNMw09DpFGgsV\/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY\/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4\/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L\/1U\/W36p\/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N\/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26\/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE\/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV\/MN8C3yLfLT8Nvnl+F30N\/I\/9k\/3r\/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt\/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi\/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a\/zYnKOZarnivN7cyzytuQN5zvn\/\/tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO\/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3\/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA\/0HIw6217nU1R3SPVRSj9Yr60cOxx++\/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3\/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX\/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8\/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb\/1tWeOT3dvfN6b\/fF9\/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR\/cGhYPP\/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF\/6i\/suuFxYvfvjV69fO0ZjRoZfyl5O\/bXyl\/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o\/2j5sfVT0Kf7kxmTk\/8EA5jz\/GMzLdsAAAAgY0hSTQAAeiUAAICDAAD5\/wAAgOkAAHUwAADqYAAAOpgAABdvkl\/FRgAADcFJREFUeNrsmnmQXNV1xn\/3Lf1eb9OzdM+qGe2DFgZFIGQIizFGBpRAgQUhmDUOqQI7qYIirtguAgHbyBUbO3FsEpcTIixMICKgsDgskYyNWGwEaLEQoA1mn+np6Z6ZXt9288d9o8E2IhKSUymXXtWrN931+vX97vnOOd93eoSUkt+FQ+N35DgO5DiQ39JhfNCbQojfeC+ia0RtC8\/zKdUclvUspVQus3hJD\/nxMfoGhwkqU3zi\/NV2NF7X+OSjD2WSDem6IJAWgKGJ2kR+fPLiNX+UrZaL45ue+XHViCbo7GijpaWVHdu3kYhH2frGTmzTQAiB5\/u4fvAba\/mgAmUczS4IIfA9j+pUIbpo4bwerLozS1b6FLtjwfJP\/sU3WnNTtVix7JgEAUnLcNPJSAlqw6X+\/W\/0nHrGa8ItbRkZHNjpNjVVP2jzjjoih3VIKE5MGF2zu1bH5yy9WrZ0n5N1zMzOgTFGXxrAK1XA80FK8APwPAuBZdrRxpbGhiWL5i6+qi0psk0L9m1u0ksP\/PzFF5+ORdu8j7ypHxSmD6eWR6nmsmJZz6KTV11y+z6v8Q\/2lURd\/0gOr1gEASBACAUiEBAEClQQQAB4EnyJmUgxb14ny+emJhdEhp7a9Oj6r7z82vbdlqGjadoRUeuIgFimQaXqcO6qVZfPP++P7970zviCvXv2EggDYgkQEiRhFMK\/gzAivgShhfVFqKsPeGDE6jj1lKV8+pTY3lf+\/e9v+4+NTz1sGTpSSpxjDUQHIgL90muuvTl65pV3\/dvz22Pl0QHwqmqBdh1omtp1yftASBUFCUgdhD4DBB00AzQbtCQdJ53IFy9bUHln\/V\/f\/t17f\/BtobbgsIAcdvnVBNql11x7q7HqhrXrt\/bFyq4Ltg1GBHwPnKpa7K9uSUgzDTQLTAuMXzvNOMQbobmTgckodzyvRRfe9J27P3\/TDV8QR7K+w71x1YWrr01ccMOdD768z3Q8D+oaIJoEwwRdA68CgaeiIlA5IoR6rZkKsG6BFlGgtBBErAHqZ0FmNjS3MZ6rcMcjA+aCq+6647I1l15\/TIEsnNu1fPEVf\/61B7b2216tBpapAMTqwIqCpgMBuI56pBAc5JcIgei2AqJH1GnGQhDt0NQJdRnFX1Ekv38\/X3\/kHfvsz962dkn33BXHBIita6k1N976lScOVNvL+TxYEbU4ISBiQaIhBKNB4IAMFO\/F+2hlRn6VVmZ0BkS6E1Jp0CRUJ6A4BrLE8N5e1m+tNt\/wl3d+LaJRd9RAzr\/o4iv3pntW7enPqcV6rtps3QijkoREWi2QAHxXRUDTFRjdACMKhq0iEYlCvAEa2iHTCXXNoAmoFmBqFKbyUKtCRPCL7ft5W19yzqcvv\/yqowLSEDXTs89aff2W\/ZMRKXTQTdUXPE+BMUy104l6RQ3DVGCmaRcJIxCJQTSuSnS8HhrboLkTUs1qBZVxmByFYgGcmqp8AgLf55lt2Uj32Zdc15CwMkcMZLr4nnb2OasGY3NOGslOQuCD1ELa6ApMEIBpQiwO9RlIpsE01FlzYXAA+nphYBgGRqEqoKkDWmere5FQzYcg8uBUQPozC9AE\/UN5ekVHz2lnnPVJAP0QUsY4hPpAB635hGXn7iiaUemEVPJDBaELRR3fn8kBTVfn2ADs3UU608Q5n+gJfq+7q2hEkuweLie39DliXxHIpBSdSuMwOQKlvIoE8mDFRqrK51Wr7B4OYiuWnf4p45n\/3uBJ6R+R1upsb+5KdC1ZPjRUUHmhh7yXngLkS1V28VUuWLb68vwEl328x7vzxst3z25t3O041UKlUsZz\/fqi0Jf+8w5v0Xef7dXdhAVuXtHJdZQqQMxEIwjRiIDBbJFgVueSlkx9+0C20HdEQKxEalb\/hN+RHehXOy+tsGfoICKqZ7ieAumbIAX09XLN6tO9H9y8ZrOpadt937ftaMw2IlHGstmRYGL8vS+ubBwW1eCcbz28UyedVJ9HqggRyhv5vqjogqHcBOX5mXnp1vZ5hwKiHQpdqr5pbtUVLf5oPxRzMDEGk+NQmoRqRckOEYHAAC+AwX46jTJ3XX3udsvQt2u6niyVy9ozzz777qZNmw7ohqEnG9PJ4aHc63+2IrVzaaMLY7kwp3QwNBVhXczQiwC0AK84RWDVZ1pa2+dHxBHI+PbWNM2tbe0emqBcBGmDqIKhQyXs0tN9wTRVjozkuOSiE91ZDfFfOq5re57v33LLLU+88MILL0spWbly5elr1679w3hdg21r3q4LTuk4cdejbxs0N4AIVbEfyn4pFX0DBwIXfJeJsosVT2Yy6frDr1rxRBzTsut8N1C77fvqwbUa1EpQmlDRKYxCIQfj41Aq0t3ZUiqWSmXTjMQefvjhnevWrXs+lUpN1tXVTT700EPPb968eXdbW2scoU0snF0\/RSwOEQNMoapV4IDngF8BWQXpKpCapOh4eGh2Ll84fCD7DvQKTdc06fvKR\/jB+67Tpw+uD46jzkBD001ZLleo1WpaLpcrtbe312zbJpFI0N3d7dRqtXIsFtNsOyo14fqYDkQkmBI0XxUS6QAuCB90qShnGkhdBylFzUMcNrUcX0rfccqGJpTkkHJGemtGqJ1CEWjaYCchoTFWFvHAd+yR0dHKeeedd1JbW9uSe++9902AtWvXLlq2bNlix3EqqWQyvufA1iQTg+CmVNWLWWCb4QZ5SiH4QWjGfBJxG6EJT36Axv7QqpUdHc4m53gqH9BVH9EjKi+08KqHeWInIGPz3N5y5PpPRU7Ij2RfyLS2NS6PRP5kzZo1L5umycqVK0+fNWtWKvC93JSr9Tz3zphFRwvogXKMEUt9l9BnzJgbVsaKT6o+xlilWDhiz54bG+1tCGp5YnUNyECp14NSPIzK9NWwYXYLL40GbHyPkz8zp360f3jorVRjuu6mz33uoqhtS8dxKp7r5QzT6P76gz9esW2kBMuWQtVRKsBH5YOuK2GqaYoJToDWbBExKpPZ4cHeI9ZaTnmqvz1lDqcbGkGG0RBm6BX1UAFbilbJDDTPIuhcxB0bJuwf7qhd0JhuPNOUTiQ3MlgcHx0q6tI1y7XaGV\/6\/mMX3rPuKZtUQjWKmAmJKMQjilo6qslqEiwDYhFaZ6exykO92YH+A0cckYGBwV53vO\/t1ubuxWO5ogq5mAagK2MUTUB9M6RnQTQFEgo5nb\/63jZ7Q2dwxkUrO09ePDc9JUSZ7W\/9PLlhy87ortGqoHOhyoH8BNQnFQBfU0VEhtJfovIDQUeTRXTXuwdGsvm+IwZS8ynk3nvzxRNWrLz4l\/uyGlKbAWPYEK1TIJo6lCdxfZgcA6+Al4rxyr4R8crubTFMPQZVqGYhakDnQtX0KhOQL4Q6TVUmNA1cpXzRNZAawogwP1IJ9r7005\/VoPCRZPxrL2\/ZPD9e3d+STs8oXyOqLG6qBdIdSsK7nuopuUHIj4BbhXQjzOmCznaY1QlzFkBjE1QKKieEptTuVBEcX\/UqXSg6aeHgQkpaMnHmTR048PqLWzZ\/ZD8ykM3vGN31kyc\/fupcVal0G2IpaGiFTDskGxQd8iOQG4CJUaiVlX5ya0oMTjdTNyynTlndE4T0qVSgWFHPCQK1Iss46P1PazYZfOaxJ\/vzk9uPxiF6Gzc8eP\/HMvnd3Yvngx6HhhbIdCiX53gKxNgAFLJQKYemy1eJ7PsKgOMoCaJHVJXzQ60WhHlQqkDFC1\/Lg1ZhTlcjHxt\/8+3HfvTAOlUBjsLqFqbKuzd876v33Hh+V7W+eyEkmpX78zzIj4aRGINqWe289FUTDRuZUsdeOFExwl4B+E44hfTU\/aUK1EJL4AVEklGuaqe28W\/vvGeiWtt9LKYozitbt23c+8R37rvtmh6sTBNM1WAiC+NDSmvVyqoKSVfJjMBXC\/RcpZ2kFyqD0AIYlhoxShlqudDflGpQdiBicV1PM333ffNffvHG9scA51gAkUDuX++779vu0\/c8\/uUL01jOJAz0qSpVK4W764bRCDVT4M6o1yCcFwotVAiWUtL4KipuTUWl4iEcwRXL2ok+\/v3HHvnRA9+SMMYhZMlHGtBVXH\/v3bf\/zZfEk199\/NbzEtiiCoUC+LUQxPTi3VAnTQPxQqc3PXHUFb0MWzU9gSoCpRJmNMpnlreTefIf\/3PdPd\/4ctn19x3zafxB56iLhdf96Q1f6Dr3s9fev3nQ2rOnN1SqMxPSg5NGjbBHmBCJKAOl6+Ec21dj1kACJm1dHVxxctrJPvVP6x754f3frAVyzyEpcjRD7F8bsrSevvKUSy+6\/ubP7yy1LX7u1XdFLptH+o7a5Wm3p2nKHkdCA2boytKGQIUOdQmbMxa00+Pvf+sn6\/\/uH159bdtGCUMfRqdjBWQaTCwZs5atueLKqzM9564+UE51vjNQ1AayExSKJXw3rJZ6CMSyIGqjxywa6uK0ZOLMr9OCzlp\/X\/61p\/\/rqUceWj9RcbYD5f8tJ44lkPcfdS2NqeW\/f9bZq1KzFp0aa1t0QlHEmkfKwnb1mAg0E2maGKaGqbmyJSarca+QLR3Y8XZh385XX\/nZT58dKUy+Dkwd9o9lvyUgB38LMgWts7s6FiTqG+fokVhbfWM6bVh2DCEInGo5n8uO+dXS0FQ+9957fUN7XBg+nNL6fw3k16lnAaErI9TmOEDtcMrpMQFy\/B8GjgM5DuQ4kP+3x\/8MAHWpUzAU7qJ7AAAAAElFTkSuQmCC' alt='img'\/><\/div><div class='stb-caption-content'>add_posacc_quapos_to_linesV3.py<\/div><div class='stb-tool'><\/div><\/div><div class='stb-content'><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import sys\nfrom osgeo import ogr\n\ndef add_posacc_quapos_to_linesV3 (geopackage_path):\n\n    # Liste des tables \u00e0 exclure\n    tables_exclues = &#091;\"Edge\", \"ConnectedNode\",\"DSID\",\"C_AGGR\",\"C_ASSO\",\"Edge\",\"FACE\"]  # Ajoutez les noms des tables que vous souhaitez exclure\n\n    # Ouvrir le GeoPackage\n    driver = ogr.GetDriverByName(\"GPKG\")\n    geopackage = driver.Open(geopackage_path, 1)\n\n    # R\u00e9cup\u00e9rer la table Edge\n    isolated_node_table = geopackage.GetLayerByName(\"Edge\")\n\n    # Parcourir toutes les tables du GeoPackage\n    for i in range(geopackage.GetLayerCount()):\n        table = geopackage.GetLayerByIndex(i)\n        table_name = table.GetName()\n        \n        # V\u00e9rifier si la table n'est pas dans la liste des tables exclues et si elle n'est pas Edge\n        if table_name not in tables_exclues and table_name != \"Edge\":\n            print(f\"Traitement table {table.name()}\")\n            # R\u00e9cup\u00e9rer les noms des champs des tables\n            table_defn = table.GetLayerDefn()\n            field_names = &#091;table_defn.GetFieldDefn(j).GetName() for j in range(table_defn.GetFieldCount())]\n            \n            # Index des champs rcid et enc_chart dans la table Edge\n            isolated_node_defn = isolated_node_table.GetLayerDefn()\n            rcid_index_isolated_node = isolated_node_defn.GetFieldIndex(\"RCID\")\n            enc_chart_index_isolated_node = isolated_node_defn.GetFieldIndex(\"enc_chart\")\n            \n            # Parcourir les enregistrements de la table\n            table.ResetReading()\n            for feature in table:\n                rcid_full = feature.GetField(\"NAME_RCID\")\n                rcid = rcid_full.split(\":\")&#091;1]\n                rcid = rcid&#091;:-1]\n                enc_chart = feature.GetField(\"enc_chart\")\n                \n                # Rechercher le rcid et enc_chart dans la table Edge\n                isolated_node_table.SetAttributeFilter(\"RCID = '{}' AND enc_chart = '{}'\".format(rcid, enc_chart))\n                isolated_node_feature = isolated_node_table.GetNextFeature()\n                \n                if isolated_node_feature:\n                    # Mettre \u00e0 jour les attributs POSACC et QUAPOS de la table en cours avec ceux d'Edge\n                    posacc_index = table_defn.GetFieldIndex(\"POSACC\")\n                    quapos_index = table_defn.GetFieldIndex(\"QUAPOS\")\n                    if posacc_index &gt;= 0:\n                        posacc = isolated_node_feature.GetField(\"POSACC\")\n                        feature.SetField(posacc_index, posacc)\n                    if quapos_index &gt;= 0:\n                        quapos = isolated_node_feature.GetField(\"QUAPOS\")\n                        feature.SetField(quapos_index, quapos)\n                        \n                    \n                    # Sauvegarder les modifications\n                    table.SetFeature(feature)\n\n    # Fermer le GeoPackage\n    geopackage = None\n    \n\nif __name__ == \"__main__\":\n    if len(sys.argv) != 2:\n        print(\"Usage: python script.py geopackage_path \")\n        sys.exit(1)\n    \n    geopackage_path = sys.argv&#091;1]\n    \n\n    add_posacc_quapos_to_linesV3 (geopackage_path)\n<\/code><\/pre>\n\n\n\n<p><\/div><\/div>\n\n\n\n<p>Dans le cas des tables de type point, le lien entre le <strong><em>NAME_RCID <\/em><\/strong>des tables et le <strong><em>RCID <\/em><\/strong>de la table <strong><em>IsolatedNode <\/em><\/strong>ne pose pas de question. Par contre dans le cas des polylignes, pour une entit\u00e9 g\u00e9ographique, la liste des polylignes concerne plusieurs entit\u00e9s de la couche <strong><em>Edge<\/em><\/strong>. Nous nous sommes pos\u00e9 la question de savoir si pour une entit\u00e9 , par exemple de DEPCNT, il \u00e9tait possible que les polylignes qui la composent aient diff\u00e9rentes valeurs de QUAPOS. <\/p>\n\n\n\n<p>Nous avons effectu\u00e9 le test sur une base contenant 650 cartes ENC \u00e0 toutes les \u00e9chelles. La couche DEPCNT contenait 162 585 entit\u00e9s. Seules 38 731 avaient dans la liste des NAME_RCID des RCID de la table Edges avec une valeur non nulle de QUAPOS. Nous avons trouv\u00e9 193 entit\u00e9s de DEPCNT qui avaient des valeurs diff\u00e9rentes de QUAPOS dans leur liste de NAME_RCID. Etant donn\u00e9 que cela repr\u00e9sente 0,1% nous avons d\u00e9cid\u00e9 de ne pas prendre en compte cette possibilit\u00e9, car la complexit\u00e9 de d\u00e9construction des polylignes est extr\u00eame.<br>Il s&rsquo;av\u00e8re que la table Edge r\u00e9sultante du driver ogr2ogr ne pose pas de probl\u00e8me au niveau des attributs (la jointure entre NAME_RCID et RCID est bonne) mais que les g\u00e9om\u00e9tries de la table comportent presque la moiti\u00e9 de g\u00e9om\u00e9tries non valides (des lignes avec un seul point ou des g\u00e9om\u00e9tries nulles). Pourtant les polylignes des entit\u00e9s S57 n&rsquo;ont aucune erreur.<\/p>\n\n\n\n<p>Il faudrait donc, r\u00e9parer et reconstruire toutes les g\u00e9om\u00e9tries de Edge pour pouvoir d\u00e9construire les g\u00e9om\u00e9tries de DEPCNT pour ne pas avoir de QUAPOS diff\u00e9rents dans aucun cas.<\/p>\n\n\n\n<p>Dans l&rsquo;exemple suivant nous avons charg\u00e9 7 cartes ENC dans le geopackage d&rsquo;import linesENC.gpkg<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"640\" height=\"336\" data-attachment-id=\"12765\" data-permalink=\"https:\/\/www.sigterritoires.fr\/index.php\/cartes-enc-geopackage-dans-qgis-version-finale-premiere-partie\/aert5\/\" data-orig-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?fit=3734%2C1957&amp;ssl=1\" data-orig-size=\"3734,1957\" 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=\"aert5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?fit=640%2C336&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?resize=640%2C336&#038;ssl=1\" alt=\"\" class=\"wp-image-12765\" srcset=\"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?resize=1024%2C537&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?resize=300%2C157&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?resize=768%2C403&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?resize=1536%2C805&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?resize=2048%2C1073&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?w=1280&amp;ssl=1 1280w, https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?w=1920&amp;ssl=1 1920w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><\/figure>\n\n\n\n<p>Vous pouvez constater que les tables du geopackage contiennent les attributs POSACC et QUAPOS et que le dernier script a bien renseign\u00e9 les valeurs correspondantes de ces champs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Import des couches \u00ab&nbsp;polygones&nbsp;\u00bb<\/h2>\n\n\n\n<p>M\u00eame si le format S57 pr\u00e9voit la possibilit\u00e9 d&rsquo;avoir des polygones en tant que primitives, cette option n&rsquo;est pas utilis\u00e9e. Il n&rsquo;est donc pas n\u00e9cessaire de modifier l&rsquo;import des donn\u00e9es de type polygone. Les primitives (Face) sont demand\u00e9es dans la ligne de commande ogr2ogr, les champs POSACC et QUAPOS sont bien ajout\u00e9s aux tables, pour un \u00e9ventuelle utilisation ult\u00e9rieure, mais il n&rsquo;est pas n\u00e9cessaire d&rsquo;ajouter un script pour remplir les valeurs.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Clonage et\/ou ajout des tables import\u00e9es dans le geopackage ENC<\/h2>\n\n\n\n<p>Dans le cas du premier chargement S57, le script Python suivant cr\u00e9\u00e9 toutes les tables pr\u00e9sentes dans les trois geopackages d\u2019import. Pour les chargements ult\u00e9rieurs, si la table existe d\u00e9j\u00e0 dans le geopackage ENC, les enregistrements de la table du geopackage d\u2019import sont ajout\u00e9s aux enregistrements d\u00e9j\u00e0 pr\u00e9sents dans ENC. Si, par contre, la table n\u2019existe pas encore, elle est cr\u00e9\u00e9e et aliment\u00e9e par les enregistrements du geopackage d\u2019import. Dans le fichier geopackage ENC les tables sont pr\u00e9fix\u00e9es par pt_, li_ et pl_ pour indiquer leur type de g\u00e9om\u00e9trie.<\/p>\n\n\n\n<p>Par rapport \u00e0 la V2 les modifications apport\u00e9es au script sont les suivantes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Renseignement du <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/introduction-aux-systemes-de-reference\/\">SRC<\/a> des tables du geopackage lors de la cr\u00e9ation. Le code <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/epsg-4326-vs-3857\/\">EPSG:4326<\/a> est affect\u00e9 aux g\u00e9om\u00e9tries.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code><em># Cr\u00e9er une nouvelle couche de destination si elle n'existe pas\n                        output_srs = osr.SpatialReference()\n                        output_srs.ImportFromEPSG(4326)  # D\u00e9finir EPSG 4326\n                        output_table = output_gpkg.CreateLayer(output_table_name, geom_type=input_table.GetGeomType(), options=&#091;\"OVERWRITE=YES\"], srs=output_srs)<\/em>\n<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>For\u00e7age de la cr\u00e9ation de l&rsquo;index spatial sur toutes les tables du geopackage<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code><em># Cr\u00e9er l'index spatial\n                    output_gpkg.ExecuteSQL(f\"CREATE SPATIAL INDEX ON {output_table_name}\")<\/em><\/code><\/pre>\n\n\n\n<p>Le clonage est r\u00e9alis\u00e9 avec le code python : <a href=\"https:\/\/www.nasca.ovh\/downloads\/clone_or_append_tables_with_prefixV3.py\" title=\"clone_or_append_tables_with_prefixV3.py\">clone_or_append_tables_with_prefixV3.py<\/a><br>Veillez \u00e0 modifier la ligne qui indique les noms des geopackages que vous avez cr\u00e9\u00e9s avec les fichiers .bat pr\u00e9c\u00e9dents :<\/p>\n\n\n\n<p><strong><em>input_geopackages = [\u00ab&nbsp;c:\/testgpkg\/pointsENC.gpkg&nbsp;\u00bb, \u00ab&nbsp;c:\/testgpkg\/LinesENC.gpkg&nbsp;\u00bb, \u00ab&nbsp;c:\/testgpkg\/PolysENC.gpkg&nbsp;\u00bb]<\/em><\/strong><\/p>\n\n\n\n<p>avec les geopackages d\u2019import que vous avez choisi, ainsi que la ligne<\/p>\n\n\n\n<p><strong><em>output_gpkg = ogr.Open(\u00ab&nbsp;c:\/testgpkg\/ENC.gpkg&nbsp;\u00bb, 1)<\/em><\/strong><\/p>\n\n\n\n<p>avec le geopackage de base de donn\u00e9es que vous aurez cr\u00e9\u00e9 en suivant les indications de l&rsquo;article  <a href=\"https:\/\/www.sigterritoires.fr\/index.php\/creation-dune-base-de-donnees-geopackage-pour-les-cartes-enc-1ere-partie-constituer-la-base-de-donnees\/\" title=\"Cr\u00e9ation d\u2019une base de donn\u00e9es Geopackage pour les cartes ENC (1\u00e8re partie: constituer la base de donn\u00e9es)\">Cr\u00e9ation d\u2019une base de donn\u00e9es Geopackage pour les cartes ENC (1\u00e8re partie: constituer la base de donn\u00e9es)<\/a>.<\/p>\n\n\n\n<p>Une fois ce script ex\u00e9cut\u00e9, vous avez votre base de donn\u00e9es \u00e0 jour des nouveaux fichiers S57.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Mise \u00e0 jour d&rsquo;une base geopackage V1 ou V2 vers la version 3<\/h2>\n\n\n\n<p>La proc\u00e9dure que nous venons de d\u00e9crire permet de cr\u00e9er une nouvelle base de donn\u00e9es geopackage. Mais si vous avez d\u00e9j\u00e0 une base qui a \u00e9t\u00e9 cr\u00e9\u00e9e il n&rsquo;est pas n\u00e9cessaire de refaire tout le travail. Nous vous donnons ici la proc\u00e9dure et les outils n\u00e9cessaires pour mettre \u00e0 jour sa structure (POSAC et QUAPOSQ) et de renseigner les valeurs de ces attributs pour les tables d\u00e9j\u00e0 existantes.<\/p>\n\n\n\n<p><a href=\"https:\/\/www.nasca.ovh\/downloads\/upgradeV3.7z\" title=\"\">T\u00e9l\u00e9chargez les fichiers pour la proc\u00e9dure ici.<\/a><\/p>\n\n\n\n<p>Les diff\u00e9rentes \u00e9tapes de cet \u00ab\u00a0upgrade\u00a0\u00bb sont:<\/p>\n\n\n\n<p>1- A partir d&rsquo;un r\u00e9pertoire contenant tous les fichiers .000 qui ont d\u00e9j\u00e0 \u00e9t\u00e9 charg\u00e9s dans la base, ex\u00e9cution d&rsquo;un fichier.bat , <strong><em>upgrade_V2_to_V3.ba<\/em><\/strong>t, qui cr\u00e9e un geopackage <strong><em>update.gpkg<\/em><\/strong> contenant les primitives (IsolatedNode, ConnectedNode,Edge) des fichiers S57.<\/p>\n\n\n\n<p><strong><em>.\\ upgrade_V2_to_V3.ba    r\u00e9pertoire_fichiers_000<\/em><\/strong> <strong><em>chemin\/update.gpkg<\/em><\/strong><\/p>\n\n\n\n<p>2- Dans la console Python de QGis, ex\u00e9cution du script <strong><em>append_tables_upgrade.py<\/em><\/strong>. Veillez \u00e0 modifier le chemin pour le fichier update.gpkg<\/p>\n\n\n\n<p>input_geopackages = [\u00ab\u00a0<strong><em>c:\/testgpkgV2\/update.gpkg<\/em><\/strong>\u00ab\u00a0]<\/p>\n\n\n\n<p>et pour votre base de donn\u00e9es ENC<\/p>\n\n\n\n<p>output_gpkg = ogr.Open(\u00ab\u00a0<em><strong>c:\/enc_db\/ENC4.gpkg<\/strong><\/em>\u00ab\u00a0, 1)<\/p>\n\n\n\n<p>Ce script ajoute les primitives \u00e0 la base de donn\u00e9es existante.<\/p>\n\n\n\n<p>3- Dans la console Python de QGis, ex\u00e9cution du script <strong><em>add_fields_upgrade.py<\/em><\/strong>. Veillez \u00e0 modifier le chemin pour le fichier .gpkg de votre base de donn\u00e9es<\/p>\n\n\n\n<p>geopackage = ogr.Open(\u00ab\u00a0<strong><em>c:\/enc_db\/ENC4.gpkg<\/em><\/strong>\u00ab\u00a0, 1)<\/p>\n\n\n\n<p>Ce script cr\u00e9e les attributs POSACC et QUAPOS dans toutes les tables de la base de donn\u00e9es.<\/p>\n\n\n\n<p>4-Dans la console Python de QGis, ex\u00e9cution du script <strong><em>add_posacc_quapos_upgrade_points.py<\/em><\/strong>. Veillez \u00e0 modifier le chemin pour le fichier .gpkg de votre base de donn\u00e9es et \u00e0 ajouter des tables \u00e0 exclure si vous en avez cr\u00e9\u00e9 d&rsquo;autres tables dans la base de donn\u00e9es.<\/p>\n\n\n\n<p><strong><em>#Chemin vers le GeoPackage<br>geopackage_path = \u00ab\u00a0c:\/enc_db\/ENC4.gpkg\u00a0\u00bb<br>#Liste des tables \u00e0 exclure<br>tables_exclues = [\u00ab\u00a0IsolatedNode\u00a0\u00bb, \u00ab\u00a0ConnectedNode\u00a0\u00bb,\u00a0\u00bbDSID\u00a0\u00bb,\u00a0\u00bbC_AGGR\u00a0\u00bb,\u00a0\u00bbC_ASSO\u00a0\u00bb,\u00a0\u00bblayer_styles\u00a0\u00bb] # Ajoutez les noms des tables que vous souhaitez exclure<\/em><\/strong><\/p>\n\n\n\n<p>Ce script va renseigner les champs POSACC et QUAPOS dans toutes les tables de type Point avec les valeurs contenues dans la primitive IsolatedNode.<\/p>\n\n\n\n<p>5-Dans la console Python de QGis, ex\u00e9cution du script <strong><em>add_posacc_quapos_upgrade_lines.py<\/em><\/strong>. Veillez \u00e0 modifier le chemin pour le fichier .gpkg de votre base de donn\u00e9es et \u00e0 ajouter des tables \u00e0 exclure si vous en avez cr\u00e9\u00e9 d&rsquo;autres tables dans la base de donn\u00e9es.<\/p>\n\n\n\n<p><strong><em>#Chemin vers le GeoPackage<br>geopackage_path = \u00ab\u00a0c:\/enc_db\/ENC4.gpkg\u00a0\u00bb<br>#Liste des tables \u00e0 exclure<br>tables_exclues = [\u00ab\u00a0IsolatedNode\u00a0\u00bb, \u00ab\u00a0ConnectedNode\u00a0\u00bb,\u00a0\u00bbDSID\u00a0\u00bb,\u00a0\u00bbC_AGGR\u00a0\u00bb,\u00a0\u00bbC_ASSO\u00a0\u00bb,\u00a0\u00bblayer_styles\u00a0\u00bb] # Ajoutez les noms des tables que vous souhaitez exclure<\/em><\/strong><\/p>\n\n\n\n<p>Ce script va renseigner les champs POSACC et QUAPOS dans toutes les tables de type Ligne avec les valeurs contenues dans la primitive Edge.<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le projet d&rsquo;int\u00e9grations des cartes ENC dans QGis sous la forme de Geopackage est maintenant termin\u00e9e. Cet article compl\u00e8te les deux articles d\u00e9j\u00e0 publi\u00e9s concernant la mise en place et la gestion de la base de&hellip;<\/p>\n","protected":false},"author":1,"featured_media":12765,"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_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":"","jetpack_post_was_ever_published":false},"categories":[62],"tags":[58,85,41,192],"class_list":["post-12754","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-qgis-2","tag-qgis","tag-s57","tag-svg","tag-symbologie"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.sigterritoires.fr\/wp-content\/uploads\/2024\/04\/aert5.png?fit=3734%2C1957&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/p6XU0A-3jI","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/12754","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=12754"}],"version-history":[{"count":0,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/posts\/12754\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media\/12765"}],"wp:attachment":[{"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/media?parent=12754"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/categories?post=12754"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sigterritoires.fr\/index.php\/wp-json\/wp\/v2\/tags?post=12754"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}