banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Fri 08 December 2017 11:21

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Import des données IGN au format Posgres

Bonjour,

Je me suis demandé récemment comment importer les données téléchargeables sur le site de l'IGN, au format Postgres.
N'ayant pas réussi du premier coup, je vous partage ma solution, qui n'est pas nécessairement la meilleure. Je suis donc ouvert à toute remarque/critique constructive.

Contexte : Les fichiers téléchargés contiennent la création de la table, de l'index géographique, puis une copie brute des données.

Principaux problèmes rencontrés :
1- comment importer les données (ne fonctionne pas si vous ouvrez le fichier sous pgAdmin par exemple) ?
2- comment préciser le schéma dans lequel importer les données ?
3- comment importer plusieurs fichiers d'un coup ?

1- Importer les données
Les fichiers doivent être importés via la commande psql, en précisant le fichier postgreSQL de l'IGN comme fichier de commande.
Exemple de commande :

Code:

psql -h nom_serveur -p port -U utilisateur -d base_de_donnees -f BATI_REMARQUABLE.sql

En prenant soin de donner les bonnes valeurs aux paramètres nom_serveur, port, utilisateur et base_de_donnees.


2- Préciser le schéma
3- importer plusieurs fichiers d'un coup

Pour pouvoir préciser le schéma et importer plusieurs fichiers d'un coup, j'ai créé un fichier import.sql dans lequel je précise le schéma et les fichiers à importer :

Code:

set search_path to bdtopo, public ;

\i BATI_REMARQUABLE.sql
\i BATI_INDUSTRIEL.sql
\i BATI_INDIFFERENCIE.sql

La commande set search_path to permet de préciser l’ordre dans lequel postgres doit chercher les noms de tables (ou dans notre cas l’ordre dans quel schéma il doit créer une table).
La commande \i est une commande pour psql.exe qui lui précise d’exécuter les commandes SQL depuis un fichier, précisé à la suite de la commande.

Il suffit alors de lancer la commande psql précédente, en précisant le fichier import.sql au lieu du fichier SQL de l'IGN.

En espérant que ça puisse servir à d'autres !

Hors ligne

 

#2 Sat 09 December 2017 15:54

MathieuB
Membre du bureau
Lieu: Montpellier
Date d'inscription: 18 Jan 2006
Messages: 1229
Site web

Re: Import des données IGN au format Posgres

Bonjour et merci pour le partage.


Mathieu BOSSAERT
Association GeoRezo

Hors ligne

 

#3 Mon 11 December 2017 09:32

fbecir
Participant assidu
Lieu: Saint-Mandé
Date d'inscription: 16 Sep 2008
Messages: 516

Re: Import des données IGN au format Posgres

Bonjour

Merci, c'est effectivement la bonne méthode pour importer les données.
Merci aussi de nous alerter que ce format n'est pas bien documenté ... une doc (ou un tuto) sera rédigée dès que possible.

Cordialement

Hors ligne

 

#4 Mon 11 December 2017 11:04

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: Import des données IGN au format Posgres

fbecir a écrit:

Bonjour

Merci, c'est effectivement la bonne méthode pour importer les données.
Merci aussi de nous alerter que ce format n'est pas bien documenté ... une doc (ou un tuto) sera rédigée dès que possible.

Cordialement


Merci pour ce retour, qui atteste que vous êtes conscients de ce manque d'infos.
N'hésitez pas à envoyer une première version à relire de la doc/du tuto, si vous souhaitez un retour d'un "œil nouveau" sur le sujet.

Hors ligne

 

#5 Tue 12 December 2017 08:01

Charly BUFFET
Juste Inscrit !
Date d'inscription: 8 Mar 2016
Messages: 1

Re: Import des données IGN au format Posgres

Bonjour,

N'hésitez pas à envoyer une première version à relire de la doc/du tuto, si vous souhaitez un retour d'un "œil nouveau" sur le sujet.


Une version beta pour un grand bêta comme moi permettrait effectivement d'apprécier l'efficience du tutoriel ;-)

Hors ligne

 

#6 Thu 11 January 2018 16:00

