Cartographie de flux avec le package cartography

Depuis hier, le package cartography développé par nos collègues Timothée Giraud (http://rgeomatic.hypotheses.org/) et Nicolas Lambert (http://neocarto.hypotheses.org), tous deux ingénieurs à l’UMS RIATE, est en ligne sur le CRAN. Il permet de faire beaucoup de cartes différentes dont des cartes de flux. Le script et les données utilisés dans ce billet sont téléchargeables ici (j’arrête provisoirement github, j’y fais un peu n’importe quoi…) – le script est encodé en utf-8 (pour règler l’encodage dans RStudio : Tools > Global Options > Default text encoding).

La documentation sur les fonctions est lisible et homogène et les exemples fonctionnent mais, bien entendu, ce qui est intéressant est de pouvoir importer et cartographier ses propres données. Deux fichiers sont attendus en entrée : une liste de liens (origine, destination, intensité de la relation) et un fond de carte au format .shp. Les deux donneront dans R un data.frame et un  SpatialPolygonsDataFrame (noté SPDF dans la suite du  billet). Il est bien entendu nécessaire que le code des unités spatiales soit le même dans les deux fichiers…

La première étape consiste à attribuer des coordonnées à la liste de liens à l’aide de la fonction getLinkLayer. La fonction prend comme argument : le nom du SPDF et les colonnes origine-destination du data.frame. Si l’identifiant commun n’est pas la première colonne du SPDF, il est nécessaire de préciser la colonne adéquate avec l’argument spdfid = « Nom_de_la_colonne ». Dans l’exemple téléchargeable, l’argument est utilisé.

La fonction plot(SPDF) permet ensuite de visualiser le fond de carte.

Deux fonctions permettent de cartographier les flux : propLinkLayer (épaisseur proportionnelle à l’intensité) et gradLinkLayer (flux discrétisés). Le script téléchargeable devrait vous permettre de comprendre la logique d’utilisation et les principales options. Dans les deux cas, l’orientation des flux n’apparaît malheureusement pas.

Signalons enfin la fonction legendPropLines qui permet de personnaliser la légende de la carte réalisée (fonction non encore testée à ce jour).

La réalisation de cartes est plutôt aisée mais, comme toujours pour la cartographie des flux, cela ne garantit pas nécessairement un résultat d’une grande lisibilité…


9 réflexions au sujet de « Cartographie de flux avec le package cartography »

  1. Bonjour, Merci pour ce tuto.

    Je travaille sur R studio et je n’arrive pas à charger le fond de carte et les données.

    Voici les messages d’erreurs :

    fdc <- readShapeSpatial("NED_10m_eckertIV_v1.shp")

    Error in getinfo.shape(fn) : Error opening SHP file
    In addition: Warning message:
    readShapeSpatial is deprecated; use rgdal::readOGR or sf::st_read

    Puis ensuite :
    data <- read.delim("UPR_c1_LEVEL5.txt",
    + sep = " ")

    Error in file(file, "rt") : cannot open the connection
    In addition: Warning message:
    In file(file, "rt") :
    cannot open file 'UPR_c1_LEVEL5.txt': No such file or directory

    Auriez-vous une petite idée du problème ?

    Merci d'avance de votre aide

    1. Bonjour,
      j’ai actualisé le script téléchargeable, cela devrait maintenant fonctionner.
      La première erreur était liée à l’évolution du package sf (cf l’aide de cartography).
      La deuxième est plus simple à résoudre : R ne trouve pas le fichier en question (No such file), voir les fonctions getwd et setwd pour définir le répertoire de travail.

      1. Merci de votre réponse!

        J’ai essayé de nouveau avec le nouveau script avec exactement le même résultat. Est-ce que le script doit être un peu modifié pour prendre en compte le chemin d’accès par exemple ?

        1. Si vous avez un message de type « No such file », oui il faut changer le chemin d’accès.

      2. Quelque chose me paraît aussi un peu suspect quand je rentre une deuxième fois les commandes quand je rentre « install.packages(« cartography », dependencies = TRUE) »

        Une nouvelle fenêtre s’ouvre avec un message : One or more of the packages that will be updated by this installation are currently loaded. Restarting R prior to updating these packages is strongly recommended.

        « currently loaded « signifie que le package est toujours en cours d’installation ?

    1. Merci. Je viens de tester en cliquant sur « téléchargeables ici » et j’ai pu télécharger le zip contenant le code et le fond de carte sans problème…

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.