Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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é ?

Annonce

Printemps des cartes 2024

#1 Thu 16 June 2016 19:08

raff94
Participant occasionnel
Date d'inscription: 4 Mar 2016
Messages: 24

[PostGis] Fusionner plusieurs tables ?

Bonjour,

Actuellement j'ai la BD topo de l'île de france. J'ai importer toutes les couches shapefiles dans postgis, cependant j'ai environ 400 tables..... Du coup je voulais savoir si c'est possible de les regrouper par départements ? j'ai créer une colonne "département" en remplissant celle-ci par la valeur 75 par exemple.
La fusion permettrait d'avoir une meilleure lisibilité dans pgAdmin (pour ma part), par contre vu que chaque table à des attributs différents, comment procéder ? Ou alors c'est inutile ce que je demande ?

Le but est de pouvoir affiché certains éléments désirés par la suite via un formulaire php..

Hors ligne

 

#2 Thu 16 June 2016 22:01

Nugg_00
Participant occasionnel
Date d'inscription: 7 Jun 2016
Messages: 32

Re: [PostGis] Fusionner plusieurs tables ?

raff94 a écrit:

Bonjour,

Actuellement j'ai la BD topo de l'île de france. J'ai importer toutes les couches shapefiles dans postgis, cependant j'ai environ 400 tables..... Du coup je voulais savoir si c'est possible de les regrouper par départements ? j'ai créer une colonne "département" en remplissant celle-ci par la valeur 75 par exemple.
La fusion permettrait d'avoir une meilleure lisibilité dans pgAdmin (pour ma part), par contre vu que chaque table à des attributs différents, comment procéder ? Ou alors c'est inutile ce que je demande ?

Le but est de pouvoir affiché certains éléments désirés par la suite via un formulaire php..


Je te donne une méthode, mais il en existe surement de meilleures :
-créer une nouvelle table avec toutes les colonnes que tu vas rencontrer.
Par exemple si une table nommée table_01 est composée d'une colonne colonne_01, et une colonne geom, et qu'une autre table nommée table_02 est composée d'une colonne colonne_02, et une colonne geom, tu créés une nouvelle table composée des colonnes colonne_01, colonne_02 et geom.

Code:

CREATE TABLE bd_topo(colonne_01 type_colonne_01, colonne_02 type_colonne_02,...., geom geometry);

-Ensuite lancer les requêtes (400 ca va être dur!)

Code:

INSERT INTO bd_topo(colonne_01, geom)
SELECT colonne_01, geom FROM table_01

INSERT INTO bd_topo(colonne_02, geom)
SELECT colonne_02, geom FROM table_02

...
...
...

Code:

INSERT INTO bd_topo(colonne_n, geom)
SELECT colonne_n, geom FROM table_n

Hors ligne

 

#3 Thu 16 June 2016 22:10

Nugg_00
Participant occasionnel
Date d'inscription: 7 Jun 2016
Messages: 32

Re: [PostGis] Fusionner plusieurs tables ?

Autre solution, qui peut te faire gagner beaucoup de temps si tu as autant de shp différents :
Aller dans QGIS, onglet "Vecteur", puis "Outils de gestion de données" et enfin "Fusionner les shapefiles en un seul".
Cela permet de prendre un dossier ou tu auras préalablement regroupé tous les shapefiles du même type (donc un dossier pour les polygones, un autre pour les points, et un autre pour les lignes) et de fusionner tous les shapefiles contenus dans ce dossier en un seul.
Vous obtiendrez donc seulement 3 shapefiles, vous les importez dans pgadmin, puis vous faites la méthode que je vous ai énoncé précédemment. (et cela ne nécessitera que 3 itérations de la requête)

Hors ligne

 

#4 Fri 17 June 2016 07:37

raff94
Participant occasionnel
Date d'inscription: 4 Mar 2016
Messages: 24

Re: [PostGis] Fusionner plusieurs tables ?

Effectivement la méthode pour créer une nouvelle table et d'insérer les colonnes risque d'être longue ! je vais me pencher sur la méthode QGis, j'aurai du y penser dès le début !

Merci en tout cas wink

Hors ligne

 

#5 Fri 17 June 2016 09:03

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

Re: [PostGis] Fusionner plusieurs tables ?

Bonjour,

Avant toutes questions relatives au comment faire donc à la technique il serait judicieux de modéliser votre future base de données.

La différence entre un fichier à plat de type shp et une base de données relationnelle est énorme. 

Du coup je voulais savoir si c'est possible de les regrouper par départements ?


Question qui révèle qu'il n'existe aucune modélisation de votre future base.

Soit le département est un objet à part entière (1) ou c'est un attribut (propriété) d'un objet (2). Donc (1) je créé une table département qui aura une relation 1-1 ou 1-n ou n-n avec d'autre objets, soit c'est une propriété (2) donc un champs d'une table.

Petit exemple à méditer : j'ai une couche infrastructure de transport, l'aéroport de truc est situé sur trois départements ....


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

Hors ligne

 

#6 Fri 17 June 2016 09:29

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1536

Re: [PostGis] Fusionner plusieurs tables ?

Bonjour,

D'accord avec Christophe:

faites attention, avant de remplir une base de données de données (smile ) de bien savoir ce que vous y mettez, comment, et pourquoi faire.

Donc une modèle, qui liste les tables voulues (pas forcement dans le détail si les tables sont des copies strictes des shapefiles).

Concernant le chargement en masse de BDTopo, avec un ptit script shell ou bat, c'est facile de créer les x tables correspondant aux shapefiles puis de les remplir en mode append avec shp2pgsql par ex (ou ogr2ogr).

De mémoire, le chargement BDtopo france entière a du prendre une petite heure la dernière fois que je l'ai lancé.

Nicolas

Hors ligne

 

#7 Fri 17 June 2016 10:10

Philippe DESVIGNES
Participant occasionnel
Lieu: CHATELLERAULT
Date d'inscription: 11 Apr 2006
Messages: 41

Re: [PostGis] Fusionner plusieurs tables ?

Bonjour,

Existe-il sous QGis une fonction 'Filtre Spatial' permettant d'exporter, une fois le filtre activé, toutes les couches d'un même département vers une Base de Données ou d'autres fichiers shape ?

Une autre solution qui peut vous faire gagner du temps et disposer de la dernière mise à jour :  La BD Topo peut être téléchargée (Gratuitement pour les Missions de Service Public) par département sur le site de l'IGN.

Cordialement

Philippe DESVIGNES

Hors ligne

 

Pied de page des forums

Powered by FluxBB