Une carte forestière (II): de la généralisation cartographique

Deuxième article sur la conception d’une carte forestière avec le logiciel QGIS, sur base de données OpenStreetMap. Dans le premier article, j’ai présenté une nouvelle symbologie d’arbres et son utilisation dans la carte. Dans ce deuxième article, je partage quelques techniques de cartographie mobilisées dans cette carte. La carte est accessible en haute résolution ici.

Capture d’écran de la carte. Pour une carte en haute résolution, voir le lien ci-dessus.

Les données utilisées pour cette carte viennent exclusivement d’OpenStreetMap (sauf pour les données de relief – ombrage & courbes de niveaux). Un enjeu majeur pour les cartographes est de réutiliser ces données de manière la plus automatique possible pour créer un rendu cartographique correct et qui donne du sens, et cela à différentes échelles, malgré des contextes géographiques différents, ou tout simplement des données qui varient selon la “patte” du contributeur local.

Autrefois, les cartographes (par exemple de l’Institut Géographique National) faisait des relevés sur le terrain dans le but de lever une carte à une échelle fixe et avec une symbologie déjà établie. Avec OpenStreetMap, plusieurs contributeur·rices ajoutent des données, censées refléter le monde réel, sans nécessairement penser au cartographe qui en fera une carte. Bien sûr, dès qu’on ajoute quelque chose à OpenStreetMap, on va généralement vérifier ce que cela donne sur openstreetmap.org en terme de rendu, mais on utilise pour cela un rendu parmi d’autres (celui d’openstreetmap.org) et dans un format de carte web.

Or, dès lors qu’on veut faire une carte à imprimer à une échelle donnée, on a besoin de faire de la généralisation cartographique. À ma connaissance, il y a peu de techniques de généralisation appliquée aux cartes web. D’abord, parce que le format web permet en un tour de passe-passe de pallier le problème de l’échelle en invitant à zoomer davantage. Ensuite, parce que les cartes web sont avant tout faites par des designers plutôt que des cartographes, et que la cartographie digitale en tant que discipline n’a pas encore digéré les décennies de techniques de généralisation cartographique élaborées pour les cartes à imprimer. Il y a relativement peu de cartes imprimées issues des données OpenStreetMap, et ces techniques y sont aussi peu courantes.

Dans cette carte forestière, j’ai testé quelques techniques de rendu particuliers ou de généralisation cartographique, avec QGIS. Ici le but est d’avoir des techniques les plus automatiques possibles, en évitant autant que possible les ajustements à la main. Quelques focus:

Des étangs au look “1900”

Les étangs ont ce look désuet en répétant plusieurs fois leur contour, de plus en plus fin, et de plus dessiné à l’intérieur. C’est fait directement dans le style de la couche QGIS, en utilisant une succession de lignes progressivement décalées vers le centre.

Orientation des symboles d’arbres et des libellés en fonction des parcelles

C’est à la fois esthétique et utile d’avoir des libellés qui s’orientent en fonction de la forme de la zone dans lesquelles ils s’inscrivent. Utile car cela maximise leur placement. QGIS permet cette option pour les libellés. Par contre, pour les patternes des symboles des arbres qui suivent (presque) la même orientation, c’est calculé à la volée en fonction de l’orientation du rectangle contenant la parcelle (oriented_bbox).

D’autres moyens de placer et d’orienter des libellés

Pour disposer d’un libellé exactement à l’endroit voulu, et pour le faire épouser les courbes voulues, le plus simple est encore de dessiner une ligne qu’il devra être forcé de suivre. Pour les libellés des forêts, pas de placement automatique donc: j’ai dessiné la ligne sur lequel le libellé s’inscrit.

Écarter les talus des chemins

Un vrai exemple de généralisation cartographique avec un déplacement automatique des talus qui sont encore trop près des chemins, malgré la grande échelle (1:9000). Sans ce déplacement, le talus serait partiellement superposé au chemin. Fait avec un algorithme construit avec des fonctions PostGIS, grâce au travail d’un étudiant en géographie stagiaire.

Un rendu dynamique des pertuis

Un clin d’œil aux cartes IGN du siècle passé, où la position des pertuis (le passage des ruisseaux ou fossés sous les voiries) était bien souligné avec ces petits symboles “>” et “<“. A partir des données OSM qui donnent les portions de cours d’eau sous voiries, on calcule leur orientation, le point de départ et d’arrivée, et on a ce qu’il faut pour un rendu dynamique: les entrées et sorties sont orientés, et la longueur du passage sous voirie est variable. Une technique que j’ai d’abord testé dans le style OpenArdenneMap.


Une carte forestière (I): des symboles pour les arbres

Depuis quelques années, je profite de mes virées en forêt pour compléter la cartographie collaborative sur OpenStreetMap, le wikipedia de la carte, dans le bois de Courtelle. Après avoir relevé quasiment toutes les essences forestières plantées dans ce bois, j’ai créé une carte forestière, mettant en exergue 26 essences forestières du massif.

Voilà un aperçu de cette carte, créée avec le logiciel QGIS, sur base des données OpenStreetMap. Vous pouvez télécharger la version en haute résolution en cliquant sur ce lien. La carte est destinée à l’impression dans un format A2.

Capture d’écran de la carte. Pour une carte en haute résolution, voir le lien ci-dessus.

Dans ce premier article, je présente une nouvelle symbologie d’arbres et son utilisation dans la carte. Dans un deuxième article, je partage des techniques de cartographie mobilisées dans cette carte.