gwen.petit
Participant occasionnel
Lieu: Vannes
Date d'inscription: 7 Jul 2006
Messages: 33

Re: Import des données IGN au format Posgres

Bonjour et merci pour votre tuto qui est très utile.

J'aurai quelques questions :

- Je souhaiterai mettre dans une seule et même table des couches provenant de différents départements (afin de faire une table nationale par couche de la BD Topo). Avez-vous déjà eu à faire à ce genre de traitement ? Pensez-vous que votre script puisse être adapté en conséquence sachant que le premier import dois bien créer la table, mais les suivants doivent "juste" alimenter la table déjà créée.

- Je pense ne pas avoir compris l'intérêt de "bdtopo" et "public" dans votre instruction "set search_path to bdtopo, public ;". Est-ce que ici "bdtopo" est le nom d'un schéma dans lequel nous souhaiterions prioritairement importer les données ?

- Il est probable que ma configuration de PostGreSQL/PostGIS comporte un soucis, mais lorsque je demande à importer les données dans un schéma autre que "public" (par exemple "ign"), j'ai le message d'erreur suivant dans le terminal:

Code:

psql:/home/.../SURFACE_ROUTE.sql:8: ERREUR:  la fonction addgeometrycolumn(unknown, unknown, unknown, unknown, unknown, integer) n'existe pas
LIGNE 1 : select addgeometrycolumn('','surface_route','the_geom','2154...
                 ^
ASTUCE : Aucune fonction ne correspond au nom donné et aux types d'arguments.

Alors que la fonction "addgeometrycolumn" column est bien installée avec PostGIS. Si je lance le script en spécifiant le schéma "public" comme destination alors il n'y a pas de soucis.

Merci d'avance pour votre retour.

Cordialement,

Gwendall

Hors ligne

 

#7 Thu 11 January 2018 16:33

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Import des données IGN au format Posgres

Bonjour,

Est-ce que ici "bdtopo" est le nom d'un schéma dans lequel nous souhaiterions prioritairement importer les données ?


Oui et public **doit** être présent dans le search_path sinon pgsql ne trouvera pas les fonctions postgis (conf. ton message d'erreur).

search_path liste les schémas dans lequel pgsql cherchera les donnés (tables, séquences, vues, fonctions) quand on lancera des requêtes. Par défaut, si aucun schéma n'est définie lors de l'import ou création de données, il utilisera la première de la liste.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#8 Thu 11 January 2018 16:45

gwen.petit
Participant occasionnel
Lieu: Vannes
Date d'inscription: 7 Jul 2006
Messages: 33

Re: Import des données IGN au format Posgres

Merci Yves, ça fonctionne mieux du coup ;-)

Il me reste à résoudre mon soucis de mise en base de plusieurs départements et tout fonctionnera parfaitement.

Cordialement,

Gwendall

Hors ligne

 

#9 Thu 11 January 2018 16:53

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Import des données IGN au format Posgres

Tu as un lien vers les fichiers SQL ou mieux les premières lignes : Création de la table et première ligne de l'insertion des données ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#10 Thu 11 January 2018 17:10

gwen.petit
Participant occasionnel
Lieu: Vannes
Date d'inscription: 7 Jul 2006
Messages: 33

Re: Import des données IGN au format Posgres

Oui. Il s'agit des dump postgresql de la BD Topo (licence Recherche je précise). Disons que j'ai n départements et que je souhaite assembler toutes les couches dans des tables nationales.

Si dessous un exemple avec les premières lignes du fichier "SURFACE_ROUTE.sql" sur le département 22

Code:

SET NAMES 'UTF8';
--
--
start transaction;
-- "Surface de route. Partie de la chaussée d'une route caractérisée par une largeur exceptionnelle":
--
create table SURFACE_ROUTE (gid SERIAL not null, ID varchar(24) not null, PREC_PLANI decimal(6,1) not null, PREC_ALTI decimal(7,1) not null, NATURE varchar(18) not null, Z_MOYEN float, constraint SURFACE_ROUTE_pkey primary key (gid));
select addgeometrycolumn('','surface_route','the_geom','2154','MULTIPOLYGON',3);
create index SURFACE_ROUTE_geoidx on SURFACE_ROUTE using gist (the_geom);
--
commit;
--
-- SURFACE_ROUTE
start transaction;
copy SURFACE_ROUTE (gid, ID , PREC_PLANI , PREC_ALTI , NATURE , Z_MOYEN, the_geom) from STDIN ;
1    SURFROUT0000000076599958       1.5        1.0    Parking    17.61    01060000A06A080000010...41000000E082395A41CDC
2    SURFROUT0000000076599960       1.5        1.0    Parking    10.39    01060000A06A080000010...4900F41CDCCCCEC9D395A
3    SURFROUT0000000076599957       1.5        1.0    Parking    72.34    01060000A06A080000010...2CF7395A41000000000020
...
\.
commit;
--

Étant donné que j'ai beaucoup de fichiers .sql à insérer j'essaye de trouver une méthode scriptable me permettant d'éviter l'édition de tous les fichiers pour remplacer les CREATE TABLE par des INSERT ou quelques chose du genre (sachant qu'au passage nombre de fichiers .sql sont trop gros pour être édités à la main).

Merci d'avance pour votre aide.

Cordialement,

Gwendall

Hors ligne

 

#11 Fri 12 January 2018 09:48

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3195
Site web

Re: Import des données IGN au format Posgres

Bonjour,

L'intégration de données est parfois plus complexe qu'il n'y paraît, et il est beaucoup plus facile de travailler avec SQL et des tables qu'avec des fichiers texte.

Processus d'intégration de donnée à partir d'un fichier texte:

Intégration du fichier dans une table temporaire BD postgres/postgis. Exemple : intégration du département 22 dans la table monschema.temp_bdtopo22.
On résout alors les problématiques suivantes : Encoding, caractères spéciaux, espaces ...géométries foireuses

Ensuite on travaille directement en SQL pour intégrer les différentes tables temporaires dans une table définitive.


Comme cela on sépare bien les choses, les étapes et quand une partie foire on peut l'examiner sans effet papillon (modifier une partie du code avec des effets sur des autres parties du prg).

Donc votre script vous l’exécutez pour chaque département, puis vous assemblez le tout avec une requête sql.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#12 Fri 12 January 2018 12:09

gwen.petit
Participant occasionnel
Lieu: Vannes
Date d'inscription: 7 Jul 2006
Messages: 33

Re: Import des données IGN au format Posgres

Merci Christophe,

Je pense effectivement opter pour cette piste en deux étapes.
Je reviendrai vers vous si jamais j'aboutis à quelque chose d'exploitable ;-)

Cordialement,

Gwendall

Hors ligne

 

#13 Tue 16 January 2018 11:22

fbecir
Participant assidu
Lieu: Saint-Mandé
Date d'inscription: 16 Sep 2008
Messages: 516

Re: Import des données IGN au format Posgres

Bonjour

Comme promis, un tutoriel vient d'être mis en ligne pour l'import des données dans PostgreSQL :
professionnels.ign.fr/doc/Tutoriel_impo … sql_v1.pdf

Un grand merci à Jérémie, qui nous a :
1. alerté sur le manque de documentation,
2. donné une bonne base pour rédiger le tutoriel
3. relu, corrigé et commenté le tutoriel avant publication

Cordialement

Hors ligne

 

#14 Wed 17 January 2018 09:10

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3195
Site web

Re: Import des données IGN au format Posgres

Bonjour,

C'est très bien mais une petite remarque :

Conseiller PGAdminIII oui supérieur non, tout le monde s'arrache les cheveux avec PGAdmin4 sous windows.
Perso je conseille PGadminIII de BIGSQL.


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#15 Fri 02 February 2018 08:29

BERNEDE
Juste Inscrit !
Date d'inscription: 30 Jan 2018
Messages: 1

Re: Import des données IGN au format Posgres

Merci beaucoup pour tous vos conseils !

Grâce à vous j'ai pu importer mes données sans difficultés.

Hors ligne

 

#16 Thu 22 February 2018 17:42

Theos2000
Participant assidu
Date d'inscription: 15 Jun 2015
Messages: 221

Re: Import des données IGN au format Posgres

Bonjour,

J'ai récemment acquis  les données IGN en format .sql de plusieurs départements (au moins ça marche :-) ) en vue de les importer et la je commence a être embêter :

1er j'ouvre une ligne de commande dans le dossier bin de mon postgre je suis la commande " psql  -h  nom_serveur  -p  port  -U  utilisateur  -d  base_de_donnees  -f chemin d'accés.import.sql "

Mon fichier import est situé à la racine dans le dossier ign ( 1 sous dossier par département) et se définit comme cela

set search_path to ign, public ; 

\i SURFACE_ROUTE.sql
\i AIRE_TRIAGE.sql
\i B_VOIES_FERREES_ET_AUTRES.sql
\i TRONCON_VOIE_FERREE.sql


mais il me dit qu'il ne trouve pas le fichier ou que la permission est refusée....

Ayant beau fait chauffer les quelques neurones qui me restent  je ne comprend pas pourquoi dans le tutoriel de l'IGN on alterne entre psql ou psql exe / comment doit être structuré le fichier import.sql (est ce que le i/ suffit ou il faut mettre le i/+chemin d'accés)

