Suite

Interrogation via les relations


En ce moment, je ne sais pas comment faire interagir deux couches. J'ai une couche qui n'est qu'une carte avec les limites de la ville, avec des attributs pour les codes de ville. Mon autre couche sont des données pour les entreprises, les salaires par exemple. J'ai configuré une relation dans le menu des propriétés du projet entre eux à l'aide de codes de ville, et je peux voir dans la table attributaire que la couche de carte sait quelles entreprises existent maintenant dans chaque ville.

Cependant, je n'arrive pas à m'en servir. Si, par exemple, je veux sélectionner par expression pour sélectionner uniquement les villes où le salaire moyen dépasse un certain niveau, je ne peux même pas commencer car je ne peux pas écrire une expression en utilisant les valeurs des deux couches, même si je les ai configurées dans une relation. Comment pourrais-je vraiment procéder?

J'essaie de comprendre comment interroger, sélectionner ou quoi que ce soit en utilisant les attributs de deux couches liées.


Je suggère un processus en deux étapes :

  1. Si vos entreprises ne sont pas associées aux codes de ville, vous devez effectuer une jointure spatiale. Dans QGIS, cela se trouve sous Vector - Data Management Tools - Join Attributes by Location. La couche cible sera vos entreprises et la couche de jointure sera les villes (je suppose que les villes sont une couche polygonale). Chaque entreprise (en supposant qu'il s'agit de points) se verra attribuer les attributs de la ville où elle est située. Une fois cela fait, vous pourrez interroger la nouvelle couche métier en utilisant les attributs des villes - et créer des tableaux récapitulatifs (étape suivante).

  2. Si vous souhaitez joindre les données résumées des entreprises aux villes (afin de pouvoir cartographier par ville ou effectuer des requêtes par ville), vous devrez télécharger un plugin QGIS qui vous permettra de faire la somme par attributs pour créer de nouvelles tables. Sous Plugins - Gérer et installer des plugins, jetez un œil à Group Stats ou Statist. Vous pouvez utiliser l'un d'eux pour résumer les entreprises par les attributs de ville que vous avez attribués à l'étape 1, pour créer des salaires moyens pour la ville (par exemple). Une fois que vous avez résumé les données d'entreprise par ville, vous pouvez effectuer une jointure de table attributaire un à un, pour joindre votre table récapitulative à la couche des villes pour mapper les données résumées.


Au lieu d'une relation, avez-vous essayé de joindre les tables ?

En supposant que QGIS gère les relations et les jointures de la même manière qu'ArcMap, vous ne pourrez pas interroger sur la relation. Fondamentalement, une relation définit simplement une relation au sein de la carte et ne fait rien pour mettre en relation les tables de la géodatabase (comme une jointure). Pour interroger, une relation de base de données doit être définie.

Lors d'une recherche rapide de QGIS relie vs jointures, je n'ai rien vu qui explique vraiment la différence, j'utilise donc un lien vers une page d'aide ArcMap qui définit les relations vs jointures. Je sais que ce n'est pas QGIS, mais je suppose qu'ils sont définis de la même manière. Texte cité ci-dessous en cas d'échec futur du lien.

ArcMap propose deux méthodes pour associer des données stockées dans des tables à des entités géographiques : les jointures et les relations. Lorsque vous joignez deux tables, vous ajoutez les attributs de l'une à l'autre en fonction d'un champ commun aux deux. L'association des tables définit une relation entre deux tables, également basée sur un champ commun, mais n'ajoute pas les attributs de l'une à l'autre ; à la place, vous pouvez accéder aux données associées si nécessaire.

En règle générale, vous joindrez une table de données à une couche en fonction de la valeur d'un champ qui peut être trouvé dans les deux tables. Le nom du champ ne doit pas nécessairement être le même, mais le type de données doit être le même ; vous joignez des nombres à des nombres, des chaînes à des chaînes, etc. Vous pouvez effectuer une jointure avec la boîte de dialogue Joindre les données accessible en cliquant avec le bouton droit sur une couche dans ArcMap ou l'outil de géotraitement Ajouter une jointure.

Supposons que vous obteniez des prévisions météorologiques quotidiennes par comté et que vous génériez des cartes météorologiques basées sur ces informations. Tant que les données météorologiques sont stockées dans une table de votre base de données et partagent un champ commun avec votre couche, vous pouvez les joindre à vos entités géographiques et utiliser l'un des champs supplémentaires pour symboliser, étiqueter, interroger ou analyser les entités de la couche. .

Contrairement à la jointure de tables, la mise en relation de tables définit simplement une relation entre deux tables. Les données associées ne sont pas ajoutées à la table attributaire de la couche comme c'est le cas avec une jointure. Au lieu de cela, vous pouvez accéder aux données associées lorsque vous travaillez avec les attributs de la couche.

Les relations définies dans ArcMap sont essentiellement les mêmes que les classes de relations simples définies dans une géodatabase, sauf qu'elles sont enregistrées avec la carte plutôt que dans une géodatabase.


Vous pouvez joindre des tables dans l'interface graphique QGIS sous Propriétés de la couche > Jointures. Ici, vous pouvez joindre des attributs à la couche de bordure de ville. Ceci est juste une jointure 1: 1 prenant la première correspondance dans votre couche d'affaires. Si vous voulez plus de contrôle, vous pouvez utiliser Spatialite ou PostGIS.


Ce que vous voulez, c'est relation_aggregate dans le calculateur de champs


Voir la vidéo: 6-Relations (Octobre 2021).