Association de fichiers CSV non spatiaux à des données spatiales (fichier de formes) à l’aide de QGIS?

40

J'ai un fichier CSV qui contient des données de code postal dans un champ, mais il est non spatial, par exemple, pas d'est et de nord.

J'ai un fichier de formes avec code postal dans un champ et des données supplémentaires.

Je souhaite rejoindre le fichier CSV avec le fichier de formes basé sur des attributs (champs de code postal). Je sais que je peux le faire dans ArcMap, mais comment puis-je obtenir la même chose dans QGIS?

gisuser
la source
Comment faites-vous cela dans la version 2.3.0-Master?
Dans la version 2.8 (et avec certaines versions antérieures aussi), je ne peux pas faire fonctionner cela. Essayer de joindre des données correspondant au code postal du Royaume-Uni. En utilisant mmqgis, j'obtiens une erreur "pas de géométrie dans la couche Postcode" ou quelque chose de très similaire. En utilisant la fonction de jointure QGIS, je reçois une jointure des données mais aucune géométrie n'a été ajoutée au fichier CSV. Très très frustré par ce problème.
Rostranimin
1
Bonjour @Rostranimin. Le faites-vous correctement, c’est-à-dire que vous associez les données CSV aux données de fichier de formes, à partir du dialogue "Propriétés" du fichier de formes?
Stragu

Réponses:

28

Une solution rapide consiste à utiliser le plugin mmqgis qui joindra votre fichier csv au fichier de formes par des champs de code postal.

entrez la description de l'image ici

Mapperz
la source
4
Hé regarde! Il y a mon plugin File Browser: D
Nathan W
1
Good Work Nathan - je l'ai beaucoup utilisé, ça marche bien.
Mapperz
1
Cela fonctionne bien, juste ce dont nous avions besoin. Grand merci!
gisuser
salut, j'essaie de le faire mais j'obtiens le message d'erreur suivant Traceback (l'appel le plus récent en dernier): Fichier "C: /Users/Juan/.qgis/python/plugins \ mmqgis \ mmqgis_dialogs.py", ligne 65, dans le dialecte browse_infiles = csv.Sniffer (). sniff (infile.read (1024)) Fichier "C: \ PROGRA ~ 1 \ QUANTU ~ 1 \ apps \ Python25 \ lib \ csv.py", ligne 160, erreur de relance, "Pourrait non déterminé le délimiteur "Erreur: impossible de déterminer le délimiteur
@Carlos: Quel délimiteur utilisez-vous dans le fichier CSV?
underdark
39

La prochaine version de QGIS version 1.7 comportera une fonctionnalité de jointure intégrée aux propriétés de la couche. La vitesse des jointures est également assez impressionnante.

Étapes pour rejoindre:

  1. Ouvrez CSV via l'icône de vecteur ouvert.
  2. Ouvrez l'onglet Propriétés de la couche sur laquelle vous souhaitez rejoindre (votre carte).
  3. Cliquez sur l'onglet Joindre et appuyez sur le bouton +.
  4. Sélectionnez la couche csv et les deux colonnes que vous souhaitez rejoindre.
  5. Cliquez sur OK dans la boîte de dialogue des propriétés.

Rejoignez QGIS

Nathan W
la source
Agréable. L'ajout de fichiers CSV à l'aide de la couche Ajouter un vecteur n'est toutefois pas intuitif. J'aurais aimé le savoir plus tôt.
RK
1
Quatre ans plus tard, cela ne fonctionne toujours pas aussi efficacement que le plugin IME de MMQGIS.
Camdenl
1
C'était beaucoup plus rapide que le plugin MM. Pour ajouter le calque de données, utilisez layer -> add delimited text-> csv
Statistiques d'apprentissage par exemple
0

Si vous chargez vos données dans MS Access, ftools vous permettra de rejoindre une table MS Access.

Vous démarrez le programme d'installation du plug-in qgis, activez les dépôts tiers et ftools deviendra disponible.

puis utilisez l'outil de plug-in en allant dans fTools> Outils de gestion de données> Attributs de jonction

Relima
la source
Merci, je ne veux pas particulièrement utiliser un autre programme pour y arriver, mais je vais essayer si tout échoue.
Gisuser
0

Le plugin fTools permettant de travailler avec des données vectorielles vous donnera également la même option pour "joindre des données sur un attribut" même s'il n'est pas spatial.

Archeogeek
la source
Il semble seulement utiliser les données spatiales comme couche cible. Dans ce cas, j'aimerais ajouter les champs de la couche spatiale au fichier csv. Merci pour la suggestion.
Gisuser