Le Bois de Courtelle est une portion de la forêt de Rulles, faisant partie d’un bandeau forestier quasi-continu allant des Ardennes françaises à la forêt d’Anlier, couvrant tout le versant sud du massif ardennais. Comme ailleurs, le bois de Courtelle subit le réchauffement climatique. L’impact le plus visible est un dépérissement marqué de l’épicéa, une essence non indigène mais qui a longtemps été la première essence plantée dans cette région. En conséquence, d’énormes surfaces d’épicéas morts ont été abattues ces dernières années, et ont été récemment replantées¹.

L’abandon forcé de l’épicéa laisse la place à de nouvelles essences: douglas, mélèze, châtaigner, tilleul, cèdre de l’atlas, … Par ailleurs, un ancien garde-forestier avait planté il y a plus de 20 ans une belle diversité de conifères: Sequoia, sapin de Vancouver, sapin de Nordmann, pruche (Tsuga heterophylla). Résultat, la carte compte 19 essences, dont 10 conifères. Toutes les essences ne sont toutefois pas représentées: mettant en évidence les essences plantées ou dominantes, la carte représente surtout la valeur économique de la forêt avant autre chose. Ainsi, plusieurs essences peu ou pas exploitées mais bien présentes ci et là n’y sont pas représentées: aulne, charme, frêne, peuplier tremble, noisetier, saule, sorbier des oiseleurs, pommier et poirier sauvage, … Par ailleurs, des essences exotiques ou particulières en très petit nombre n’y sont pas représentées non plus: chêne vert, noisetier de Byzance, alisier torminal, …

Le challenge de cette carte est de représenter cette diversité d’essences forestières, que ce soit pour les peuplements avec une seule essence ou mélangés. Curieusement, je n’ai pas trouvé de symbologie unifiée par essences d’arbres qui ferait autorité, alors que dans d’autres domaines (cartes géologiques, nautiques, …), il existe des couleurs ou des jeux de symboles codifiés utilisables d’une carte à l’autre. Cela m’a amené à créer un jeu d’icônes pour les essences forestières, générées sur base de formes simples, et inspiré par des conventions cartographiques traditionnellement utilisées pour la représentation des arbres². Ces symboles sont construit:

  • autour d’un cercle ou d’une forme à 3, 4 ou 5 lobes convexes ou concaves
  • avec/sans un point central ou un cercle central
  • avec/sans 1, 2 ou 3 points disposés en cercles autour de la forme centrale
  • avec des lignes branchues disposées autour de la forme centrale (conifères).
Jeu de symboles d’arbres

Au total, cela correspond à 129 symboles uniques.

J’ai attribué les essences d’arbres rencontrés dans le bois de Courtelle à une partie de ces symboles selon une logique qui mélange la proximité phylogénétique des essences (plus proche sont les essences d’arbres entre elles, plus le symbole est proche) et l’aspect général des arbres et/ou de leur feuilles.

Ainsi, pour le hêtre, essence dominante, j’ai choisi la forme la plus simple, le cercle, qui évoque à la fois l’écorce lisse et l’absence de dents aux feuilles.

Pour les chênes, la base du symbole est un cercle de 5 lobes convexes, rappelant la forme multi-lobée des feuilles de chênes. Les différentes espèces de chênes (Quercus robur, Q. rubra) sont ensuite différenciées par l’ajout de points autour de cette forme simple.

Les symboles sont utilisés dans la carte pour représenter les essences dominantes des peuplements ou les essences plantées. Le peuplement majoritaire dans le bois de Courtelle est une hêtraie avec une plus ou moins forte présence de chênes, et d’autres essences accompagnatrices. Pour ce peuplement, le rendu cartographique choisi est un patterne aléatoire de symboles du hêtre et du chêne. Dans le cas des parcelles plantées, les symboles sont organisés selon des lignes droites, qui sont orientées selon la forme générale de la parcelle. Bien souvent, il y a un mélange d’essences: les symboles alternent d’une ligne à l’autre. Quand elle est connue, la date de plantation est indiquée entre parenthèses.

Mélanges d’essences plantées en ligne, douglas-épicéa, et mélèze-douglas.

Dans cette carte, les libellées des essences sont ajoutés automatiquement (pas à la main). Optimiser le placement de libellés est un casse-tête connu pour les cartographes. Ici, il y a 3 niveaux de labellisation des parcelles selon l’essence: Pour les parcelles de taille suffisantes, les libellés sont écrits en entier et sont orientés selon la forme de la parcelle, avec une taille du libellé qui varie en fonction de la surface de la parcelle. Pour les parcelles plus petites, le libellé est abrégé avec les 2 premières lettres de l’essence. Enfin, pour certaines parcelles très petites, j’ai inscrit le symbole au centre de la parcelle (sinon il pouvait être partiellement en-dehors) et utilisé un trait (callout) pour indiquer le libellé.

3 types de libellés des essences forestières: en entier et orienté (Douglas), en abrégé (Ch. – Chataigner, Mé – Mélèze) et avec des traits pour les plus petites parcelles de Sequoia, Pruche et sapin de Nordmann.

J’ai testé d’autres techniques de cartographie avec QGIS, c’est raconté dans ce deuxième article.

¹ Sur les changements d’essences forestières, voilà une vidéo tournée entre autres dans le bois de Courtelle: https://www.youtube.com/watch?v=VVA7ClYrU3s

