Dessinez des cartes administratives avec GADMTools

Parfois, les hasards font vraiment bien les choses ! Il y a quelques mois, Jean Pierre Decorps, développeur de package R dans le domaine de l’épidémiologie, chez Epiconcept, m’a contacté pour m’informer de la publication prochaine de la nouvelle version de son package GAMTools. Il s’agit d’un package permettant de manipuler, d’assembler et d’exporter des cartes à partir des fichiers shapefile du projet GADM (dont le but est de réaliser des cartes administratives de tous les pays du monde, à différents niveau de sous division). Lorsque j’ai reçu ce mail, je n’avais jamais fait de cartographie avec R, alors ça m’a paru un peu obscure.

Et puis quelques semaines plus tard, un premier client m’a demandé de réaliser une carte sous R. J’avais alors utilisé leaflet, mais surtout ça m’a permis de me familiariser avec les fichiers shapefile (le fichier qui contiennent les coordonnées des contours). Et puis encore quelques semaines plus tard, dans le cadre d’une prestation en épidémiologie, un autre client m’a demandé de l’aider à réaliser une carte des taux d’incidence d’une infection virale, et en m’orientant vers le package GADMTools ! J’ai donc exploré ce package, et je l’ai trouvé vraiment très intéressant et très pratique. Et comme vous le verrez dans la troisième partie de cet article, vous pouvez l‘utiliser dans d’autres domaines que l’épidémiologie !

 

1. Les différents niveaux de cartes administratives

Comme expliqué en introduction, le package GADMTools permet de réaliser des cartes administratives de n’importe quel pays ou région du monde très facilement. La première étape consiste à charger le fichier shapefile du pays désiré, en utilisant la fonction gadm_sf_loadCountries(). Le niveau de sous-division souhaité (région, département etc…) peut être choisi via l’argument level.

Les codes des pays et les différents niveaux de découpage disponibles pour chacun d’eux sont décrits dans ce document .

 

1.1 Cartes administratives globales (level=0)

Par exemple, pour la France :

 

Le fichier shapefile (le fichier qui contient les coordonnées des contours) de la France (code “FRA”) est chargé dans le working directory, par la fonction gadm_sf_loadCountries().

L’argument level=0 correspond au pays sélectionné dans son ensemble, c’est à dire sans découpage supplémentaire (par région par exemple).

La fonction gadm_plot() permet simplement plotter le fichier shapefile.

 

 1.2 Cartes administratives des régions (level=1)

Pour obtenir la carte administrative de  la  France avec un découpage par région, il suffit d’indiquer level=1 :

 

 

Très pratique pour faire réviser les régions de France aux enfants !

Remarque : A la place de la fonction gadm_plot(), on peut utiliser la fonction plot_map() :

 

 

1.3 Cartes administratives des départements (level=2)

Pour obtenir la carte administrative de la France avec un découpage par département, il suffit d’indiquer level=2 :

 

Le package est tidyverse compatible, si bien qu’on peut utiliser aussi cette syntaxe:

 

On peut ajouter :

un titre, en utilisant l’argument title au sein de la fonction gadm_plot(),
– une flèche nord avec la fonction gadm_showNorth(),
– une échelle avec la fonction gadm_showScale()

 

 

 

Et on peut aussi ajouter des points. Pour cela, on crée un data.frame avec les latitudes et longitudes où l’on souhaite placer les points. Par exemple, ici l’Isère et les Alpes de Haute Provence :

J’ai trouvé les coordonnées gps ici.

 

On peut également réaliser une carte administrative de plusieurs pays  :

 

 

2.Dessiner des portions de cartes administratives

Le package GADMTools permet de faire des subsets de cartes administratives, en utilisant la fonction gadm_subset(). Par exemple pour représenter les départements de la région PACA :

 

 

Utiliser level=2 lors du chargement du fichier shapefile, permet d’obtenir un fichier comportant les contours des départements. En revanche, on utilise level=1 dans la fonction gadm_subset() afin de faire un découpage au niveau de la région.

Les labels (étiquettes) des régions, employées par le package GADMTools peuvent être obtenues avec cette syntaxe :

 

Pour obtenir les labels de départements :

etc..

Le package permet également d’ajouter un fond de carte openstreet map. Pour plus d’info, consultez la vignette du package.

 

3. Dessiner des cartes choroplèthes

Une carte choroplèthe, c’est “une carte thématique où les régions sont colorées ou remplies d’un motif qui montre une mesure statistique, tels la densité de population ou le revenu par habitant. Ce type de carte facilite la comparaison d’une mesure statistique d’une région à l’autre ou montre la variabilité de celle-ci pour une région donnée.” (cf. Wikipedia).

Récemment, sur le ton de la plaisanterie, j’ai dit à des proches que j’allais m’acheter un Bubbly ou une Dax :

 

Du coup, je me suis dit que ça pourrait être intéressant de représenter de nombre de vols de deux roues en France, par département, au cours du dernier mois (enfin le dernier mois dont les données sont disponibles). Pour cela, je suis allée chercher les données des chiffres départementaux mensuels relatifs aux crimes et délits enregistrés par les services de police et de gendarmerie depuis janvier 1996, disponibles sur data.gouv.fr.

 Il s’agit du fichier de données utilisé dans mon article “Importer automatiquement les feuilles d’un fichier Excel dans R“.

 

 

