Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
Pages: 1
- Sujet précédent - QGIS: joindre 2 couches par une relation entre 2 valeurs differentes - Sujet suivant
#1 Fri 03 March 2017 13:17
- gain-gtr
- Participant actif
- Lieu: MARSEILLE
- Date d'inscription: 2 Mar 2017
- Messages: 51
QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
Bonjour à tous et désolé pour le titre qui n'est peut être assez clair.
Depuis quelques jours (je suis au début de ma pratique Qgis) j’essaye de résoudre un problème de relation.
Je vais essayer d'expliquer par un exemple pratique
Je travaille sur la BD fichier fonciers (table bâtiments), sur la BD Topo et BD Parcellaire.
J’ai plusieurs parcelles sur lesquelles existent plusieurs bâtiments et donc plusieurs points (fichiers fonciers)
je voudrais joindre chaque point au bon bâtiment.
Mon idée est de calculer le Volume des bâtiments BD Topo, j'aurais donc:
Bat1 Vol 10, Bat2 Vol 20, Bat3 Vol 30
Sur les fichiers fonciers j'ai la surface de plancher des batiments :
BatA Surf 5, BatB Surf 15, BatC Surf 20
Je voudrais donc lier les caractéristiques du BatA au Bat1; du BatB au Bat2; du BatC au Bat3
J’ai un champ IdPar commune entre BDTopo et FichiersFonciers, naturellement les trois bâtiments ont le même IdPar.
L’hypothèse que la plus grande surface de plancher corresponde au plus grande volume n’est pas exacte au 100%, mais elle devrait bien se rapprocher de la réalité.
Help
merci
gianluca
Dernière modification par gain-gtr (Fri 03 March 2017 13:24)
Hors ligne
#2 Fri 03 March 2017 14:09
- gain-gtr
- Participant actif
- Lieu: MARSEILLE
- Date d'inscription: 2 Mar 2017
- Messages: 51
Re: QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
Je relis ma demande et je ne suis pas sûr d'avoir été clair,
Ce que je voudrais faire c'est de créer un attribut dans chacune des couches avec le IDpar (qui est commun aux deux) plus un chiffre qui dépend du volume (sur la BD TOPO) et de la surface (sur les FichiercFonciers)
Par rapport à l’exemple ci-dessus :
Bat1, IdPar aaaaaaaaaaaaa01
Bat2, IdPar aaaaaaaaaaaaa02
Bat3, IdPar aaaaaaaaaaaaa03
Puis……. Sur la couche fichiers fonciers
BatA, IdPar aaaaaaaaaaaaa01
BatB, IdPar aaaaaaaaaaaaa02
BatC, IdPar aaaaaaaaaaaaa03
Cela permettrait de les joindre.
Merci
Hors ligne
#3 Mon 06 March 2017 10:08
- gain-gtr
- Participant actif
- Lieu: MARSEILLE
- Date d'inscription: 2 Mar 2017
- Messages: 51
Re: QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
je vois que j'ai beaucoup de visualisations, mais pas de réponses.
cela est dû à ma question (incompressible) ou au fait que cette manip est impossible à réaliser?
merci
gianluca
Hors ligne
#4 Mon 06 March 2017 12:47
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3948
Re: QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
Bonjour,
Pour être sûr de comprendre et essayer de reformuler ton besoin, tu souhaiterais ajouter à chacune de tes couches de bâtiments un (des) champ(s) dans lequel/lesquels on aurait:
- l'information de la parcelle : ça c'est relativement faisable via une jointure spatiale au cas où tu ne l'aurais pas déjà effectué
- un classement croissant selon la surface ou le volume (en fonction de la couche de bâtiments) des bâtiments sur une même parcelle
L'objectif étant, en concaténant ce numéro d'ordre et l'identifiant parcelle, de créer un identifiant unique permettant de relier les deux couches de bâtiments.
Ai-je tout capté?
Si oui, en clic bouton sur QGIS, je ne vois pas.
Par contre, à l'aide des couches virtuelles (notamment si QGIS supporte les fonctions de fenêtrage), tu devrais pouvoir générer ton tableau. Je laisse par ailleurs aux plus expérimentés en SQL le soin de te proposer une requête si besoin. Sinon le forum Geo'BD peut être une bonne source d'informations ou d'aide.
Hors ligne
#5 Mon 06 March 2017 13:02
- gain-gtr
- Participant actif
- Lieu: MARSEILLE
- Date d'inscription: 2 Mar 2017
- Messages: 51
Re: QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
c'est exactement mon besoin, bien sur seulement la deuxième partie...
la jointure spatiale est crée, il faut maintenant que je trouve une solution pour joindre le bon bâtiment au bon point.
naturellement ce problème se pose seulement quand il y a plusieurs bâtiments sur la même parcelle...
si quelqu’un a des idées, je suis naturellement preneur.
entre temps je vais étudier les fonctions fenêtrage et chercher sur le forum GeoBD.
Merci
Gianlcua
Hors ligne
#6 Mon 06 March 2017 13:19
- olivier.eckmann
- Participant assidu
- Date d'inscription: 14 Dec 2007
- Messages: 357
Re: QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
Bonjour,
Je vais surement dire une bétise, mais si tu exportes vers Excel
Idbatiment / IdPar / Volume (surface * hauteur)
tu fais un tri sur 2 champs IdPar puis Volume
tu ajoutes une colonne en mettant 1 dans la première cellule, puis pour les cellules suivantes la formule Si IdPar de la ligne courante = IdPar de la ligne précédente alors numero = numéro précédent + 1 sinon numero = 1
tu concatènes IdPar et ton nouveau numéro.
Idem avec les surfaces du BDFoncier.
Olivier
Hors ligne
#7 Mon 06 March 2017 13:23
- gain-gtr
- Participant actif
- Lieu: MARSEILLE
- Date d'inscription: 2 Mar 2017
- Messages: 51
Re: QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
Je vais tester de suite si j'arrive avec Excell.
merci
Hors ligne
#8 Mon 06 March 2017 14:19
- gain-gtr
- Participant actif
- Lieu: MARSEILLE
- Date d'inscription: 2 Mar 2017
- Messages: 51
Re: QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
bop, c'est un peu la honte, mais sur excell comment je pourrais faire cette opération?
j'ai bien trie sur la colonne IdPar et Surface....
mais maintenant comment trouver une relation entre les deux?
merci
Hors ligne
#9 Mon 06 March 2017 14:53
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3948
Re: QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
tu fais un tri sur 2 champs IdPar puis Volume
Effectivement Excel est une bonne option (parfois, on va chercher loin...quoique) mais attention avec le tri car vous modifiez les séquences et le format shape n'aime pas ça. Ne le faites pas sur vos données source mais sur une copie de votre dbf que vous joindrez à votre shape une fois l'opération finie. En d'autres termes:
- s'assurer d'avoir dans le shape (donc sous GIS) un champ de numérotation unique des entités, genre 1,2,3.....
- ouvrir le dbf sous Excel, enregistrer sous
- dans la copie, faire un tri sur les deux champs,
- créer une nouvelle colonne "ordre"
- indiquer 1 pour la première ligne
-sur la deuxième ligne saisir la formule de comparaison/remplissage (pour préciser la formule d'Olivier)
Code:
=si(celluledecolonneIdpar=celluledecolonneIdpardelalignedavant; celluledudessus+1 ;1)
- faire une copie incrémentée sur les autres lignes
- calculer le VRAI champ identifiant unique thématique en concaténant le champ idpar et ordre.
- Enregistrer le fichier, l'ouvrir dans QGIS et faire la jointure sur la base du champ de numérotation pour rapatrier l'identifiant unique thématique
Hors ligne
#10 Tue 07 March 2017 11:51
- gain-gtr
- Participant actif
- Lieu: MARSEILLE
- Date d'inscription: 2 Mar 2017
- Messages: 51
Re: QGIS: joindre 2 couches par une relation entre 2 valeurs differentes
MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI MERCI ! :-)
ça marche...
j'ai encore un peu de problèmes ici et là, mais le gros est fait
gianluca
Hors ligne
Pages: 1
- Sujet précédent - QGIS: joindre 2 couches par une relation entre 2 valeurs differentes - Sujet suivant