² Voir à ce sujet les 4 articles de Christoph Hormann sur la représentation des arbres en cartographie: https://imagico.de/blog/en/tree-depiction-in-traditional-maps-and-plans/


OpenArdenneMap hiver 25-26

Note: There is an English version of this post here.

OpenArdenneMap est un style cartographique open-source conçu pour la production de cartes topographiques à imprimer. Basé sur les données
OpenStreetMap, il est décliné sous le logiciel cartographique QGIS et
sous les librairies Mapnik/cartoCSS. Voici la livraison hiver 2025-26.

 

J’ai commencé à travailler sur OpenArdenneMap il y a environ 9 ans. Mon but était de disposer d’un style cartographique pour la production de cartes topographiques de haute qualité destinée à l’impression, en utilisant  principalement les données OpenStreetMap. Le défi principal est d’automatiser la production de cartes, pour limiter autant que possible (sans pour autant les éliminer totalement) les corrections “à la main”. Depuis lors, le style a été utilisé dans plusieurs projets de cartographie, avec des collègues j’ai développé une offre de cartes de randonnées (hiking.osm.be) et j’ai pu tester le déploiement d’un serveur de tuiles sur https://www.nobohan.be/webmaps/oam-tile/.

On pourrait croire que dès lors qu’il permet de produire des cartes  topographiques complètes, le développement d’un style cartographique en
lui-même est arrivé à son terme. Ce n’est pas le cas. Je pense que les  techniques et les pratiques de développement de styles topographiques à
partir des données OpenStreetMap dans leur diversité et leur complexité, n’en sont qu’à leurs débuts. Ces dernières années ont vu l’avènement de nombreux styles cartographiques pour des cartes sur écran, ainsi que l’émergence des tuiles virtuelles et de rendu tri-dimensionnel. Pourtant, des procédés simples de généralisation cartographique et des principes élémentaires de sémantique cartographique ne sont que peu mobilisés dans ces innovations.

Cet hiver, j’ai pu compté sur le travail d’un stagiaire étudiant en master de géographie, Noé Monjoie, pour investiguer notamment ces procédés de généralisation cartographiques avec les données OpenStreetMap. Le but était de tester des algorithmes de transformation des données géographiques pour répondre à certaines problèmes de représentation dans OpenArdenneMap (et dans d’autres styles cartographiques numériques). Une toute petite partie seulement de son travail est intégrée dans cette nouvelle livraison, j’espère que le reste suivra dans les prochaines. En attendant, voici les nouveautés de la version “hiver 2025-26”:

Éviter le chevauchement d’un label d’une couche en fonction d’une autre

Rendu du label de l’étang. Sans l’option “overlay_intersects”, ce label entre en conflit avec le label du cours d’eau qui passe “sous” l’étang

Avec la fonction overlay_intersects(), on peut éviter le
placement de labels d’une couche au-dessus d’une autre. Ici, c’est pour
éviter le placement des labels de cours d’eau dans les plans d’eau.
Pour des raisons de continuité hydrologique, les contributeurs
OpenStreetMap sont en effet encouragés à faire traverser de part et
d’autre les plans d’eau par les cours d’eau qui les alimentent. Comme le
segment de cours d’eau est souvent interrompu à la limite du plan
d’eau, cela cause alors un conflit entre le label du plan d’eau et du
cours d’eau. Conflit qui auparavant aboutissait souvent à l’absence de
labels du plan d’eau.

Rendu d’un symbole de pertuis

Rendu de 4 passages sous voiries (pertuis) de longueurs différentes

Quand un cours d’eau ou un drain passe en-dessous d’une route ou
chemin, on a un pertuis, qui se différencie d’un pont qui offre un
passage plus large au cours d’eau. Cette différence entre un pont et un
pertuis existe dans les données OpenStreetMap (tags `bridge= yes` vs
`tunnel=culvert`). En utilisant l’orientation du segment de cours d’eau
passant dans ce pertuis, et aussi les points d’entrée et de sortie de ce
passage, on arrive à ce rendu indiquant les pertuis, un rendu
directement inspiré des cartes IGN belges des années 1960 à 1980.

Rendu de symbole de pont

Rendu de 3 symboles de ponts et de caillebottis en fonction de leur longueur

En utilisant le même principe, voilà un rendu des passerelles et
caillebotis (différenciation en fonction de leur longueur) qui tient
compte de la longueur de la passerelle.

Groupe d’éléments avec le clustering de QGIS

Rendu avec/sans clustering de symboles pour des tables de picnic

Enfin, une amélioration tirée du travail de Noé, avec un clustering
de certains symboles ponctuels (ici une table de pic-nic) dans QGIS.
Cela était bien géré avec Mapnik mais je n’avais pas encore trouvé le
truc dans QGIS (en réalité simplement un mode de la symbologie des
points)

En termes de perspective, comme dit précédemment le travail de
Noé a ouvert plusieurs possibilités de généralisation des données que
j’espère pouvoir mettre en œuvre. Enfin, QGIS 4 arrive cette année, et
donc forcément les nouveautés apportées par cette nouvelle version
majeure de QGIS vont pouvoir faire évoluer le OpenArdenneMap.

Une carte des éoliennes en Wallonie

En lisant cet article sur le site renouvelle.be, je me suis demandé combien d’éoliennes de Wallonie sont recensées dans OpenStreetMap, et combien ont été ajoutées en 2025.