Le fichier Excel importé, nommé “tableaux-4001-ts” contient les chiffes d’une centaines de délits recensés entre janvier 2000 et mars 2019. La première feuille contient les données pour l’ensemble de la France, la seconde feuille contient les données de la France métropolitaine, et les feuilles suivantes contiennent les données pour chaque département, individuellement :

 

3.1 Importation des données des délits dans R

Le code ci dessous, permet de lire toutes les feuilles du fichier Excel, et de compiler ensemble les données de tous les départements (en ajoutant le numéro de chaque département). Pour plus détail sur ce code, consulter mon article “Importer automatiquement les feuilles d’un fichier Excel dans R“.

 

3.2 Sélection des données

Il s’agit de conserver :

les données du dernier mois disponible (ici mars 2019)
– les données concernant les vols de deux roues (correspond à l’Index 36)
– la variable contenant le numéro du département

 

 

3.3 Ajout des noms des départements

3.3.1 Format des labels employées par GADMTools :

Pour réaliser une carte chloropèthe, mon fichier contenant des données numérique (ici vol2roues), doit contenir une variable avec le nom des départements, tels qu’ils existent dans les fichiers shapefile importées par le package GADMtools.

Comme expliqué précédemment, ces noms sont accessibles via :

 

 3.3.2 Fichier contenant les noms et les numéro des départements

J’ai trouvé sur l’INSEE un fichier Excel avec les estimations de population par département, sexe et grande classe d’âge de 1975 à 2019.

 

J’ai simplement copier-coller les deux premières colonnes dans un fichier csv (que j’ai appelé list_dep), et je l’ai importé dans R :

 

 

3.3.3 jointure des deux fichiers

Il s’agit d’ajouter le nom des départements aux données vol2roues, en utilisant une jointure gauche (left_join). Pour plus de détails, vous pouvez consulter cet article.

 

 

3.4 carte du nombre de vol en mars 2019

 

Je vois qu’on ne s’en sort pas trop mal dans les Alpes de Haute Provence !

Bien sur, on pourrait rapporter, pour chaque département, le nombre de vols à la taille de la population, mais c’était juste à titre d’exemple.

 

Conclusion :

Et vous, que pensez vous de ce package GADMTools ?

Est ce que je vous ai convaincu de son utilité ?

Une dernière question : si j’achète un deux roues, je choisis lequel ? La Dax ou le Bubbly ? 😉

 

Continuez votre lecture

Partager l'article
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

8 commentaires

  1. Denis-Robert MPUTU Répondre

    BONJOUR MADAME CLAIRE
    C’EST VRAIMENT INTÉRESSANT. MERCI.

  2. DIALLO Répondre

    Bonjour Madame Claire,

    merci pour tout le travail que vous faites sur ce blog.
    Et particulièrement aujourd’hui pour cet article.

    Par contre, je rencontre un problème lors de l’installation du package GADMTools. En effet, R m’indique que ce package n’est pas disponible pour la version 3.4.3 de R, est-ce normal ?

    Cordialement.

  3. AlineD Répondre

    Bonjour,

    Attention, les nombre de vols sont des données quantitatives absolues et doivent être représentées avec des cercles proportionnels, et non avec une plage de couleur. Pour pouvoir créer une carte choroplèthe, il faut rapporter les données au nombre d’habitants, comme vous y pensez d’ailleurs en fin d’article. Sinon, il est tout à fait normal de noter plus de vols à Paris et à Marseille, où la population est plus nombreuse.
    En l’état, cette carte est fausse.

    N’oubliez pas également l’échelle, indispensable à toute bonne carte et les sources+date, indispensables à sa lecture critique.

    Quelques ressources :
    Représenter les données cartographiques : http://philcarto.free.fr/fortunel/FichesRepresentationDonnees.pdf, p20
    Représenter des données cartographiques sur R : https://riatelab.github.io/anfdataviz/

    Bien cordialement,

  4. Relwendé Répondre

    Bonjour Claire,
    Article très intéressant, comme d’ailleurs vos articles antérieurs sur le logiciel R. Enfin, je suis comblé. Je cherchais un package R permettant de realiser des cartes administratives de maniere conviviale. Celui ci je le trouve tout simplement chic! Je voudrais savoir comment faire pour avoir l’abreviation des pays. La France c’est “FRA”, l’Italie c’est “ITA”. Et le Burkina Faso par exemple mon pays?
    Merci encore, c’est sympa de votre part.

  5. Thierry Répondre

    Bonjour Claire,

    Vraiment très intéressant surtout avec en plus la possibilité de mettre un fond de cartographie osm. Je me permets de répondre à Relwendé : c’est BFA comme indiqué dans le fichier disponible après le premier paragraphe de “Les différents niveaux de cartes administratives”.

    Merci encore pour vos articles.
    Thierry

  6. Relwendé Répondre

    C’est bien bien claire cher @Maxime et @Thierry. Merci beaucoup et grand merci à @Claire pour cet article très intéressant.

  7. Dany OTRON Répondre

    Grand Merci à Claire,

    Merci pour tout. Cet article encore m’est vraiment très très utile.

Laisser un commentaire

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