- Sujet précédent - Import des données IGN au format Posgres - Sujet suivant
#31 Mon 23 April 2018 16:58
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1002
Re: Import des données IGN au format Posgres
Pourquoi un UNION si ce sont des doublons ?
La majorité des données ne sont pas des doublons.
Il n'y a que les entités "frontalières" qui sont parfois en double, car présentes dans les 2 départements de livraison.
L'UNION des tables des 2 départements me semble être le préalable nécessaire : à quelle requête alternative penses-tu ?
Sylvain M.
Hors ligne
#32 Mon 23 April 2018 17:53
Re: Import des données IGN au format Posgres
Bonjour,
"UNION" élimine les doublons, la requête serait donc :
Code:
CREATE TABLE public.admin_commune_2016 AS SELECT id, prec_plani, nom, code_insee, statut, canton, arrondisst, depart, region, popul, multican, geom FROM manche_2016.admin_commune UNION SELECT id, prec_plani, nom, code_insee, statut, canton, arrondisst, depart, region, popul, multican, geom from FROM calvados_2016.admin_commune UNION SELECT id, prec_plani, nom, code_insee, statut, canton, arrondisst, depart, region, popul, multican, geom FROM mayenne_2016.admin_commune UNIONid, prec_plani, nom, code_insee, statut, canton, arrondisst, depart, region, popul, multican, geom FROM eure_2016.admin_commune UNION SELECT id, prec_plani, nom, code_insee, statut, canton, arrondisst, depart, region, popul, multican, geom FROM seine_maritime_2016.admin_commune UNION SELECT id, prec_plani, nom, code_insee, statut, canton, arrondisst, depart, region, popul, multican, geom FROM orne_2016.admin_commune UNION SELECT id, prec_plani, nom, code_insee, statut, canton, arrondisst, depart, region, popul, multican, geom FROM sarthe_2016.admin_commune
Dernière modification par jmarsac (Mon 23 April 2018 18:35)
Jean-Marie
Azimut
Hors ligne
#33 Mon 23 April 2018 18:04
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1002
Re: Import des données IGN au format Posgres
"UNION" élimine les doublons
Ah tiens, j'avais zappé ce point ! (voila ce que c'est d'être autodidacte : on loupe certains fondamentaux !)
Dans ma tête, j'ai confondu avec "UNION ALL" qui aurait effectivement doublonné les entités...
Parfait !
Sylvain M.
Hors ligne
#35 Tue 24 April 2018 08:57
- ChristopheV
- Membre
- Lieu: Ajaccio
- Date d'inscription: 7 Sep 2005
- Messages: 3206
- Site web
Re: Import des données IGN au format Posgres
Bonjour,
(voila ce que c'est d'être autodidacte : on loupe certains fondamentaux !)
Je ne connais pas d'objet qui n'ait qu'une face (à part l'anneau de Möbius), être autodidacte a ses avantages et ses inconvénients, mais la plus grosse qualité c'est de savoir dire je me suis trompé ou je ne sais pas, car le gros défaut de nombre de diplômés c'est de croire que le bout de papier leur confère une espèce d'omniscience. Comme l'écrivait Chomsky, à partir de l'instant ou l'étudiant devient Docteur il ne sait plus dire je me suis trompé.
Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close
Hors ligne
#36 Mon 25 February 2019 19:10
- florianrobert.85
- Juste Inscrit !
- Lieu: Moulins (ALLIER-03)
- Date d'inscription: 20 Nov 2017
- Messages: 4
Re: Import des données IGN au format Posgres
Bonjour à tous,
Je viens d'installer PostgreSQL 10.7, PostGIS 2.3 et PgADMIN4 v4.
J'ai ensuite créé une base de donnée "DonneesIGN" en suivant le procédure de l'IGN.
Mais quant je lance ma requête :
Code:
"C:Program Files (x86)pgAdmin 4v4runtimepsql.exe" -h localhost -p 5432 -u postgres -d DonneesIGN -f "C:BDTOPOV3ADMINISTRATIFregion.sql"
j'ai comme retour :
"ERROR: ERREUR: erreur de syntaxe sur ou près de « "C:Program Files (x86)pgAdmin 4v4runtimepsql.exe" » LINE 1: "C:Program Files (x86)pgAdmin 4v4runtimepsql.exe" -h lo..."
J'ai essayé :
Code:
C:"Program Files"PostgreSQL10binpsql.exe -h localhost -p 5432 -U postgres -d DonneesIGN -f region.sql
j'ai comme retour :
"ERROR: ERREUR: erreur de syntaxe sur ou près de « C » LINE 1: C:"Program Files"PostgreSQL10binpsql.exe -h localhost -..."
J'ai essayé pas mal de requêtes en lisant vos précédents messages mais je ne sais plus vraiment quoi faire. Auriez-vous une piste?
Merci par avance.
Hors ligne
#37 Mon 25 February 2019 19:27
- p.jeremie
- Participant assidu
- Lieu: Valence
- Date d'inscription: 10 Sep 2017
- Messages: 445
Re: Import des données IGN au format Posgres
Salut Florian,
Je ne sais pas si c'est lié au copier/coller dans ton message sur le forum mais il manque les antislashes \ dans tes chemins.
Je te conseille d'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.
Ensuite tu pourras appeler psql.exe sans préciser le chemin, et donc l'appeler depuis le répertoire où sont tes fichiers sql.
Ce qui donnerait :
Code:
psql.exe -h localhost -p 5432 -u postgres -d DonneesIGN -f "C:\BDTOPOV3\ADMINISTRATIF\region.sql"
ou
Code:
psql.exe -h localhost -p 5432 -u postgres -d DonneesIGN -f "region.sql"
si tu es dans le répertoire du fichier region.sql.
Hors ligne
#38 Tue 26 February 2019 10:54
- florianrobert.85
- Juste Inscrit !
- Lieu: Moulins (ALLIER-03)
- Date d'inscription: 20 Nov 2017
- Messages: 4
Re: Import des données IGN au format Posgres
Bonjour Jérémie,
Merci pour ta réponse. Effectivement c'est bien le copier/coller qui a supprimé les "\".
Sinon j'ai bien respecté ce qui était indiqué dans le tutoriel de l'IGN mais pas mieux... J'ai réinstaller un pgadmin 4 après l'installation de Posgres... je ne sais pas si ca peux venir de là...
Toutes mes requêtes bloc au première caractère :
Code:
LINE 1: psql.exe -h localhost -p 5432 -u postgres -d DonneesIGN -f "... ^ État SQL :42601 Caractère :1
Hors ligne
#39 Tue 26 February 2019 11:40
Re: Import des données IGN au format Posgres
Bonjour,
Si tu as PostgreSQL ( le serveur ) d'installé sur ton poste, tu dois trouver le fichier psql.exe dans le répertoire bin de PostgreSQL (en général, sous Windows c'est dans c:\program files\PostgreSQL\XX\bin - où XX est le numéro de version de PostgreSQL)
C'est donc ce chemin que tu dois avoir mis dans la variable PATH du système Windows.
Ensuite, dans une fenêtre de commande, tu peux taper simplement la commande psql --help ou psql.exe --help (suivi d'une Entrée) - le .exe n'est pas utilie
Là, tu devrais avoir le défilement de l'aide de la commande psql.
Si tu as une erreur ici, il faudrait nous dire.
Si l'aide défile c'est que psql est correctement installé. Reste donc à essayer une connexion en tapant la commande
psql -h localhost -d ta_base_de_donnees -p 5432 -U ton_nom_utilisateur -W
Attention le -U est bien un U majuscule
Là, la commande va demandé le mot de passe associé à l'utilisateur que tu as indiqué et tu arrivera dans le prompt de psql. Pour quitter, il faut taper \q
Là,c'est que les paramètres de connexion à la base son correctes.
Maintenant , tu peux tester l'import de fichier SQL
psql -h localhost -d ta_base_de_donnees -p 5432 -U ton_nom_utilisateur -W -f ton_fichier.sql
Est-ce que cela t'aide un peu ?
A+
Christophe
Hors ligne
#40 Tue 26 February 2019 14:09
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1194
Re: Import des données IGN au format Posgres
Salut,
je crois qu'il y a une incompréhension.
Psql est un programme d'interrogation
d'une base Postgres en ligne de commande.
PgAdmin est un programme d'interrogation en interface web.
Donc pour importer vos données, soit vous passez par un terminal
(pour lancer un terminal Démarrer>Exécuter>tapez cmd.exe>Entrée),
et la vous utiliser psql en lançant la commande (le texte que vous essayez de lancer dans pgAdmin)
soit vous passez par pgAdmin, et dans votre onglet de requête, vous cliquez
sur ouvrir un fichier, sélectionner "C:\BDTOPOV3\ADMINISTRATIF\region.sql"
directement, et lancer la requête
Hors ligne
#41 Tue 26 February 2019 14:28
- florianrobert.85
- Juste Inscrit !
- Lieu: Moulins (ALLIER-03)
- Date d'inscription: 20 Nov 2017
- Messages: 4
Re: Import des données IGN au format Posgres
Merci! j'ai enfin réussi a intégrer ma couche région.sql
>J'ai réinstallé Postgre/Postgis dans un répertoire à la racine de C: pour eviter d'avoir "program file" ou le "program files(x86)" dans le requete
>J'ai mis à jour la variable
>et j'ai mis en majuscule "-U"
Je vais maintenant voir pour intégrer un lot de données.
Merci pour votre réactivité.
Cordialement.
Hors ligne
#42 Tue 30 July 2019 12:16
- Laeti24
- Participant occasionnel
- Date d'inscription: 31 Mar 2011
- Messages: 36
Re: Import des données IGN au format Posgres
Bonjour,
Comme un certain nombre d'entre vous j'ai téléchargé la BD Topo en format sql
Je rencontre quelques difficultés à intégrer mes tables dans PgAdmin4
J'ai ouvert l'éditeur de requête, puis j'ai fais un fichier ouvrir et j'ai sélectionné mon fichier sql. J'exécute ensuite la requête mais j'ai le message d'erreur suivant :
ERROR: ERREUR: erreur de syntaxe sur ou près de « 1060000206 »
LINE 22: 1060000206A08000001000000010300000001000000B100000033333333C...
^
De plus, il y a certains fichiers sql que je ne parviens pas à ouvrir, lorsque je lance l'ouverture du fichier ça me fait planter PgAdmin, certains d'entre vous ont il déjà rencontré ce problème?
Merci
Hors ligne
#43 Tue 30 July 2019 12:16
- Laeti24
- Participant occasionnel
- Date d'inscription: 31 Mar 2011
- Messages: 36
Re: Import des données IGN au format Posgres
Bonjour,
Comme un certain nombre d'entre vous j'ai téléchargé la BD Topo en format sql
Je rencontre quelques difficultés à intégrer mes tables dans PgAdmin4
J'ai ouvert l'éditeur de requête, puis j'ai fais un fichier ouvrir et j'ai sélectionné mon fichier sql. J'exécute ensuite la requête mais j'ai le message d'erreur suivant :
ERROR: ERREUR: erreur de syntaxe sur ou près de « 1060000206 »
LINE 22: 1060000206A08000001000000010300000001000000B100000033333333C...
^
De plus, il y a certains fichiers sql que je ne parviens pas à ouvrir, lorsque je lance l'ouverture du fichier ça me fait planter PgAdmin, certains d'entre vous ont il déjà rencontré ce problème?
Merci
Hors ligne
#44 Tue 30 July 2019 12:28
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1194
Re: Import des données IGN au format Posgres
Vos fichiers sql sont certainement trop volumineux,
et PgAdmin a du mal à lire le fichier dans son ensemble,
possible que l'erreur de syntaxe puisse provenir de là aussi.
Si vous avez PostgreSQL d'installé sur votre machine
vous pouvez passer par la ligne de commande.
Vous ouvrez un terminal, vous vous déplacer dans le
sous-repertoire bin de votre repertoire d'installation
PostgreSQL (avec une install BigSQL, par défaut
c'est C:\PostgreSQL\pg{Votre_numéro_de_version})
Et vous tapez :
Code:
psql -h nom_du_serveur -p numero_de_port -U utilisateur -f C:\chemin\vers\votre\fichier.sql nom_de_votre_base
Hors ligne
#45 Tue 30 July 2019 14:15
- Laeti24
- Participant occasionnel
- Date d'inscription: 31 Mar 2011
- Messages: 36
Re: Import des données IGN au format Posgres
J'ai ouvert SQL shell (psql) et j'ai tapé la ligne de commande mais lorsque j'arrive au mot de passe je ne peux rien taper donc après j'ai un message d'erreur et le terminal se ferme
Hors ligne
#46 Tue 30 July 2019 14:29
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1194
Re: Import des données IGN au format Posgres
Si, vous pouvez taper, mais rien ne s'affichera sur le terminal,
pas même des astérisques pour masquer votre saisie,
c'est classique dans les outils en ligne de commande qui nécessite un mdp.
Tapez votre mdp puis entrée.
Hors ligne
#48 Tue 30 July 2019 16:19
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1194
Re: Import des données IGN au format Posgres
Oui la vous utilisez psql shell (je n'avais pas compris même si
vous l'avez écrit) dans votre message précedent.
Avec pgsql, vous utilisez psql en mode interactif.
alors que l'exemple que je vous ai fourni
exécutera les commandes SQL et se terminera ensuite.
En mode interactif, vous pouvez aussi lire un fichier sql.
Pour faire çà, une fois que vous avez accès à la commande psql,
vous tapez :
Code:
\i C:\chemin\vers\fichier.sql
Sur l'écran que vous montrez,
voilà ce qu'il faut entrer :
server : localhost
database : topo
port : 5342
username : postgres
Pour utiliser psql en mode non interactif,
il faut utiliser le terminal windows classique,
le programme cmd.exe.
Dernière modification par tumasgiu (Tue 30 July 2019 17:02)
Hors ligne
#49 Wed 31 July 2019 09:15
- Laeti24
- Participant occasionnel
- Date d'inscription: 31 Mar 2011
- Messages: 36
Re: Import des données IGN au format Posgres
Sur l'écran j'ai bien entré les informations mais ça ne fonctionne pas
et lorsque je passe par cmd.exe rien n'y fait non plus
Hors ligne
#50 Wed 31 July 2019 09:21
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1194
Re: Import des données IGN au format Posgres
Non, là encore vous mixez les 2.
Je re résume :
1ere méthode (interactive):
* Ouvrez psql shell
* sur les différentes demandes,
entrez les infos suivantes :
server : localhost
database : topo
port : 5342
username : postgres
password : votreMotDEpasse
* entrez la commande
\i C:\chemin\vers\fichier.sql
* quittez le shell en tapant :
exit
2eme methode (non-interactive):
* Ouvrez cmd.exe
* Déplacez vous dans le répertoire bin de votre
install pgsql (typiquement C:\PostgreSQL ou C:\Program Files\PostgreSQL)
en tapant :
cd C:\chemin\vers\le\rep\dinstall\postgresql\bin
* tapez la commande
psql -h nom_du_serveur -p numero_de_port -U utilisateur -f C:\chemin\vers\votre\fichier.sql nom_de_votre_base
* entrez votre mot de passe
* une fois la commande executée, quittez le terminal
en tapant :
exit
Dernière modification par tumasgiu (Wed 31 July 2019 09:59)
Hors ligne
#51 Wed 31 July 2019 10:14
- Laeti24
- Participant occasionnel
- Date d'inscription: 31 Mar 2011
- Messages: 36
Re: Import des données IGN au format Posgres
Ah oui en effet je mélange tout, waouh pas facile pour une première.
Bon malheureusement ça ne fonctionne toujours pas, je vais essayer avec une autre table peut-être qu'il y a un souci avec cette table.
J'ai essayé avec l'éditeur de requête dans pgAdmin et lorsque j'ouvre ce .sql ça plante et si j'en ouvre un autre et que s'exécute la requête j'ai un message d'erreur :
ERROR: ERREUR: erreur de syntaxe sur ou près de « 1060000206 »
LINE 22: 1060000206A08000001000000010300000001000000B100000033333333C...
^
Hors ligne
#52 Wed 31 July 2019 10:38
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1194
Re: Import des données IGN au format Posgres
C'est au niveau des droits,
vous devez accorder les droits de lecture à l'utilisateur postgres
sur le répertoire C:\topo (clic droit>propriétés>sécurité)
Hors ligne
#53 Tue 27 August 2019 10:32
- zack
- Participant occasionnel
- Date d'inscription: 16 Jul 2014
- Messages: 33
Re: Import des données IGN au format Posgres
Bonjour,
J'ai téléchargé la BD TOPO v3 de l'IGN au format postgres. J'arrive à importer les tables dans postgres, dans le schéma qui va bien etc... mais j'ai un problème d'encodage et donc de caractères spéciaux. Ma BDD cible est bien en UTF-8 comme est censée l'être la BD TOPO. J'utilise PGADMIN 4 et je fais l'import en ligne de commande. Y a -t'il un moyen de préciser que c'est de l'UTF-8 ? Selon l'IGN, le problème est du au logiciel qui fait l'import, qui lit les données en Windows-1252. Quelqu'un à déjà eu ce problème avec une BD IGN ? Je ne l'ai pas avec d'autres sources, comme les fichiers MAJIC du CEREMA.
Merci !
Hors ligne
#54 Tue 27 August 2019 10:56
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1555
Re: Import des données IGN au format Posgres
Bonjour,
Si le client n'est pas en UTF-8 (par ex windows), il faut préciser à PG quel est l'encodage du client.
Vous pouvez le faire soit en SQL, soit en ligne de commande, avec la variable PGCLIENTENCODING (https://www.postgresql.org/docs/11/multibyte.html)
Code:
set PGCLIENTENCODING=WIN1252
(vous pouvez vérifier l'encodage du client sous dos avec la commande chcp il me semble)
Nicolas
Dernière modification par Nicolas Ribot (Tue 27 August 2019 11:45)
Hors ligne
#55 Tue 27 August 2019 16:30
- zack
- Participant occasionnel
- Date d'inscription: 16 Jul 2014
- Messages: 33
Re: Import des données IGN au format Posgres
Merci pour votre réponse qui m'a orienté vers la solution. J'ai ajouté un SET CLIENT_ENCODING TO 'UTF8' ; à mon script SQL et ça fonctionne parfaitement.
Hors ligne
#56 Tue 08 October 2019 12:34
- dhaulagiri
- Participant occasionnel
- Lieu: Nîmes, Gard
- Date d'inscription: 1 Dec 2006
- Messages: 46
- Site web
Re: Import des données IGN au format Posgres
Bonjour,
Je souhaite intégrer la BDTOPO v3 au format PostgreSQL mais impossible de télécharger une autre emprise que la France métropolitaine alors que je n'ai besoin que d'un département. J'ai posé la question à l'IGN pour savoir si c'est possible ou non. En attendant la réponse, je vous la pose aussi, ça ne mange pas de pain...
De plus et en supposant qu'on ne puisse pas, quelqu'un a-t-il travaillé sur une adaptation des fichiers SQL permettant de restreindre l'import des données à un territoire particulier? Comme toutes les classes d'objets n'ont pas de COG et que l'identifiant des objets ne semble contenir aucune référence à un département ou une commune, je ne sais pas comment m'y prendre.
Le chargement d'un seul fichier SQL métropolitain fonctionne bien mais impossible d'envisager de tout charger en base, je n'ai pas assez de place pour ça.
Merci pour votre aide
Salutations, Nicolas.
Hors ligne
#57 Tue 08 October 2019 17:04
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1002
Re: Import des données IGN au format Posgres
Voici ce que je fais personnellement :
1] j'importe la table nationale via PSQL
2] je découpe cette table selon mon territoire, via une requête de ce type :
Code:
CREATE TABLE france_2019.zone_de_vegetation_territoire AS SELECT zv.* FROM france_2019.zone_de_vegetation zv JOIN france_2019.mon_territoire t ON ST_Intersects(zv.geometrie, t.geom) WHERE t.nom is not null;
3] Je supprime la table nationale (DROP SQL)
Ce serait certainement scriptable, mais dans mon cas, ça me convient (beaucoup plus simple que quand je devais fusionner plusieurs départements SHP !)
Sylvain M.
Hors ligne
#58 Wed 09 October 2019 08:33
- dhaulagiri
- Participant occasionnel
- Lieu: Nîmes, Gard
- Date d'inscription: 1 Dec 2006
- Messages: 46
- Site web
Re: Import des données IGN au format Posgres
Merci. Vous chargez toutes les tables ou une partie uniquement?
Il va falloir que je demande aux informaticiens de pousser les murs car, même si je supprime ensuite tout ce dont je n'ai pas besoin, je n'ai pas assez d'espace pour charger la base nationale...
Salutations, Nicolas.
Hors ligne
#59 Wed 09 October 2019 15:24
- Theos2000
- Participant assidu
- Date d'inscription: 15 Jun 2015
- Messages: 221
Re: Import des données IGN au format Posgres
Sans doute possibilité de passer par les fichiers .shp et un ETL...
Hors ligne
#60 Wed 09 October 2019 15:56
- Sylvain M.
- Participant assidu
- Lieu: Saint-Pierre-des-Nids (53)
- Date d'inscription: 8 Sep 2005
- Messages: 1002
Re: Import des données IGN au format Posgres
Merci. Vous chargez toutes les tables ou une partie uniquement?
Je charge le contenu de toute la table, mais la supprime tout de suite après avoir créé la table correspondante de mon territoire, et avant d'intégrer les tables suivantes.
Les 2 plus grosses (et de loin) sont les tables "zones de végétation" (33.8 Go), et "bâtiment" (22.2 Go).
Une fois filtrées par le territoire, ça laisse de la place pour les autres qui sont beaucoup moins volumineuses.
Sylvain M.
Hors ligne
- Sujet précédent - Import des données IGN au format Posgres - Sujet suivant