L’article inventorie 625 éoliennes en Wallonie, avec 36 nouveaux mats installés en 2025.

Dans OpenStreetMap, nous avons:

  • 630 éoliennes,
  • dont 20 ajoutées en 2025 (ne veut pas dire nécessairement installés en 2025)
  • le tout dans 30 parcs éoliens.

Et voici la carte:

La différence est faible. Le plus grand nombre dans OpenStreetMap s’explique sans doute parce que toutes les éoliennes peuvent être renseignées dans OSM, y compris les petites éoliennes domestiques ou d’entreprise (à axe vertical compris). On peut s’attendre aussi que certaines “grandes” éoliennes ne sont pas répertoriées dans OSM. Mais en l’absence de données officielles, difficile d’y voir plus clair.

Pour information, dans OpenStreetMap, on peut spécifier le type d’éolienne et différencier le petit du grand éolien: il y a une étiquette pour la puissance, la hauteur du mat, le type d’axe (horizontal vs vertical). Mais ces informations ne sont pas toujours remplies.

Petite réflexion sur l’échelle: chaque point représentant une éolienne fait 1 mm, correspondant à cette échelle à un diamètre de 1,6 km, ce qui correspond à peu près à la zone d’exclusion autour d’un mat pour les habitations.

OpenArdenneMap: Interview d’OpenCage

OpenCage est une société européenne qui propose des services de géocodage (convertir une adresse en localisation, et vice-versa), mais c’est aussi une des sociétés les actives dans le support et la promotion d’OpenStreetMap. J’ai répondu à leur demande d’interview, qui est sortie ici en anglais mais que je met ici en français.

1. Who are you and what do you do? What got you into OpenStreetMap?
Je travaille dans le domaine de la géomatique et contribue à OpenStreetMap depuis de nombreuses années. J’ai commencé à contribuer à OpenStreetMap en 2012. Puis j’y ai contribué de plus en plus. En 2017, j’ai rejoint la société coopérative Champs-Libres, où je travaille, parce que c’était la seule société qui travaillait avec les données OpenStreetMap en Belgique. Donc on peut dire que j’ai trouvé mon boulot grâce à OpenStreetMap.

J’ai un intérêt pour la cartographie depuis toujours. Après mes études, j’ai commencé à m’intéresser à des logiciels permettant de faire des cartes sur le web, à l’époque MapServer et OpenLayers 1, en 2007… Mon but était de faire des cartes, surtout sur le web, pour montrer des choses qui n’étaient pas très visibles. Ainsi, j’ai fait une carte des potagers communautaires à Bruxelles en 2010. Puis j’ai lentement vu la montée d’OpenStreetMap. Mais au début, je n’y croyais pas: la carte était principalement vide et avec une mauvaise précision, je ne pensais pas qu’OpenStreetMap serait un jour assez mature pour faire de belles cartes. J’avais tort.

Aujourd’hui je contribue activement à OpenStreetMap et je suis aussi membre de l’ASBL OpenStreetMap – Belgique. Je rencontre souvent d’autres contributeurs en Belgique, on forme une super-communauté: des gens ouverts, passionnés et sans prise de tête! Je co-organise régulièrement des rencontres OpenStreetMap dans ma région et je fais du lobbying pour OpenStreetMap un peu partout!


2. What is the OpenArdenneMap project and why was it created? Who uses it? How?
Quand j’ai commencé à contribuer à OpenStreetMap, assez rapidement j’ai voulu générer des cartes topographiques. J’ai d’abord vu le projet OpenTopoMap, puis un projet visant à reproduire les cartes de l’institut géographique national en France. Au début, mon challenge était de pouvoir réaliser des cartes ressemblant à celles de l’institut géographique national belge. C’était avant tout un challenge technique pour moi, comme je commençais seulement à apprendre à coder. J’ai longtemps chercher quel pouvait être le meilleur logiciel pour cela. J’ai d’abord essayé avec MapServer, que je connaissais. Puis je suis passé au logiciel Mapnik, qui est le logiciel cartographique utilisé pour générer le style de base disponible sur openstreetmap.org et sur des tas d’autres projets cartographiques, dont OpenTopoMap. Très récemment, en 2022, j’ai traduit le style OpenArdenneMap en QGIS.
Aujourd’hui, OpenArdenneMap est un style cartographique utilisable avec Mapnik ou QGIS, les 2 étant maintenus en parallèle sans être 100% équivalent. OpenArdenneMap est un style destiné à l’impression, et non pas pour des cartes web. La principale différence d’un style de carte à imprimer avec des cartes web est que les labels sont environ 2 fois plus grands que sur une carte web, mais il y a d’autres subtilités, comme le choix des couleurs, le contraste, … J’utilise ce style avec mes collègues pour générer des cartes à télécharger sur le site hiking.osm.be. Ces cartes sont proposées librement au téléchargement et une contribution financière est demandée à ceux qui l’utilisent. Il y a un bon potentiel commercial avec ce projet hiking.osm.be, càd de distribuer des cartes imprimées dans divers endroits touristiques, mais on n’a pas encore pris le temps de développer cette offre.
Sinon, j’ai découvert que le style a déjà été utilisé par des opérateurs touristiques en Belgique pour imprimer des cartes sur des panneaux touristiques. Enfin, je l’utilise de temps en temps pour créer des cartes grand-format pour des amis ou la famille, ou juste pour moi comme une grande carte de la Semois de 2 sur 1m. Et il y a aussi un serveur de tuiles OpenArdenneMap, même si le style est avant tout destiné pour l’impression, pas pour le web.

