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é…
OpenEdition vous propose de citer ce billet de la manière suivante :
Laurent Beauguitte (7 octobre 2015). Cartographie de flux avec le package cartography. groupe fmr (flux, matrices, réseaux). Consulté le 4 octobre 2024 à l’adresse https://doi.org/10.58079/p84s
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
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.
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 ?
Si vous avez un message de type “No such file”, oui il faut changer le chemin d’accès.
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 ?
Cela signifie qu’installer le package entraîne la mise au jour d’autres packages.
Bonjour,
Merci pour le blog intéressant que vous entretenez. SVP j’arrive pas à télécharger le code source.
Très Cordialement;
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…