Lo Furòl

... de l'ouverture (en occitan)

Vous êtes ici : Accueil / Logiciels Libres / [QGIS3] Créer une carte à partir de données ouvertes

[QGIS3] Créer une carte à partir de données ouvertes

QGIS logoQGIS est un formidable outil professionnel libre permettant d'élaborer des cartes géographiques et d'y adjoindre des données (SIG = Système d'Information Géographique).
Site officiel : https://www.qgis.org/fr/site/index.html.
Voir aussi cette page où je répertorie différents liens concernant QGIS.
Tutoriel pour débutants (mais pas seulement) proposé par le CNRS : https://ouvrir.passages.cnrs.fr/tutoqgis/index.php

Dernier manuel d'utilisation pour QGIS : https://docs.qgis.org/latest/fr/docs/user_manual/index.html (la dernière version en français est ici : https://docs.qgis.org/3.16/fr/docs/user_manual/index.html).

Je décris ci-dessous une méthode permettant d'obtenir des cartes de données géographiques rapidement en utilisant des données ouvertes fournies par l'Éducation nationale. Je me suis servi des données fournies par ce site concernant l'Occitanie : https://data.occitanie.education.gouv.fr mais il existe aussi le site national https://data.education.gouv.fr.

A- Récupérer les données ouvertes au format GeoJSONOSM data EN export geojson

  1. Il faut se placer sur l'onglet "Données" et faire une recherche avec le mot "annuaire". Voici la page que l'on cherche : https://data.occitanie.education.gouv.fr/explore/dataset/fr-en-annuaire-education/
  2. On filtre les données qui nous intéressent en fonction des critères choisis dans la colonne de gauche. J'ai filtré par "nom_circonscription" pour n'avoir que les écoles de ma circonscription (celle de Lézignan-Corbières Minervois) et les écoles publiques.

  3. On se place sur le sous-onglet "Export".

  4. On choisit ses données au format GeoJSON.

 

B- Installer et préparer QGIS sur son ordinateur

  1. On installe QGIS sur son ordinateur.
  2. On installe l'extension "Spreadsheet Layers". Voir cette page détaillant comment faire : https://courses.gisopencourseware.org/mod/book/view.php?id=330&chapterid=902. Ceci est indispensable si on veut pouvoir rajouter des données issues de feuilles de calcul .ods venant de LibreOffice Calc. Elle permet de rajouter une entrée dans le menu "Couche" -> "Ajouter une couche" -> "Ajouter une couche feuille de calcul" (voir plus bas partie D).
  3.  On rajoute une couche venant du projet OpenStreetMap qui servira de fond de carte. Pour cela on va dans l'explorateur, dans "XYZ Tiles" et on clique sur "OSM France".
    QGIS Fond OSM

C- Intégrer les données géographiques GeoJSON dans QGIS

  1. On rajoute les données récupérées dans la partie A, via le menu "Couche" -> "Ajouter une couche" -> "Ajouter une couche vecteur..." (ou directement avec Ctrl+Maj+V). Dans la ligne "Source" on indique l'emplacement de son fichier .geojson et on clique sur le bouton "Ajouter".
  2. Cela crée une nouvelle couche que l'on peut renommer avec un clic droit pour faire apparaître le menu contextuel.
    De la même façon, on peut aussi choisir d'afficher (ou de masquer) le nombre d'entités sur la couche ainsi que la table d'attributs contenant tous les champs des données des écoles importées.
  3. À partir de là, on va pouvoir personnaliser l'affichage des points sur la carte, mettre des étiquettes, etc... avec le style de la couche qu'on peut faire apparaître en appuyant sur la touche F7 (ou Ctrl+F3) ou sur la première icône qui se trouve dans la fenêtre "Couche" :

    QGIS couche style

    Pour avoir des informations sur toutes les possibilités offertes par l'utilisation des styles, voir la documentation QGIS points taille proportionnelleofficielle très complète :
    https://docs.qgis.org/3.16/fr/docs/user_manual/introduction/general_tools.html#layer-styling-panel


  4. Pour afficher des points avec une taille proportionnelle à la valeur d'un champ (voir capture ci-contre) :
    1. toujours dans "Style de Couche",

    2. Aller sur l'onglet "Symbologie",

    3. Aller sur le paramètre en bout de ligne de la taille,

    4. Et cocher "Assistant..." en bas.


D- Rajouter des données contenues sur une feuille de calcul

Il peut arriver qu'il manque certaines informations dans les données ouvertes. Par exemple, le nombre de classes. Il est alors possible de rajouter une feuille calc contenant les informations manquantes.

  1. Il faut vérifier au préalable que la feuille de calcul contient un champ qui existe déjà dans le fichier GeoJSON afin de pouvoir relier les nouvelles données. Dans notre cas, il s'agit de l'UAI qui correspond à l'identifiant de l'école.
  2. On rajoute les données récupérées dans la partie A, via le menu "Couche" -> "Ajouter une couche" -> "Ajouter une couche vecteur..." (ou directement avec Ctrl+Maj+V) et on indique le fichier .ods qui nous intéresse :

    QGIS Extension WorsheetCela insère une nouvelle couche "tabulaire".

  3. VOIR CHAPITRE SUIVANT POUR UNE JOINTURE PÉRENNE
    Pour joindre des données entre les 2 couches, on va dans le menu "Traitement" -> "Boîte à outils" -> "Outils généraux pour les vecteurs" -> "Joindre les attributs par valeur de champ". Dans la fenêtre qui s'ouvre, on renseigne les couches et les champs à relier et on clique sur le bouton "Exécuter" :

    QGIS Jointure tablesCela a pour effet de créer une nouvelle couche issue de cette jointure et donc de pouvoir placer ou superposer de nouvelles infos sur la carte.

QGIS couchesAu final, on a donc 4 couches rangées par ordre d'ajout (ordre qu'on peut modifier en déplaçant les couches).