3. What are the unique challenges and pleasures of mapping hiking maps, especially those designed to be printed? What aspects of the projects should the rest of the world be aware of?
Il y a d’énormes challenges à réaliser des cartes destinées à l’impression à partir de données OpenStreetMap, et je pense que beaucoup d’entre eux n’ont pas encore été abordés à l’heure actuelle. Quand vous regardez à d’anciennes cartes topographiques, elles sont généralement d’une grande qualité graphique et elles ont une une grande force esthétique. Pour moi, les cartes topographiques générées à partir de données géographiques n’ont pas la même puissance, pour toutes sortes de raisons.
Clairement, il y a eu une rupture quand les cartographes ont créé des cartes à partir de données géographiques au lieu de les dessiner sur du papier. Il y a une dizaine d’années, j’ai appris que les cartographes de l’IGN belge ne digitalisaient pas nécessairement les éléments sur des images aériennes selon leur localisation exacte mais selon “un bon sens cartographique”: cela signifie qu’ils prenaient certaines libertés avec la position de certains éléments, pour d’emblée penser à la création de la carte.
Dans OpenStreetMap, il y a ce fameux principe: “Don’t map for the renderer”. Bien sûr je le comprends, mais si on veut faire de la cartographie, on veut justement cartographier pour un beau rendu. Mon leitmotif pour le futur d’OpenArdenneMap est justement celui-là: trouver des techniques pour passer d’une base de données géographiques à une carte imprimée. Cela implique des tas de techniques qui sont très peu mobilisées dans la communauté OpenStreetMap actuellement: généralisation cartographique, déplacement, …, bref, toutes les techniques cartographiques qui ont été théorisées et mises en pratiques tout au long du développement de la cartographie.
En ce sens, je rejoins l’analyse de Christophe Hormann: même si le style “carto” est un fabuleux travail de cartographie et probablement le plus avancé style cartographique construit à partir des données d’OpenStreetMap, il est encore très loin des meilleures pratiques de cartographie. Et c’est valable pour tous les styles dérivés d’OpenStreetMap avec Mapnik ou QGIS, ils ne parviennent pas à réaliser des cartes topographiques de grande qualité. Bien sûr, on pourra arguer qu’il faut toujours une passe manuelle pour peaufiner une carte faite avec un style automatique, et c’est probablement toujours vrai, même à l’heure de l’intelligence artificielle. Mais à part cela, il manque clairement des bases de travail cartographique qui ne sont toujours pas appliqués dans les styles, ni même implémentés dans des algorithmes. C’est un projet à long terme que j’aimerais d’ailleurs mener: une revue de l’utilisation des techniques de cartographies avancées dans l’écosystème OpenStreetMap.
Pour revenir à OpenArdenneMap, comme son nom l’indique, il est destiné à une région en particulier: l’Ardenne. Un ami m’a une fois demandé de lui sortir une carte de Bretagne avec OpenArdenneMap puis il s’est plaint que la mer n’apparaissait pas. Normal, il n’y a pas de mer en Ardenne. Loin de tout chauvinisme ou nationalisme, l’idée est de faire un rendu propre à une région, avec ses caractéristiques, ses objets particuliers, et bien sûr cela peut évoluer dans le temps. Par exemple, il y a un rendu spécifique dans OpenArdenneMap pour les plantations de sapins de Noël, parce que celles-ci couvrent une surface importante en Ardenne, peut-être 10% de la surface agricole. Mais c’est récent, il est possible que dans quelques dizaines d’années, il n’y en ai plus.
Un désavantage des cartes web actuelles est qu’on assiste à une uniformisation des styles, avec des styles qui peuvent être designés pour un environnement californien puis appliqué en Europe: cela n’a pas de sens. Chaque région a sa richesse géographique, fruit de l’évolution des des paysages naturels habités par les communautés humaines qui y ont vécus. Et donc chaque région a droit à ses propres styles, qui mettent en valeur ses caractéristiques.

4. What have you learned? What is the best way for people to do something similar in their city or region or country?
J’essaye de collectionner des cartes de ma région et d’ailleurs, et de les comparer. Cela me donne des idées pour développer de nouvelles choses dans mon style cartographique. OpenArdenneMap est un style plutôt “retro” mais j’aime aussi ajouter des éléments plus récents du paysage, comme des éoliennes. Je ne le fais pas assez, mais j’essaye de suivre aussi ce qui se fait dans d’autres projets de cartographie comme OpenTopoMap ou le style “carto” d’osm.org. Par exemple, j’ai repris l’idée d’orienter des libellés de noms de plans d’eau suivant la forme du plan d’eau, de manière automatique. Ou d’orienter les terrains de sport et les symboles des églises selon leur orientation réelle sur le terrain.
Un style cartographique touche à beaucoup de choses: par exemple on peut passer du temps à choisir des fontes adaptées. Pour OpenArdenneMap, j’ai choisi une fonte faite en Belgique via un magazine, Medor.coop, et puis j’ai finalement rencontré son concepteur, qui est aussi amateur de cartographie. C’est la fonte Alfphabet, qui reproduit une fonte utilisée dans les années 1950. Dans OpenArdenneMap, j’essaye d’afficher pas mal de libellés, donc la fonte est importante.
J’aime aussi dessiner les symboles et les symboles des patterns. Je ne suis pas très bon pour dessiner en général, et je ne me vois pas créer des logos, mais pour des symboles cartographique, je trouve cela assez facile.
Enfin il y a l’impression. C’est tout un art aussi! J’ai appris la différence entre l’impression _offset_ et digitale. Les cartes anciennes étaient souvent imprimées en _offset_ avec des vraies couleurs: cela augmente leur qualité. C’est une raison pour laquelle OpenArdenneMap n’a que 3 couleurs + le noir: cela permet une impression _offset_ avec des vraies couleurs.
Pour celles et ceux qui veulent commencer un style cartographique, je conseille de partir d’un style existant (sous Mapnik ou QGIS) puis de changer progressivement les couleurs, les textures, ce qu’on affiche et ce qu’on n’affiche pas, … Si vous voulez définir un style disponible pour plusieurs échelles, partir d’une page blanche prend énormément de temps.

