8- Import-Export de données

Import de données attributaires suivi d'une jointure

Import de données attributaires suivi d'une jointure

La jointure attributaire permet de joindre une table attributaire (ne comportant pas d'objets géométriques, par ex. un fichier .TXT / .CSV / DBF / XLS / XLSX / ODS) chargée dans QGIS avec une couche vectorielle géographique déjà chargée dans QGIS.

Il faut faire attention à ce qu'une ligne de la table de la couche vectorielle soit en correspondance avec au plus une (0 ou 1) ligne de la table attributaire à joindre, sinon QGIS prendra une ligne correspondante de façon imprévisible.

Les formats autorisés sont les formats texte délimité (.txt, .csv, .dbf), les formats de feuille de calcul (xls, xslx, ods) et les formats de bases de données gérés par QGIS : SQLite, PostgreSQL (Les formats de bases de données ne sont pas étudiés dans la présente formation)

MéthodeImport de données attributaires avec jointure

L'objectif est d'importer les données attributaires contenus dans le fichier CSV ATTRIBUTS_COMMUNES.csv et de le joindre à la couche géographique COMMUNE.SHP

Ouvrir la couche géographique COMMUNE (data_foad_qgis/BD_TOPO/H_ADMINISTRATIF/COMMUNE.SHP) avec la commande "Couche/Ajouter une couche vecteur" ou cliquer sur l'icône

.

Ouvrir la couche attributaire ATTRIBUTS_COMMUNES (data_foad_qgis/Divers/ATTRIBUTS_COMMUNES.csv) avec la commande "Couche/Ajouter une couche vecteur" ou cliquer sur l'icône

.

Choisir le type de fichier « Valeurs séparées par une virgule [OGR] (*.csv) »

Les 2 couches sont ouvertes dans QGIS :

Panneau Couches

La table attributaire de la couche COMMUNE se présente comme suit :

Table attributaire de la couche COMMUNE

Celle de la couche (non géographique) ATTRIBUTS_COMMUNES est la suivante :

Table attributaire de la couche ATTRIBUTS_COMMUNES

La jointure sera effectuée sur le code INSEE, qui est présent dans les 2 tables attributaires :

  • Couche COMMUNE : champ CODE_INSEE

  • Couche ATTRIBUTS_COMMUNES : champ INSEE_COMM

CONSEIL

Même si QGIS peut joindre des champs de types différents (numérique et chaîne de caractères), il est conseillé d'utiliser des champs de même type.

Dans le cas présent les champs CODE_INSEE et INSEE_COMM sont de type chaîne de caractères.

Double-cliquer sur le nom de la couche géographique (COMMUNE) dans la fenêtre des couches pour ouvrir la fenêtre des propriétés de la couche.

Onglet Jointure

Dans l'onglet jointure,cliquer sur le bouton ‘+' et dans la boîte de dialogue ‘Ajouter une jointure vectorielle', choisir :

  • La couche attributaire à joindre (la couche de texte délimité) : ATTRIBUTS_COMMUNES

  • Le champ de la couche attributaire à joindre : INSEE_COMM

  • Le champ ciblé de la couche vectorielle géographique : CODE_INSEE

On choisira de préfixé les champs de la table à joindre avec un préfixe court (par défaut c'est le nom de la table distante ce qui peut conduire à des noms de champs très longs et éventuellement poser problèmes avec le format SHP qui limite les noms de champs à 10 caractères).

Boîte de dialogue Jointure

Valider avec Ok

La jointure à réaliser apparaît dans la fenêtre des propriétés de la couche :

Jointure

Valider avec OK pour réaliser la jointure

Les attributs de la couche de texte délimité sont alors ajoutés à chaque élément de la couche vectorielle géographique :

Résultat de la jointure

L'enregistrement du projet QGIS permet de sauvegarder cette jointure et de prendre en en compte les mises à jour successives de la couche attributaire (le fichier .CSV), effectuées hors QGIS.

Il s'agit d'une jointure dynamique.

Le résultat de la jointure peut être sauvegardé dans une nouvelle table vecteur.

Dans ce cas, il faut sauvegarder la couche vecteur résultat de la jointure avec la commande ‘Menu Couche>Sauvegarder sous...' ou clic droit sur la couche vectorielle géographique (COMMUNE) et commande ‘Sauvegarder sous...'

Remarque

Lorsqu'on importe un fichier CSV seul dans QGIS, toutes les colonnes du fichier sont interprétées comme des chaînes de caractères et les colonnes de la jointure sont dans ce cas en format texte.

Pour importer et joindre tous les types de champs reconnus par QGIS, notamment les champs numériques, il est nécessaire d'associer au fichier CSV un fichier CSVT portant le même nom et enregistré dans le même répertoire.

Le fichier CSVT qui contient la structure et le format des champs du fichier CSV est automatiquement détecté quand celui-ci est importé dans QGIS.

Un exemple est décrit dans le chapitre  'Export de données attributaires'.

RemarqueFiltrage sur champs joints

On peut vouloir filtrer une table pour laquelle une jointure a été réalisée.

Dans ce cas QGIS affiche un message proposant de transformer la couche en 'couche virtuelle'.

La notion de couche virtuelle a été développé dans QGIS pour réaliser des requêtes SQL sur une ou plusieurs tables ouvertes dans QGIS. Le SQL est un point qui est abordé dans la formation Perfectionnement.

Pour réaliser un filtre sur une couche jointe il suffit de répondre ok à la boite de dialogue :

Nous reverrons plus en détail les couches virtuelles dans la formation perfectionnement.

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Maîtrise d'ouvrage : MEDDE - METL - MAAF / Maîtrise d'œuvre : ENTE Aix - ENSG / Licence ouverte ETALAB Réalisé avec Scenari (nouvelle fenêtre)