IMPORTANT : On voit ici que la dernière couche issue de la jointure a un symbole en bout de ligne. Ceci indique qu'il s'agit d'une couche temporaire/volatile. Si on veut la retrouver à la prochaine ouverture du document, il faudra l'enregistrer sous format .gpkg en cliquant sur cette même icône.

 

D BIS- À PRÉFÉRER : Autre façon de rajouter des données contenues sur une feuille de calcul par intégration

Cette méthode permet d'inclure directement les données de la feuille de calcul dans les données de la couche initiale. Cela ne créera pas de couche supplémentaire comme dans la méthode précédente. Elle a aussi comme avantage qu'on pourra modifier les caractéristiques de la jointure par la suite.

        1. Tout comme dans le chapitre précédent, on va insérer une couche tabulaire contenant les données de la feuille de calcul (voir chapitre D plus haut, parties 1 et 2).
        2. Ensuite, on va sur les propriétés de la couche initiale dans "Jointures" et on clique sur le + vert en bas :
          QGIS jointures propriétés couche
        3. On indique les différentes informations nécessaires pour la jointure :

          QGIS jointures propriétés couche2

          1. On indique la couche à intégrer ainsi que le champ servant de jointure.

          2. On indique le champ de notre couche qui servira aussi à la jointure.

          3. On peut personnaliser le préfixe des nouveaux champs qui seront intégrés. C'est intéressant pour avoir des noms plus courts.

          4. On valide.



 

Maintenant les nouvelles données apparaîtront comme n'importe quel champ de la couche d'origine.

 

E- Imprimer la carte

      • On utilise le gestionnaire de mise en page qui reprendra l'affichage en cours dans QGIS ! Documentation : https://docs.qgis.org/3.16/fr/docs/user_manual/print_composer/overview_composer.html
      • Là on pourra ajouter la carte, une échelle, la légende, des cadres de texte, ...
      • Concernant la légende, si on veut une légende avec la signification des tailles, il faut passer par le style de la couche -> "Symbologie" -> "Avancé" en bas -> "Légende pour la Taille définie dans les données..." :
        QGIS Légende Tailles Points
      •  Il est possible de fixer la résolution du fond de carte OpenStreetMap afin de pouvoir lire ses indications (comme les noms des villes).
        Pour cela, il faut aller dans l'onglet "Mise en page", dans la partie "Paramètres d'export" et ajuster la résolution (250 DPI est pas mal pour du A4) :
        QGIS résolution impression

Voici ce qu'on peut obtenir comme impressions :

QGIS ex impression2QGIS ex impression1

F- Colorier les différents points selon la valeur d'un champ

Il est tout à fait possible de colorier les points selon la valeur d'un champ. Par exemple, je voudrais que les points des écoles apparaissent différemment selon le PIAL auquel elles appartiennent. Doc sur les rendus catégorisés : https://docs.qgis.org/3.16/fr/docs/user_manual/working_with_vector/vector_properties.html#categorized-renderer

  1. Je vais dans Style de Couche, onglet "Symbologie".
  2. Je choisis comme le type de symbole "Catégorisé".
  3. Dans la cellule Valeur, j'indique le champ sur lequel portera la distinction.
  4. Je clique sur le bouton "Classer", ce qui génère automatiquement les points de différentes couleurs sur la carte.

QGIS points catégorisés1  QGIS points catégorisés2

 Voici le résultat :

QGIS points catégorisés rendu final

 VARIANTE : Il est possible aussi de colorier selon une échelle de valeurs d'un champ en choisissant dans le style de couche, dans la symbologie, "Gradué".

QGIS echelle graduee

G- Récupérer des données dans OSM

Cela est possible grâce au plugin QuickOSM : https://www.3liz.com/blog/rldhont/index.php?post/2014/09/26/QGIS-QuickOSM-Plugin-%3A-Obtenir-simplement-des-donn%C3%A9es-OpenStreetMap-dans-QGIS. Il est ainsi possible de récupérer les limites administratives des communes (admin_level=8).

  1. Une fois QuickOSM installé, on va dans le menu "Traitement" -> "Boîte à Outils".
  2. On clique sur l'entrée "QuickOSM" et dans mon exemple "Télécharger la donnée OSM à partir d'une requête dans une étendue".

QGIS QuickOSM1 QGIS QuickOSM2

 

H- Masquer des parties de cartesQGIS Mask

Cela est possible facilement grâce à l'extension "Mask" : http://aeag.github.io/mask/. Il suffit de sélectionner les parties d'une couche qu'on veut mettre en valeur (où qu'on veut seulement afficher) et d'appuyer sur le bouton idoine pour masquer.

ATTENTION : il s'agira d'une couche temporaire qui ne sera pas enregistrée à la fermeture du projet !

 

I- Séparer des points pour une meilleure visibilité

Source : https://docs.qgis.org/3.16/fr/docs/user_manual/working_with_vector/vector_properties.html#point-displacement
Il faut choisir dans "Style de Couche", pour la symbologie, le type "Déplacement de point". Ceci à l'avantage de fournir une meilleure visibilité en fonction du niveau de zoom sans déplacer réellement les points.

J- Séparer des étiquettes pour une meilleure visibilité

 

Vous êtes ici : Accueil / Logiciels Libres / [QGIS3] Créer une carte à partir de données ouvertes