5. What steps could the global OpenStreetMap community take to help support projects like this?

J’adore voir des nouveaux projets cartographiques voir le jour. Et il faut certainement encore maintenir des anciens, en tout cas il y a du potentiel d’amélioration même dans des styles anciens. Comme dit plus haut, il manque des techniques et des algorithmes qui permettent de faire de la généralisation cartographique, précisément avec les données OpenStreetMap. Un challenge des données OpenStreetMap est leur manque de complétude et d’uniformité: parfois, on doit refuser de représenter quelque chose sur une carte si cette chose n’est pas cartographiée partout. Par exemple, je ne vais pas représenter des arbres isolés si la distribution de ceux-ci dans mon emprise de carte est trop irrégulière. Mais pour ce genre de problèmes, c’est plutôt au cartographe de trouver ou développer des algorithmes de préparation des données, de généralisation cartographique.
Je pense qu’il y a un manque de documentation des projets cartographiques existants. En même temps, on manque sans doute de recul sur la création de cartes avec OpenStreetMap.

6. Last year OpenStreetMap celebrated 20 years. As someone who has been very active in OpenStreetMap for a long time, where do you think the project will be in another 20 years?

Je suis certain que le projet sera encore là, avec sa communauté. Il y aura peut-être des difficultés à recruter de nouveaux contributeurs, mais je n’en suis pas si sûr. Déjà aujourd’hui, la plupart des gens utilisent OpenStreetMap sans le savoir, parce que les données OSM sont intégrées dans des tas d’applications différentes. Cela va certainement s’amplifier à l’avenir. Peut-être que des pans entiers de l’utilisation d’OSM seront supplantés par d’autres bases de données, par exemple pour le réseau routier, les adresses ou les POIs. Mais le projet sera toujours là pour les amateurs de cartographie. Il pourrait être davantage réservé aux hobbyistes.
En Belgique, nous sommes de plus en plus sollicités par des pouvoirs publics qui sont intéressé à contribuer à OpenStreetMap, par exemple par des communes qui nous signalent des changements dans le réseau routier. On essaye aussi que les pouvoirs publics réutilisent les données, et il y a de plus en plus de cas. Je suis certain que cela va encore se développer en Belgique.

OpenArdenneMap hiver 24-25

Note: There is an English version of this post on https://www.osm.org/user/juminet/diary.

Depuis fin 2019, le style cartographique OpenArdenneMap est mis à jour suivant un cycle semestriel de livraison de temps en temps. OpenArdenneMap est un style cartographique open-source pour des cartes topographiques sur base des données OpenStreetMap. La livraison “hiver 2024-25” vient de sortir.

OpenArdenneMap paysage d'hiver

C’est surtout des petites améliorations dans le style QGIS qui ont été apportées. OpenArdenneMap est en effet disponible pour Mapnik (programme servant principalement à faire des serveurs de tuiles) et QGIS (programme plus généraliste de cartographie).

En particulier, il y a eu l’ajout de la couche “marked trails” (circuit balisés) qui manquait encore dans le style QGIS. Pour ajouter la balise sur la carte (l’équivalent du _shield_ dans Mapnik), on utilise une combinaison de 2 “Marker Line”, avec la superposition d’un marker SVG (SVG Marker) pour la balise et d’un caractère (Font Marker) pour le chiffre souvent inscrit dans la balise.

Il y a aussi l’ajout d’un layout dans le fichier de projet QGIS, ce qui a permis de réactualiser une première carte sur hiking.osm.be, pour la carte d’Herbeumont.

This image has an empty alt attribute; its file name is Herbeumont-OAM-20000-A3-724x1024.jpg

A comparer, la version faite avec Mapnik il y a quelques années, et celle-ci faite avec QGIS.

Bientôt encore plus de cartes sur https://hiking.osm.be/ !

OpenArdenneMap – été 2022

Depuis fin 2019, le style cartographique OpenArdenneMap est mis à jour suivant un cycle semestriel de livraison! OpenArdenneMap est un style cartographique open-source pour des cartes topographiques sur base des données OpenStreetMap. La livraison “summer-2022” vient de sortir.

Pas beaucoup de nouveautés dans le style en lui-même, seulement un symbole et un libellé pour les sommets.

Il y a maintenant un fichier pompeusement appelé CARTOGRAPHY qui tente d’énumérer les principes cartographiques du style (un peu comme celui sur le style osm-carto).

Le style arrivant à une certaine maturité, il est probable qu’il évolue peu dans les prochaines années. Néanmoins, il existe un champ de recherche et de développement énorme pour automatiser des techniques de généralisation cartographique à utiliser avec des données OpenStreetMap pour produire des cartes. C’est la future direction que j’aimerais faire prendre au projet.

