Le package mapsf

Le package mapsf vient tout juste d’arriver sur le CRAN.
mapsf est un package de cartographie thématique léger et ergonomique.

Le package est accompagné d’un site web et d’une vignette.

This post is available in english here.

Principales fonctionnalités du package

mf_map()

La fonction principale de mapsf est mf_map(). Cette unique fonction permet de réaliser un grand nombre de types de cartes. 

Le premier argument, x, est destiné à recevoir un objet sf (de points, lignes ou polygones). Le deuxième argument, var, doit recevoir le nom de la variable à représenter. Le troisième argument, type, définira le type de carte à créer.

Exemple de carte choroplèthe:

Voici un exemple de chaque type de carte :

L’habillage

Plusieurs fonctions sont dédiées à l’affichage d’éléments d’habillage de la carte. Le script suivant en mobilise la plupart :

Thèmes

Il est possible de choisir un thème graphique pour les cartes grâce à la fonction mf_theme().

Les thèmes proposés par mapsf sont visibles sur les cartes suivantes:

Il est possible de créer ses propres thèmes. Les paramètres des thèmes sont la couleur de fond et la couleur principale, la taille des marges, et plusieurs paramètres du titre.

Les cartons (ou insets)

Il est possible de créer des cartons cartographiques avec la fonction mf_inset_on().

Il est aussi possible en utilisant mf_inset_on(x = "worldmap") puis mf_worldmap() d’afficher une carte de situation dans le carton:

Dans un carton on peut afficher ce que l’on veut, pas uniquement une carte. En fait une fenêtre graphique est affichée dans la fenêtre graphique courante :

Export des cartes

La fonction mf_init() permet, entre autre, d’initialiser une carte centrée sur un objet géographique.

Notons l’utilisation du paramètre expandBB qui permet d’étendre l’espace de la carte sur l’un (ou plusieurs) de ces côtés. Ce paramètre peut être utile pour réserver un espace pour les légendes par exemple.

Cette fonction permet également d’exporter les cartes aux formats PNG et SVG. Le ratio hauteur/largeur de la figure produite respecte celui de l’objet géographique (x). Cela permet de produire des cartes bien centrées et sans marges excessives.

Sucre syntaxique

Les fonctions prenant en entrée un objet sf sont pour l’essentiel compatible avec la syntaxe pipe (le %>% de magrittr, et fort probablement le futur |>)  :

Développement

Le développement du package se fait sur la plateforme GitHub.
Ce projet utilise les conventional commits qui forcent la création d’un historique claire et explicite des étapes de développement. 
Contrairement à cartography, mapsf ne devrait pas être enrichi de méthodes de représentation exotiques (cartes en gaufres, cartes en grilles régulières, triangles proportionnels, import de tuiles OpenStreetMap, cartes de discontinuités…). Si ces fonctionnalités se révèle nécessaires elle feront sûrement l’objet d’un ou plusieurs packages complémentaires (voir par exemple maptiles pour l’import de tuiles cartographiques raster).

Et cartography alors ?

La première version de cartography est sortie en 2015. Cette version était faite pour interagir avec les fonctions et objets des packages sp, rgdal et rgeos (sf n’existait pas encore). La version 2.0.0 a introduit la possibilité de cartographier des objets sf. La majorité du code a aussi été adaptée pour utiliser sf plutôt que la trinité sp, rgdal, rgeos. L’API du package (fonctions, noms des fonctions, noms des arguments) est restée a peu près identique.

Certains choix initiaux finissent par peser sur le développement et la maintenance du package (utilisation du camelCase, des noms de fonctions et d’arguments super longs et parfois peu intuitifs). La nécessité de backward compatibility (cartography a quand même été téléchargé au moins 132000 fois sur le CRAN de RStudio) tend a freiner le développement de nouvelles fonctionnalités. C’est pour ces raisons que j’ai décidé de créer un successeur à cartography.

Que va donc devenir cartography?
A partir de sa prochaine version, cartography entre en mode maintenance. Cela signifie que le package continuera a fonctionner indéfiniment sans ajout de nouvelles fonctionnalités. Les bugs seront corrigés et le package restera sur le CRAN.
Les projets utilisant déjà cartography peuvent continuer à l’utiliser mais j’incite les nouveaux projets à utiliser plutôt mapsf.
La vignette de mapsf propose un tableau de correspondance des fonctions.

Remerciements

Je tiens à remercier Hugues Pecout pour son magnifique logo hexagonale et ses remarques pertinentes sur l’ergonomie du package, Diego Hernangómez pour son travail sur le site web du package, et bien sûr les auteurs et contributeurs du package sf et des librairies indispensables GEOS, GDAL et PROJ.


Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.