Si vous avez des pistes...la je suis hors piste :-)

Hors ligne

 

#17 Fri 23 February 2018 08:42

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: Import des données IGN au format Posgres

Theos2000 a écrit:

1er j'ouvre une ligne de commande dans le dossier bin de mon postgre je suis la commande " psql  -h  nom_serveur  -p  port  -U  utilisateur  -d  base_de_donnees  -f chemin d'accés.import.sql "

Mon fichier import est situé à la racine dans le dossier ign ( 1 sous dossier par département) et se définit comme cela

set search_path to ign, public ; 

\i SURFACE_ROUTE.sql
\i AIRE_TRIAGE.sql
\i B_VOIES_FERREES_ET_AUTRES.sql
\i TRONCON_VOIE_FERREE.sql


mais il me dit qu'il ne trouve pas le fichier ou que la permission est refusée....


Il faut soit
1- indiquer le chemin complet des fichiers à importer via la commande \i (chemin de ton dossier ign)
2- lancer la commande psql depuis ton dossier ign, avec tous les fichiers à importer au même niveau que ton fichier import.sql

Pour la solution 2, tu peux soit :
a- entrer le chemin complet de la commande psql (exemple : C:\"Program Files"\PostgreSQL\10\bin\psql.exe)
b- ajouter le chemin où se trouve la commande psql dans ton PATH (variable d'environnement système), comme indiqué dans les remarques du paragraphe 2.2 page 6 du document tutoriel d'import postgres dispo sur le site de l'IGN :

Remarque : Le chemin de psql.exe dépend de l’installation de PostgreSQL.
Remarque 2 : il est utile d’ajouter le chemin du dossier contenant psql.exe dans la variable d’environnement PATH pour éviter d’avoir à spécifier son chemin complet à chaque fois. Sous Windows, dans le panneau de configuration, rechercher ou ouvrir « Modifier les variables d’environnement système » puis cliquer sur le bouton Variables d’environnement, sélectionner Path et cliquer sur Modifier… Ajouter à la fin des paramètres le chemin du répertoire contenant psql.exe, en prenant garde de bien mettre un point-virgule pour le séparer du précédent répertoire.


Theos2000 a écrit:

Ayant beau fait chauffer les quelques neurones qui me restent  je ne comprend pas pourquoi dans le tutoriel de l'IGN on alterne entre psql ou psql exe


En fait le .exe est optionnel, Windows reconnaissant qu'il s'agit d'un exécutable même si .exe n'est pas précisé.

Hors ligne

 

#18 Mon 26 February 2018 06:23

Theos2000
Participant assidu
Date d'inscription: 15 Jun 2015
Messages: 221

Re: Import des données IGN au format Posgres

Merci pour ces éléments, c'est tout de suite plus compréhensible....et faisable. Peu être a intégrer dans une version 1.1 du tutoriel de l IGN. Merci

Hors ligne

 

#19 Wed 07 March 2018 16:59

Theos2000
Participant assidu
Date d'inscription: 15 Jun 2015
Messages: 221

Re: Import des données IGN au format Posgres

Bonjour,

Après de multiples tentatives et ayant suivi les remarques de p.jeremie je n'arrive pas a intégrer mes données (permission refusée). Est ce que cela est possible de m'envoyer quelques capture d'écran en MP, afin d'avoir une idée plus claire de la structure du fichier d'import.sql et de la commande a appelle du bin.

Merci

Hors ligne

 

#20 Wed 07 March 2018 17:16

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: Import des données IGN au format Posgres

Theos2000 a écrit:

Bonjour,

Après de multiples tentatives et ayant suivi les remarques de p.jeremie je n'arrive pas a intégrer mes données (permission refusée). Est ce que cela est possible de m'envoyer quelques capture d'écran en MP, afin d'avoir une idée plus claire de la structure du fichier d'import.sql et de la commande a appelle du bin.

Merci


Bonjour,

Peux-tu dans un premier temps essayer d'importer un seul fichier .sql de l'IGN ?
par exemple :

Code:

psql -h nom_serveur -p port -U utilisateur -d base_de_donnees -f BATI_REMARQUABLE.sql

Si ça ne fonctionne pas non plus, peux-tu envoyer une capture d'écran de ta console ?

Note : comme le schéma n'est pas précisé, les données seront importées dans le schéma public par défaut.

Hors ligne

 

#21 Thu 08 March 2018 03:46

Theos2000
Participant assidu
Date d'inscription: 15 Jun 2015
Messages: 221

Re: Import des données IGN au format Posgres

Cela fonctionne par ce biais et effectivement ça va dans le public mais j'imagine qu'il y a une commande pour spécifier un schéma particulier. Après au regard du nombre de fichiers c'est la commande par lot qui est vraiment intéressante.

Dernière modification par Theos2000 (Thu 08 March 2018 03:57)

Hors ligne

 

#22 Thu 08 March 2018 14:04

jmarsac
Participant assidu
Lieu: NICE
Date d'inscription: 26 Oct 2005
Messages: 572
Site web

Re: Import des données IGN au format Posgres

Bonjour,

Yves a déjà donné la solution dans son post du 11 janvier


Jean-Marie
Azimut

Hors ligne

 

#23 Thu 08 March 2018 20:49

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: Import des données IGN au format Posgres

Theos2000 a écrit:

Cela fonctionne par ce biais et effectivement ça va dans le public mais j'imagine qu'il y a une commande pour spécifier un schéma particulier. Après au regard du nombre de fichiers c'est la commande par lot qui est vraiment intéressante.


Je te conseille d'y aller petit à petit pour voir à quel moment ça ne fonctionne pas. En deux temps :
1 - Essayer l'import de plusieurs fichiers sans préciser le schéma, avec un fichier import.sql avec le contenu suivant :

Code:

\i BATI_REMARQUABLE.sql
\i BATI_INDUSTRIEL.sql
\i BATI_INDIFFERENCIE.sql

Et lancer la commande suivante :

Code:

psql -h nom_serveur -p port -U utilisateur -d base_de_donnees -f import.sql

2- Essayer en précisant le schéma dans le fichier import.sql :

Code:

set search_path to bdtopo, public ;

\i BATI_REMARQUABLE.sql
\i BATI_INDUSTRIEL.sql
\i BATI_INDIFFERENCIE.sql

Puis la commande à lancer est la même (pour être sûr de bien suivre ce que tu fais, je te conseille de supprimer toutes les tables importées au point 1).


Une fois ces tests faits, dis-nous si ça fonctionne ou pas.
Si ce n'est pas le cas, à quel moment ça ne fonctionne pas et quel est le message d'erreur et la commande ?

Hors ligne

 

#24 Fri 09 March 2018 09:04

bianca
Participant actif
Date d'inscription: 14 Mar 2008
Messages: 60

Re: Import des données IGN au format Posgres

Bonjour à tous,

Je rencontre le problème suivant lors de mon import :

Code:

CHEF_LIEU.sql: No Such file or directory

J'ai suivi la démarche suivante :
- Test 1 : ok avec import dans le schéma public

Code:

psql -h nom_serveur -p port -U utilisateur -d base_de_donnees -f BATI_REMARQUABLE.sql

- Test 2 : ne fonctionne pas avec le message d'erreur indiqué ci-dessus :
1- paramétrage de mon fichier d'import comme suit :
- ajout du fichier dans le répertoire où se trouve mon fichier CHEF_LIEU.SQL
- dans le fichier test sans redirection de schéma :

Code:

\i CHEF_LIEU.sql

2- ligne de commande exécutée dans ma fenêtre de commande sous windows :

Code:

"C:\Program Files (x86)\pgAdmin 4\v2\runtime\psql.exe" -h ip_serveur -p mon_port -U mon_user -d ma_abse -f "X:\DONNEES\REFERENTIEL\ign\BDTOPO\BDTOPO_2-2_TOUSTHEMES_SQL_LAMB93_D022_2017-10-02\BDTOPO\1_DONNEES_LIVRAISON_2017-11-00724\BDT_2-2_SQL_LAMB93_D022-ED172\H_ADMINISTRATIF\import.sql"

Avez-vous une idée ? Je ne comprends pas pourquoi il ne trouve pas le fichier alors que ce dernier est dans le même répertoire !

Merci pour votre aide.

Cordialement.

Bianca

Hors ligne

 

#25 Fri 09 March 2018 16:13

p.jeremie
Participant assidu
Lieu: Valence
Date d'inscription: 10 Sep 2017
Messages: 427

Re: Import des données IGN au format Posgres

bianca a écrit:

Bonjour à tous,

Je rencontre le problème suivant lors de mon import :

Code:

CHEF_LIEU.sql: No Such file or directory

2- ligne de commande exécutée dans ma fenêtre de commande sous windows :

Code:

"C:\Program Files (x86)\pgAdmin 4\v2\runtime\psql.exe" -h ip_serveur -p mon_port -U mon_user -d ma_abse -f "X:\DONNEES\REFERENTIEL\ign\BDTOPO\BDTOPO_2-2_TOUSTHEMES_SQL_LAMB93_D022_2017-10-02\BDTOPO\1_DONNEES_LIVRAISON_2017-11-00724\BDT_2-2_SQL_LAMB93_D022-ED172\H_ADMINISTRATIF\import.sql"

Avez-vous une idée ? Je ne comprends pas pourquoi il ne trouve pas le fichier alors que ce dernier est dans le même répertoire !


Bonjour Bianca,

Tu lances ta commandes en précisant à la fois le chemin complet de psql.exe et celui de import.sql, j'en déduis donc qu'au moment où tu lances ta commande tu n'es pas dans le répertoire contenant import.sql (BDT_2-2_SQL_LAMB93_D022-ED172\H_ADMINISTRATIF).
Hors le \i CHEF_LIEU.sql présent dans ce fichier va chercher CHEF_LIEU.sql dans le répertoire courant.

Il faut donc que tu lances ta commande depuis le répertoire X:\DONNEES\REFERENTIEL\ign\BDTOPO\BDTOPO_2-2_TOUSTHEMES_SQL_LAMB93_D022_2017-10-02\BDTOPO\1_DONNEES_LIVRAISON_2017-11-00724\BDT_2-2_SQL_LAMB93_D022-ED172\H_ADMINISTRATIF
et ta commande sera alors :

Code:

"C:\Program Files (x86)\pgAdmin 4\v2\runtime\psql.exe" -h ip_serveur -p mon_port -U mon_user -d ma_abse -f "import.sql"

Pour simplifier encore la commande, je te conseille d'ajouter psql.exe à la variable d'environnement PATH (voir dans le guide IGN, paragraphe 2.2 page 6).

Hors ligne

 

#26 Sat 10 March 2018 21:17

Theos2000
Participant assidu
Date d'inscription: 15 Jun 2015
Messages: 221

Re: Import des données IGN au format Posgres

C'est pour moi ! En fait ce qui bloquait est que je ne lancais pas la commande dans le dossier import. Merci pour toute ces explications...et la patience !!! :-)

Hors ligne

 

#27 Mon 23 April 2018 13:10

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Import des données IGN au format Posgres

Bonjour à vous,

Je suis en train d'importer le millésime 2017 de la BD Topo dans mon serveur PG.
Je suis sur 4 départements et j'aimerais automatiser le plus possible le processus.

J'ai récupéré la liste de tous les SQL des 4 départements, et créé le fichier import.sql avec les lignes de ce type :

Code:

set search_path to manche_2017, public ;
...
\i "s:\CHEMIN\1_DONNEES_LIVRAISON_2017-11-00724\BDT_2-2_SQL_LAMB93_D050-ED172\E_BATI\TERRAIN_SPORT.sql"
...

Hors, à l’exécution de PSQL, j'obtiens le message d'erreur "No Such file or directory" pour chaque fichier SQL.

Je ne lance effectivement pas ma commande depuis le dossier des fichiers SQL, mais j'ai précisé leur chemin absolu.

Si je devais effectuer la commande depuis le dossier des SQL, il faudrait lancer 36 commandes (4 départements x 9 dossiers SQL). J'aimerais si possible éviter ça ! wink

Si quelqu'un pouvait m'aider dans ce process smile

Merci d'avance.

Sylvain M.


Sylvain M.

Hors ligne

 

#28 Mon 23 April 2018 14:23

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Import des données IGN au format Posgres

C'est bon, j'ai trouvé tout seul ! smile
Voila comment il faut écrire les chemins :

Code:

\i 'S://CHEMIN//1_DONNEES_LIVRAISON_2017-11-00724//BDT_2-2_SQL_LAMB93_D050-ED172//E_BATI//TERRAIN_SPORT.sql'

- simple quote (') et non doubles (")
- doubles slash (//) et non antislash (\)
Ça mouline !

A+


Sylvain M.

Hors ligne

 

#29 Mon 23 April 2018 15:11

Sylvain M.
Participant assidu
Lieu: Saint-Pierre-des-Nids (53)
Date d'inscription: 8 Sep 2005
Messages: 995

Re: Import des données IGN au format Posgres

C'est bon, l'importation de mes 4 départements a fonctionné sans problème (1 schéma par département).

Maintenant, comme je m'en doutais, certaines couches présentent des "doublons" d'un département à l'autre.

Comme il était demandé précédemment dans ce fil :

gwen.petit a écrit:

mettre dans une seule et même table des couches provenant de différents départements


Je pense qu'il serait souhaitable de proposer une méthode, dans le tutoriel, pour agréger sans doublons les différents départements.
A regarder de plus près, les entités en double ont la même géométrie, les mêmes attributs (notamment ID) à l'exception du champ GID.

Qu'est-ce qui vous semble le plus propre :
- Un "UNION" avec "GROUP BY" à la fin ?
- Un "UNION" avec "SELECT DISTINCT" à la suite ?

J'avais l'année dernière fait cette requête sur la base des SHP départementaux intégrés à PG :

Code:

CREATE TABLE public.admin_commune_2016 AS 
 WITH tmp as (SELECT *
 FROM manche_2016.admin_commune
 UNION
 SELECT *
 FROM calvados_2016.admin_commune
 UNION
 SELECT *
 FROM mayenne_2016.admin_commune
 UNION
 SELECT *
 FROM eure_2016.admin_commune
 UNION
 SELECT *
 FROM seine_maritime_2016.admin_commune
 UNION
 SELECT *
 FROM orne_2016.admin_commune
 UNION
 SELECT *
 FROM sarthe_2016.admin_commune)
SELECT DISTINCT id, prec_plani, nom, code_insee, statut, canton, arrondisst, 
       depart, region, popul, multican, geom from tmp
ORDER BY code_insee;

Est-ce que vous auriez plus propre / efficace ?

Dernière modification par Sylvain M. (Mon 23 April 2018 15:12)


Sylvain M.

Hors ligne

 

#30 Mon 23 April 2018 15:36

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: Import des données IGN au format Posgres

Bonjour,

Pourquoi un UNION si ce sont des doublons ?

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

Pied de page des forums

Powered by FluxBB