Enfin, des cartes 1:20,000 réalisée avec le style OpenArdenneMap au format A3 sont toujours disponibles en téléchargement sur https://hiking.osm.be/. Certaines de ces cartes sont retouchées à la main, pour une qualité cartographique accrue.

OpenArdenneMap winter2021-22

Depuis fin 2019, le style cartographique OpenArdenneMap est mis à jour suivant un cycle semestriel de livraison! OpenArdenneMap est un style cartographique open-source pour des cartes topographiques sur base des données OpenStreetMap. La livraison “winter2021-22” vient de sortir. Voici les principaux changements de cette dernière version.

openardennemap - named cross

Les changements sont listés dans le fichier CHANGELOG: plus de labels affichés (fermes, nom des croix), un rendu des attractions touristiques, …

openardennemap tourism attraction

Une amélioration technique également: la génération des cartes avec docker a été mise à jour: la précédente image docker-mapnik ne pouvant plus compiler mapnik, elle a été remplacée par une autre. Les instructions sont dans docker/README.md.

Depuis juin 2021, des cartes 1:20,000 réalisée avec le style OpenArdenneMap au format A3 sont disponibles en téléchargement sur https://hiking.osm.be/. Certaines de ces cartes sont retouchées à la main, pour une qualité cartographique accrue.

OpenArdenneMap – version été 2021

Depuis fin 2019, le style cartographique OpenArdenneMap est mis à jour suivant un cycle de livraison! OpenArdenneMap est un style cartographique open-source pour des cartes topographiques sur base des données OpenStreetMap. La livraison “été 2021” vient de sortir. Voici les principaux changements de cette dernière version.

Les changements sont listés dans le fichier CHANGELOG. Parmi ceux de cette version il y a quelques réglages de bugs (pour les labels courbes des plans d’eau), une meilleure distinction entre les types de routes primaire et secondaires, une amélioration des règles de labels des zones forestières en fonction de leur surface et d’autres améliorations mineures.

Pour les labels des zones forestières, une approche simple a été mise en place. La taille du label est fonction de la surface de la zone, mais seulement pour les forêts plus grandes que 500 ha. Pour les forêts plus petites, la taille ne dépend pas de la surface, avec 2 tailles différentes de labels (respectivement pour les forêts inférieures et supérieures à 50 ha).

Une nouvelle fonctionnalité, qui n’est pas une amélioration du style proprement dit, est de pouvoir décomposer les sorties cartographiques en labels et en le reste de la carte, afin de pouvoir déplacer à la main certains labels. Pourquoi séparer les labels du reste? Simplement parce que les fichiers vectoriels des cartes (SVG) sont si lourds qu’il est difficile de les éditer dans un logiciel de dessin vectoriel comme Inkscape, alors qu’une couche de labels peut être plus facilement éditée (notamment, les objets peuvent être dégroupés). Cette possibilité permet de déplacer les labels de la carte à la main. Malgré les règles avancées de Mapnik pour la disposition des labels, un placement manuel des labels reste nécessaire en bien des situations.

Cette fonctionnalité est utilisée pour la conception des cartes hiking-osm-be, un nouveau service de cartes de randonnées à imprimer, mettant en évidence les itinéraires balisés officiels. Cette offre de cartes est mise en œuvre par Champs-Libres et l’atelier cartographique avec le soutien d’OpenStreetMap Belgique. A ce jour, une quinzaine de cartes au format A3 à l’échelle 1:20000 ont été produites en Belgique et ce catalogue est amené à s’étoffer à l’avenir. Pour obtenir ces cartes et en commander de nouvelles, rendez-vous sur hiking.osm.be!

Une carte de la Semois

Un article pour présenter une carte de la Semois au 1/42,000 imprimée sur un support 200 x 70 cm: quelques aspects de cartographie et des éléments de la recette pour effectuer une rotation aux données géographiques avant leur mise en forme cartographique.

Une photo de la carte Semoy·ois imprimée

Dernier projet perso: une carte de la Semois grand format, à une échelle 1:42,000, ce qui donne une carte imprimée sur un grand rectangle de 2 mètres de haut sur 70 cm de large. Avec les données d’OpenStreetMap bien sûr, complétées par les bâtiments du PICC en Wallonie et puis une représentation du relief faite en combinant des données de relief de Wallonie, du GD de Luxembourg et européenne.

Bouillon: la carte n’est pas orientée au Nord (photographie de la carte imprimée)

La carte montre la Semois de sa source à son embouchure, selon l’orientation générale de la rivière, donc en orientant la carte selon un angle particulier. Prenant sa source en Lorraine, la rivière attaque curieusement de biais le massif ardennais qu’elle finit par percer pour retrouver la Meuse. Cette belle rivière trace son chemin avec de nombreux méandres mais en maintenant un cap relativement rectiligne. Sur l’emprise de la carte, des portions de 3 pays: Belgique, France, Luxembourg.

On passe de la Belgique (où la rivière prend le nom de Semois) à la France (et devient Semoy), sans passage de frontière dans le style cartographique (photographie de la carte imprimée)

Cartographie

Aperçu de la carte à Cugnon

