Tuto : réaliser une jolie carte des îlots urbains, en couleur mais sans aucune info, avec QGIS
Réaliser une carte purement artistique, ça vous tente ? Aucune info sur la carte, on n’apprend rien, pas même le nom des rues, mais c’est mignon ! Et c’est réalisable avec QGIS. Suivez le guide, pas à pas.
J’ai appris à maitriser QGIS sur le tas. Je cherchais un logiciel pour réaliser des cartes, à la place d’un autre outil que nous avions au bureau et qui ne me plaisait pas du tout. QGIS m’a été chaudement recommandé par un collègue de La Voix du Nord, Julien Depelchin. Mais ce qui m’a décidé à sauter le pas, c’est Jules Grandin, sur Twitter. Il a partagé une carte de Londres absolument magnifique, je me suis dit “JE DOIS LE FAIRE”. Les ennuis ont commencé à ce moment. Je n’aurais rien pu faire sans l’aide de Maxime Bescu, sur Twitter. Il avait mené un atelier sur la réalisation de ce genre de cartes, je l’ai harcelé sur Twitter. Merci à lui.
Ce dont vous avez besoin
Pour réaliser des cartes, il vous faut QGIS. Si vous voulez en apprendre plus sur ce logiciel, allez voir par ici, ou par là… On va pas épiloguer. En outre, je n’ai pas la prétention de faire un tuto détaillé de QGIS. Il en existe déjà. Personnellement, j’ai étudié celui du pôle Analyse et Représentation des données de l’UMR PASSAGES qui est excellent. Il faut également des fichiers au format .shp : des shapefiles. Il nous faut les contours des communes de France (nous allons travailler à l’échelle d’une ville) mais aussi les couches de routes/voies d’eau/bâtiments… Pour les contours des communes, data.gouv.fr dispose des données. La fameuse base Admin express. Pour les routes etc, nous allons devoir utiliser les données d’Open Street Map (OSM). Les données d’OSM sont librement téléchargeables sur le site Geofabrik.de. Pour ce tuto, nous allons utiliser les données du Nord — Pas-de-Calais. Elles sont disponibles ici et il faut récupérer le fichier .zip (nord-pas-de-calais-latest-free.shp.zip). Le fichier pèse 329mo, il vous faudra peut-être attendre un peu…
Une fois que vous avez tout ceci, installez QGIS et dézippez les données OSM dans un dossier sur votre bureau que vous pourrez aisément identifier. Puis… lancez QGIS.
Hazebrouck, nous voilà !
Pour notre exercice, nous allons travailler sur une petite ville du nord de la France, Hazebrouck. Ce qui signifie, en néerlandais, le marais aux lièvres. La commune compte 22 000 habitants et mérite qu’on y fasse un tour, ainsi que la Flandre française. Il y a également une rédaction de La Voix du Nord sur place, et l’équipe est particulièrement bonne (j’y ai travaillé avec beaucoup de plaisirs).
La première étape consiste en l’importation de notre couche de communes. Cette donnée est stockée dans une couche vecteur dans votre dossier Admin express. Pour importer un fichier vecteur, il existe plusieurs options : dans l’onglet Couche, Ajouter une couche, Ajouter une couche vecteur. Il vous faut désormais naviguer jusqu’à Admin express, Données livraison, SHP_LAM93 FR.
Il semble que la couche COMMUNE.shp soit plus lourde que COMMUNE_CARTO.shp. Je ne sais pas s’il y a une différence entre ces deux fichiers… dans le doute prenons le plus léger, COMMUNE_CARTO.shp. Ouvrons, ajoutons, fermons. Les communes de France apparaissent (normalement) nous nos yeux. Nous devons désormais isoler la commune d’Hazebrouck dans ce fouillis.
Clic droit sur “Commune”, puis “Ouvrir la table d’attributs”. Là, organisons par ordre alphabétique le nom des communes et sélectionnons la ligne d’Hazebrouck (normalement la ligne 14000). On peut voir sur la carte que notre commune cible est en surbrillance.
Dans le volet de droite, cliquons (clic-droit) à nouveau sur “Commune”, puis Exporter, Sauvegarder les entités sélectionnées sous. Une fenêtre s’ouvre, donnez un nom simple (Hazebrouck1 par exemple). Nous avons désormais deux couches. Nous pouvons désélectionner COMMUNE_CARTO.
Il va falloir reprojeter notre toute petite carte. Nous allons changer la projection de cet élément. En effet, si une couche a une projection différente des autres, notre exercice va échouer. Nous utiliserons la projection Lambert 93. Pour reprojeter, affichez la boîte à outils de traitements : onglet Traitements et Boîte à outils. Vous avez une zone de recherche, il faut chercher “Reprojeter” et sélectionner Reprojeter une couche. Allons-y.
Normalement, votre projection est déjà la bonne, en Lambert-93. Mais cela permet de pratiquer car, juste après, nous allons devoir reprojeter la couche route. La couche source est bien Hazebrouck1, le SCR cible est bien RGF93/Lambert-93. Cliquons sur exécuter. Nous avons soudainement 3 couches. Nous pouvons désélectionner Hazebrouck1.
Dans le volet Couches, on aperçoit une sorte de sens interdit. Il sert à supprimer une couche. L’autre symbole indique que notre couche reprojeté est un élément temporaire. Il est stocké dans la mémoire de votre ordinateur mais sera perdu lors de la fermeture de QGIS. Renommez-le en Hazebrouck2. Il est temps d’importer une nouvelle couche vecteur, parmi celles que nous avons téléchargé depuis geofabrik. Ajouter une couche vecteur et naviguer jusqu’à votre dossier. Là, vous verrez des dizaines de fichiers mais nous n’allons prendre que gis_osm_roads_free_1.shp. Ouvrez, ajoutez, fermez. Vous avez sous yeux toutes les routes du Nord — Pas-de-Calais. Zoomez sur la commune.
Les routes permettent de découper nettement la commune. On peut voir le cœur urbain et un réseau routier qui entoure la ville, à l’image de remparts (il devait y en avoir à l’époque et souvent le réseau routier suit ces remparts). Ces deux couches sont déjà belles. Mais nous allons faire mieux. Tout d’abord, il faut reprojeter la couche de route (en EPSG:4326 — WSG 84) car elle est différente de la couche de commune (en EPSG:2154 - RGF93/ Lambert 93). Harmonisons en Lambert-93. Renommez la couche et décochez l’ancienne couche route. Puis, nous allons couper : c’est-à-dire ne conserver que le réseau routier qui serpente dans le finage de la commune d’Hazebrouck. Pour cela, dans la boîte à outils, recherchez “Couper”. Là, sélectionnez comme couche source vos routes avec la bonne projection et la commune comme couche de superposition. Exécutez et fermez. Une nouvelle couche est arrivée. Renommez-la par souci de compréhension et désactivé votre couche route précédente. Il ne devrait rester que les routes d’Hazebrouck.
Nouvelle étape importante et complexe : attribuer une largeur à chacune de ces routes. Ouvrez la table d’attributs de “Route decoupe1”, Activez le mode édition (le crayon en haut à gauche) et ouvrez ensuite la calculatrice de champs (le boulier de droite). Face à vous, vous avez donc une longue liste de routes : chaque impasse, routes, pistes cyclable, a un numéro propre. Dans la calculatrice de champ deux options s’offrent à vous. Soit vous avez une colonne “Largeur” où nous mettrons nos valeurs, soit vous n’en avez pas (le plus probable). Si vous n’en avez pas, créez un nouveau champ, donnez-lui un nom (largeur1). Il va falloir demander à QGIS de remplir, en fonction du type de route (fclass), une valeur que vous devez lui spécifier. Pour cela, il y a une expression.
Je vais utiliser cette expression dans l’exemple :
CASE
WHEN “fclass”=’tertiary’ then 5
When “fclass”=’secondary’ then 8
when “fclass” =’primary’ then 10
when “fclass” =’residential’ then 3
when “fclass” =’service’ then 2
when “fclass” =’cycleway’ then 3
when “fclass” =’footway’ then 1
when “fclass” = ‘path’ then 1
when “fclass” = ‘pedestrian’ then 1
when “fclass” =’motorway’ then 15
when “fclass” = ‘trunk_link’ then 1
when “fclass” = ‘Périphérique Extérieur’ then 10
when “fclass” = ‘motorway_link’ then 5
when “fclass” = ‘unclassified’ then 1
when “fclass” = ‘living_street’ then 1
when “fclass” = ‘tertiary_link’ then 2
when “fclass” = ‘track_grade4’ then 3
when “fclass” = ‘track_grade3’ then 2
when “fclass” = ‘track_grade2’ then 2
when “fclass” = ‘track_grade1’ then 1
ELSE ‘’
END
Motorway vaut 15 — living_street vaut 1 (attention, les “” de Medium sont invalides dans QGIS. Il faudra copier/coller dans un éditeur de texte et mettre des guillemets valides). Une fois ceci fait, cliquez sur ok et regarder votre nouvelle colonne. Il devrait y avoir des valeurs, et peut-être une ou deux cellules Null (il manque les secondary_link). Sauvegardez, quittez le mode édition et fermez la fenêtre. Étape suivante : créer des tampons ! Dans la Boîte à outils de traitement, cherchez Tampon et cliquez. Une boîte de dialogue s’ouvre. Vous devez définir la couche source (Route decoupe1), Distance (une boite se trouve à droite, cliquez dessus), Champs d’attributs Type de champs, Largeur (le champ que vous venez de remplir avec l’expression). Cliquez sur Regrouper les résultats et Exécutez. Fermez la fenêtre et zoomer. Vos routes sont devenues… plus larges !
Vous pouvez faire varier les données dans la calculatrice de champ pour que certaines routes soient plus ou moins larges si vous le désirez. Nouvelle étape, faire la différence entre notre couche tampon et la couche commune. Boite à outils de traitement, Différence. Couche source Hazebrouck2, couche de superposition Mis en tampon et exécutez.
La différence génère des îlots. Chacun de ces îlots aura une couleur dans quelques minutes. Mais il y a un hic : la couche différence ne comporte qu’une seule entité géographique. A l’œil, on voit des pâtés de maisons, mais le logiciel ne fonctionne pas ainsi. Ouvrez la table d’attributs pour vérifier. Il n’y a qu’une ligne… Nous allons résoudre ce problème grâce à la Boîte à outils ! Recherchez “De morceaux multiples à morceaux unique”, couche source “Différence” et exécutez. Vous avez une couche “Géométrie simple” en plus.
Superbe. Maintenant, cliquez sur cette couche, ouvrez la table d’attribut, le mode d’édition et la calculatrice de champ. Vous pouvez le voir, il y a de nombreuses entités dans votre fichier Géométrie simple. Nous allons désormais attribuer une valeur à chacune de ces entités. A chacune de ces valeurs correspondra une couleur.
Créez un nouveau champ, donnez-lui un nom, cherchez “rand” dans la barre de recherche, sélectionnez rand(1,10) ou rand(1,5), l’expression apparait à droite et faites OK. Vous pouvez aussi rédiger vous-même rand(1,3) si vous voulez…
Un chiffre aléatoire de 1 à 10 est alors attribué à chaque ligne de votre document. Vérifiez, enregistrez, fermez le mode édition et fermer la fenêtre. Il est maintenant temps de donner des couleurs à notre carte !
Double-cliquez sur Géométrie simple. Les propriétés de votre couche s’ouvrent. Il faut se rendre dans “Symbologie” et cliquez sur Symbole unique. Un volet déroulant apparaît, sélectionnez “Catégorisé”, sélectionnez votre colonne random (où il y a les valeurs aléatoires), palette de couleur ‘Random colors” (on est full random) et enfin “Classer” (au bas de la fenêtre) et appliquer.
Et là, on a… Une carte assez moche ! Mais avec des couleurs !
Pour changer les couleurs, vous pouvez cliquer sur random colors et choisir une palette de couleurs qui va vous convenir. Du bleu, du rouge… Allez-y !
Si vous êtes satisfait : Projet — Nouvelle mise en page (ou contrôle + P). On va générer la carte. L’éditeur de carte s’ouvre. Vous allez créer une carte dans cet espace.
Cliquez sur le bouton “Ajoute une nouvelle couche carte”, étirez le curseur sur l’ensemble de la planche face à vous et après cliquez sur “Ajoute une nouvelle étiquette”. Là, vous pouvez changer la police, la taille, la position… Puis, “Mise en page” et exportez au format qui vous plaît (Image, PDF, SVG).
Maintenant, vous avez une jolie carte !
Il existe beaucoup de variantes à cela :
Les possibilités sont illimitées ! Si vous avez des questions je suis disponible sur Twitter.
Merci de m’avoir lu et amusez-vous bien !