Le style de la carte est celui d’OpenArdenneMap, mon projet de style pour des cartes topographiques à grande échelle. OpenArdenneMap est un style spécifiquement développé pour des cartes imprimées, avec un faible nombre de couleurs différentes, des contrastes clairs, et qui fait la part belle aux labels (basés sur la fonte Alfphabet), dans la tradition des cartes topographiques de l’IGN belge des années 1960 à 1980. Parmi les dernières nouveautés du style, il y a l’écriture en courbe de certains labels de plans d’eau. Pour cette carte, la Semois est soulignée par un trait bleu plus prononcé que ses affluents ou que les autres rivières apparaissant sur la carte. Enfin, le relief est représenté par un ombrage (hillshade) se superposant à la carte.

… à Jamoigne

Ici, avec une échelle de 1:42,000, on atteint les limites du style cartographique, plutôt défini pour du 1:20,000. En outre, l’absence de généralisation des données géographiques (par exemple, pas de déplacements des lignes trop proches) peut poser problème à certains endroits. La carte est générée automatiquement: elle n’a pas été retravaillée manuellement. Pour un meilleur rendu, il faudrait éventuellement déplacer des labels à la main, supprimer des superpositions d’éléments, …

Impression & collage

Après la mise en page du fichier, le fichier prêt à imprimer était un PDF rasterisé à 500 dpi. L’impression a été faite en qualité optimale sur du papier épais (120g/m² ou 160g/m²).

Puis la carte a été collée sur un support fait d’une planche de panneau MDF de 5 mm peint en noir. Pour le collage, j’ai utilisé une colle vinylique étalée en une fine couche avec un petit rouleau à peindre. Grâce à l’épaisseur du papier, le papier n’a pas trop gondolé (juste un peu), mais j’ai bien passé une heure à coller et à presser.

Le fichier source de cette carte est disponible en téléchargement libre sous licence Common Creative CC-BY-SA ici.

Préparation des données

Pour faire tenir le cours de la Semois dans un rectangle, la carte n’est pas orientée vers le Nord. Mapnik (i.e., le programme qui a généré la carte avec le style OpenArdenneMap) n’est pas capable d’effectuer une rotation de la carte selon une autre orientation que le Nord. Dès lors qu’on veut faire une carte avec une orientation non-conventionnelle, on peut soit effectuer une rotation de chaque label et symboles, ou simplement effectuer une rotation de toutes les données au préalable. C’est cette dernière option que j’ai choisie.

Rotation des données OpenStreetMap

Les données OpenStreetMap sont importées à l’aide du programme osm2pgsql dans une base de données avec PostGIS. On peut facilement effectuer une rotation de toutes les données avec la fonction ST_Rotate en indiquant un angle (en radian) et un centre (ici, en coordonnées EPSG:3857). Il faut donc précalculer cet angle et le centre de la carte. Par exemple, pour la table planet_osm_line:

CREATE TABLE planet_osm_line_semoy AS
SELECT *, ST_ROTATE(way, -1.3249, 587488, 6406205) AS rotated_way FROM planet_osm_line;

Rotation du relief (hillshade)

Pour l’effet d’ombrage du relief, l’approche a été d’effectuer une rotation du modèle numérique de terrain (MNT, aka DEM) avant de calculer l’ombrage.

1) D’abord, fusionner les MNT de Belgique, du GD Lux et de France:

gdal_merge.py -of GTiff -co BIGTIFF=YES -co TILED=YES -o dem_semoy.tif eudem_semoy_31370.tif dem_be_semoy_31370.tif dem_lux_semoy_31370.tif

2) Obtenir le fichier tfw du fichier tif pour faire une rotation “à la main”

gdal_translate -of GTiff -co profile=baseline -co tfw=yes dem_semoy.tif dem_semoy_baseline.tif

3) Modifier le fichier tfw

En transformant les valeurs du fichier tfw d’un raster au format GeoTiff, on peut lui appliquer une rotation (voir ce lien). Soit les valeurs A, B, C, D, E et F du fichier tfw, on applique une rotation d’un angle alpha (radians) en transformant ces valeurs comme suit:

(A')=A*cos(alpha)
(B')=A*sin(alpha)
(C')=-D*sin(alpha)
(D')=D*cos(alpha)
(E')=E
(F')=F 

4) Reprojection
Appliquer une reprojection avec gdalwarp vers une résolution plus basse pour gommer les artefacts de la rotation et le mettre dans un autre système de coordonnées.

gdalwarp -t_srs EPSG:3857 -r cubicspline -tr 25 25 dem_semoy_31370_clipped_baseline_rotated.tif dem_semoy_3857_clipped_rotated_warp_cubicspline_25x25.tif


5) Créer l’ombrage de relief (hillshade)

gdaldem hillshade dem_semoy_3857_clipped_rotated_warp_cubicspline_25x25.tif hillshade_dem_semoy_3857_rotated_warp.tif -co BIGTIFF=YES -co TILED=YES -co COMPRESS=DEFLATE -of GTiff -z 1.0 -s 0.5 -multidirectional


6) Appliquer une palette de couleur au raster hillshade

gdaldem color-relief hillshade_dem_semoy_3857_rotated_warp.tif -alpha shade.ramp hillshade_dem_semoy_3857_rotated_warp_semi_transparent.tif 


shade.ramp est un fichier de reclassification des valeurs des pixels du raster comme suit:

0 0 0 0 0
1 0 0 0 220
64 0 0 0 192
128 0 0 0 140
150 0 0 0 96
168 0 0 0 0
190 255 255 255 0
220 255 255 255 96
255 255 255 255 128