Tous les articles par Timothée Giraud

Nouvelle version de mapsf et introduction de maplegend

Une nouvelle version de mapsf est sortie sur le CRAN cette semaine.

Cette nouvelle version utilise le tout nouveau package maplegend pour afficher les légendes.

Une nouvelle fonction mf_distr() a été ajoutée pour afficher des distribution univariée et aider les utilisateurs dans le choix d’une méthode de discrétisation.

Lien vers le post original!

 

How to Build a European-Wide OSRM Server on a Desktop Computer

Open Source Routing Machine, or OSRM, is a routing software based on OpenStreetMap (OSM) data. OSRM can be used to find the fastest route between points, to compute time or distance matrices between set of points or to solve the traveling salesman problem.As maintainer of the osrm R package I often find myself advising users to use their own instance of OSRM to enable them to send a large number of requests and not overload the demo server. In these cases I simply point to the Docker installation instructions in the project’s README file. These instructions may not be detailed enough to build an OSRM instance on a large area. OSRM needs a lot of RAM to prepare the road network for requests and using only these instructions will probably result in message like this one:

[warn] Please provide more memory or consider using a larger swapfile

This problem is addressed in this issue on the OSRM GitHub repository. The suggested solution is to rent a temporary server. This is not the only solution, a modern computer with a rather classical hardware configuration can actually do the job.

In this post I’ll explain how to build a European-wide OSRM instance on a desktop computer. These explanations are, to a certain extent, also valid when using a remote server.

Original post here!

Nouvelle version du package osrm

Le package osrm est une interface entre R et le service de routage  Open Source Routing Machine (OSRM). OSRM est un service de routage utilisant les données d’OpenStreetMap (OSM) data.  Le package permet de calculer des routes, des matrices de distances, des isochrones en utilisant s’appuyant sur le réseau routier d’OSM.

Une mise à jour majeur du package est sortie sur le CRAN il y a peu. Dans le billet suivant je décris les nouveauté et le contexte de cette sortie: la publication d’un article dans Journal of Open Source Software (JOSS).

Lien vers le billet

Aperçu :

The mapsf package

 mapsf has just landed on CRAN.

mapsf helps to design various cartographic representations such as proportional symbols, choropleth or typology maps. It also offers several functions to display layout elements that improve the graphic presentation of maps (e.g. scale bar, north arrow, title, labels). mapsf maps sf objects on base graphics.

This package has a website  and a vignette.

Ce post est disponible en français ici.

Continuer la lecture de The mapsf package

The potential package

The potential package provides functions to compute potential models as defined by John Q. Stewart. Several options are available to customize the models, for example it is possible to refine the distance friction functions or to use custom distance matrices. Some functions use parallelization to improve their efficiency.

The aim of potential is to replace potential-related functions of the SpatialPosition package. SpatialPosition was built to compute 3 spatial position models (Stewart potentials, Reilly catchment areas, Huff catchment areas) in a time where sf was not published yet (May 2015).  potential functions use a simplified interface and are more efficient than their counterpart in SpatialPostion. My recommendation to SpatialPositon users is thus to switch to potential for the computation of potentials.  

A didactic vignette describing the methodology and functions is provided as well as a website.

The maptiles package

To create maps from tiles, maptiles downloads, composes and displays tiles from a large number of providers (e.g. OpenStreetMap, Stamen, Esri, CARTO, or Thunderforest).

Installation

You can install the released version of maptiles from CRAN with:

install.packages("maptiles")

You can install the development version of maptiles from GitHub with:

# install.packages("remotes")
remotes::install_github("riatelab/maptiles")

Note: maptiles uses terra which requires a recent version of GDAL (>= 3.0.4).

Demo

This is a basic example which shows you how to dowload and display OpenStreetMap tiles over North Carolina:

library(sf)
library(maptiles)
# import North Carolina counties
nc <- st_read(system.file("shape/nc.shp", package="sf"), 
              quiet = TRUE)
# dowload tiles and compose raster (SpatRaster)
nc_osm <- get_tiles(nc, crop = TRUE)
# display map
plot_tiles(nc_osm)
# add Norh Carolina counties
plot(st_geometry(nc), col = NA, add = TRUE)
# add credit
mtext(text = get_credit("OpenStreetMap"), 
      side = 1, line = -1, adj = 1, cex = .9, 
      font = 3)

maptiles gives access to a lot of tiles servers, but it is possible to add others. The following example demonstrates the setting of a map tiles server and how to cache the original tiles for future use:

# define the query
fullserver <- paste(
  "https://server.arcgisonline.com/ArcGIS/rest/services",
  "Specialty/DeLorme_World_Base_Map/MapServer",
  "tile/{z}/{y}/{x}.jpg",
  sep = "/"
)
# define the tile server parameter
esri <-  list(
  src = 'esri',
  q = fullserver,
  sub = NA,
  cit = 'Tiles: Esri; Copyright: 2012 DeLorme'
)
# dowload tiles and compose raster (SpatRaster)
nc_esri <- get_tiles(x = nc, provider = esri, crop = TRUE, 
                     cachedir = tempdir(), verbose = TRUE)
# display map
plot_tiles(nc_esri)
# display credits
mtext(text = esri$cit, side = 1, line = -1, 
      adj = 1, cex = .9, font = 3)

The following figure shows mini maps for most of the tiles providers available:

Attribution of map tiles

All maps available through maptiles are offered freely by various providers. The only counterpart from the user is to properly display an attribution text on the maps. get_credit() displays a short credit text to add on each map using the downloaded tiles.

Background

Most of maptilescode comes from getTiles() and tilesLayer() functions in cartography. It appears useful to me to have a package focused on the download and display of map tiles only. On the technical side, it uses terra instead of raster for managing raster data.

Alternatives

There are many alternative packages that pursue the same objective as maptiles. Some focus on a specific map tiles provider (e.g. mapbox, google, OpenStreetMap) or on a specific graphics device (ggplot2). The goal of maptiles is to be flexible enough to allow the use of different providers and to have a minimal number of robust and modern dependencies. However, depending on the use case, one of following packages may better suit your needs:

Note

Not to be confused with tilemaps, that “implements an algorithm for generating maps, known as tile maps, in which each region is represented by a single tile of the same shape and size.”

How to interactively position legends and layout elements on a map with cartography

In cartography several functions have a pos or legend.pos argument. These arguments can take the following values: “topleft”, “top”, “topright”, “right”, “bottomright”, “bottom”, “bottomleft”, “bottomleftextra”, “left” or a vector of two coordinates in map units (c(x, y)).

The posibility to use a vector of coordinates is useful for placing an element at a precise location: Continuer la lecture de How to interactively position legends and layout elements on a map with cartography

The popcircle package

The popcircle package has been released on GitHub. This one-function package computes circles with areas scaled to a variable and displays them using a compact layout (higher values in the center, lower values at the periphery). Original polygons are scaled to fit inside these circles (size are roughly proportional, not strictly).

The circles creation relies on packcircles, spatial data manipulation relies on sf.

Continuer la lecture de The popcircle package

The tanaka package

The tanaka package has been released on CRAN. This package is a simplified implementation of the Tanaka method.
Also called “relief contours method”, “illuminated contour method” or “shaded contour lines method”, the Tanaka method enhances the representation of topography on a map using shaded contour lines.
North-west white contours represent illuminated topography and south-east black contours represent shaded topography.

The contour lines creation relies on isoband, spatial data manipulation and display rely on sf.

Continuer la lecture de The tanaka package

Manuel d’analyse spatiale

L’Insee vient de sortir un numéro d’Insee Méthodes s’intitulant “Manuel d’analyse spatiale – Théorie et mise en œuvre pratique avec R“. Ce manuel de près de 400 pages aborde de nombreuses thématiques telles que l’analyse de semis de points, l’autocorrélation spatiale ou les lissages. Le manuel comprend des parties théoriques ainsi que des exemples d’application pratique écrits en R.
Je vous conseille vivement de jeter un œil à cette riche ressource dont on peut accéder à chaque chapitre individuellement.

Manuel d’analyse spatialeThéorie et mise en oeuvre pratique avec R
Insee Méthodes n° 131 – octobre 2018, Insee – Eurostat – Sous la direction de Vincent Loonis – Coordonné par Marie-Pierre de Bellefon


Shaded contour lines or Tanaka method with R

[edit]The tanaka package, released after this post, facilitates the creation of such maps[/edit].

The following post, Tanaka method or how to make shaded contour lines on LandscapeArchaeology.org blog, explains clearly and thoroughly what shaded contour lines are and how to draw them with QGIS.
How hard would it be to implement this method with R?

From LandscapeArchaeology.org

Continuer la lecture de Shaded contour lines or Tanaka method with R

Faire des cartogrammes avec R

Le package cartogram permet de construire des cartogrammes avec R. Trois types de déformations sont proposés  :

  • les cartogrammes continus (Dougenik et al. 1985) avec la fonction cartogram_cont(),
  • les cartogrammes discontinus (Olson 1976) avec la fonction cartogram_ncont(),
  • les cartogrammes en cercles (Dorling 1996) avec la fonction cartogram_dorling().

Le package peut être utilisé avec des objets sp ou sf.
Continuer la lecture de Faire des cartogrammes avec R

La prochaine séance du séminaire RUSS

La prochaine séance du séminaire R à l’Usage des Sciences Sociales (RUSS) aura lieu le jeudi 5 avril 2018 de 9h à 12h à l’ amphithéâtre François Furet de l’EHESS au 105 Boulevard Raspail – Paris 6°.

Nous accueillerons Nicolas Ballier (Université Paris Diderot), Diane Beldame (thinkr.fr), Muriel Epstein (SAMM, Université Paris 1 Panthéon Sorbonne) et Anton Perdoncin (ENS, CMH, IDHES -ENS Cachan).
Continuer la lecture de La prochaine séance du séminaire RUSS

Zoomer sur une carte avec R

Dans ce billet je propose une manière de zoomer sur une zone particulière d’une carte avec R.
Ce zoom peut être défini précisément si l’on connaît à l’avance les coordonnées géographiques de la zone à afficher (sa bounding box), il peut aussi être défini interactivement grâce à la fonction locator().

J’utilise les packages sf (pour la gestion des objets spatiaux), cartography (pour l’ajout d’éléments d’habillage) et rnaturalearth (pour acceder aux fonds de cartes libres de Natural Earth).

Continuer la lecture de Zoomer sur une carte avec R

Cartographic Explorations of the OpenStreetMap Database with R

This post exposes some cartographic explorations of the OpenStreetMap (OSM) database with R.
These explorations begin with the downloading and the cleaning of OSM data. Then I propose a set of map visualizations of the spatial distributions of bars and restaurants in Paris. Of course, these examples could be adapted to other spatial contexts and thematics (e.g. pharmacies in Roma, bike parkings in Dublin…).

This reproducible analysis is hosted on GitHub (code + data + walk-through).

Continuer la lecture de Cartographic Explorations of the OpenStreetMap Database with R

New version of the cartography package

A new version of the cartography package (v2.0.1) has arrived on CRAN.

cartography allows various cartographic representations such as proportional symbols, chroropleth, typology, flows or discontinuities maps. It also offers several features enhancing the graphic presentation of maps like cartographic palettes, layout elements (scale, north arrow, title…), labels, legends or access to some cartographic APIs.

Up to version 1.4.2 cartography was mainly based on sp and rgeos for its spatial data management and geoprocessing operations. These dependencies have been as much as possible replaced by sf functions since version 2.0.0.
Most functions are kept unchanged except for the addition of an x argument used to take sf objects as inputs.
See the NEWS file for the full list of changes and see sf README in case of installation problems with sf.
Continuer la lecture de New version of the cartography package

linemap

Le package linemap permet de réaliser des cartes composées de lignes. Le package contient deux fonctions, linemap et getgrid.

  • La fonction linemap permet d’afficher la carte. Elle prend en entrée un data frame contenant les coordonnées des points d’une grille régulière et au moins une variable.
  • La fonction getgrid permet de transformer un maillage de polygones irrégulier en data frame pouvant être utilisé avec la fonction linemap. Les polygones en entrée doivent être au format sf et, la fonction reposant sur des calculs d’intersections, il est fortement conseillé d’utiliser le package sf dans une version supérieure ou égale à 0.5-1. En effet à partir de cette version sf intègre les index spatiaux, ce qui accélère très significativement certains géotraitements (dont les calculs d’intersections).

Continuer la lecture de linemap

Pourquoi et comment inscrire la production de cartes statistiques dans un processus de recherche reproductible

Le 9 juin, Nicolas Lambert et moi participions à la journée “Cartostats – La cartographie statistique : Quelles méthodologies dans un contexte d’accélération et de diversification des pratiques ?” avec la présentation suivante :

Pourquoi et comment inscrire la production de cartes statistiques dans un processus de recherche reproductible.

La manière la plus répandue pour construire des cartes statistiques mobilise un ensemble de logiciels variés (tableur, logiciel de statistique, SIG, édition vectoriel…) utilisant une série de formats de données et de fichiers différents. Cette grande diversité d’outils rend difficile la reproduction, la mise à jour et la pérennité des analyses et des cartes produites.
L’utilisation du logiciel R et de son langage nous permet de couvrir l’ensemble de la chaîne de traitement allant de l’analyse à la représentation de l’information géographique. Particulièrement adapté aux traitements statistiques, R dispose également de fonctionnalités spatiales permettant de manipuler et de représenter les données.
Le package cartography, développé à l’UMS RIATE, permet de réaliser la plupart des cartes statistiques usuelles et de les insérer dans des analyses traçables et complexes.

La prochaine séance du séminaire RUSS

La prochaine séance du séminaire R à l’Usage des Sciences Sociales (RUSS) aura lieu le jeudi 18 mai 2017 de 9h30 à 12h00 à l’université Paris Diderot (salle M19, bâtiment Olympes de Gouges, 8 place Paul-Ricoeur – Paris 13e ).

Nous accueillerons à partir de 9h30, François Briatte (Université Catholique de Lille, École européenne des sciences politiques et sociales (ESPOL)) pour la présentation suivante :

Web Scraping et APIs avec R

Continuer la lecture de La prochaine séance du séminaire RUSS

Magrit, la cartographie sans SIG

Magrit est une application de cartographie thématique en ligne.

Magrit propose la réalisation de représentations cartographiques usuelles telles que les cartes choroplèthes ou les cartes en symboles proportionnels. D’autres types de cartes, souvent difficiles à mettre en œuvre dans les logiciels du marché, sont aussi proposés : lissages, carroyages, discontinuités, anamorphoses, etc.

Magrit entend couvrir dans un même environnement logiciel, l’ensemble de la chaîne de traitement, de la donnée géographique à la carte d’édition.


Continuer la lecture de Magrit, la cartographie sans SIG

De superbes cartes thématiques…

Dans un très complet billet de blog, Timo Grossenbacher décrit la création d’une carte thématique avec ggplot2.
https://timogrossenbacher.ch/2016/12/beautiful-thematic-maps-with-ggplot2-only/
Il y détaille les étapes nécessaires à la création de cette carte en évoquant par exemple des questions de reproductibilité, l’import et la sélection des données, le choix d’une discrétisation, le choix d’une gamme de couleur, l’utilisation de données raster (pour le relief), les questions d’habillage et de design.

Dans les commentaires quelqu’un propose une version de cette même carte construite avec lattice (beautiful-thematic-maps: alternative code without using ggplot2) et une version interactive a aussi été développée (Thematic Interactive Map).

Voici donc ma contribution sans ggplot2, ni lattice, ni interactivité :-).
Continuer la lecture de De superbes cartes thématiques…

La prochaine séance du séminaire RUSS

La prochaine séance du séminaire R à l’Usage des Sciences Sociales (RUSS) aura lieu le jeudi 26 janvier 2017 de 9h30 à 12h00 à l’EHESS (salle du conseil B, R-1, bât. Le France, 190-198 av de France 75013 Paris)

Nous accueillerons à partir de 9h30, Arnaud Bringé (Ined-Service Méthodes Statistiques) pour la présentation suivante :

Traitement de données historiques avec R

Continuer la lecture de La prochaine séance du séminaire RUSS

mapinsetr, faire un carton avec R

Dans un billet précédent, je proposais une solution pour créer des cartons cartographique en jouant avec les paramètres graphiques des figures.
Dans celui-ci j’introduis le package mapinsetr qui permet de créer “en dur” des fond de carte comprenant des cartons.
J’utilise les jeux de données, la problématique et une partie du code proposés par Arthur Charpentier dans son post “Cartographier le vote pour le Brexit“.

Le script complet (import et préparation des données, visualisations) est disponible ici. Continuer la lecture de mapinsetr, faire un carton avec R

La Prochaine séance du séminaire RUSS

La prochaine séance du séminaire R à l’Usage des Sciences Sociales (RUSS) aura lieu le jeudi 24 novembre 2016 de 9h30 à 12h00 à l’EHESS (salle du conseil B, R-1, bât. Le France, 190-198 av de France 75013 Paris)

Nous accueillerons à partir de 9h30, Hadrien Commenges (Université Paris 1 Panthéon-Sorbonne UMR 8504 Géographie-cités) pour la présentation suivante :

Flux de travail intégré et conception d’outils pour la recherche et l’enseignement avec R et shiny

Continuer la lecture de La Prochaine séance du séminaire RUSS

Le package cartography a 1 an!

cartography a été déposé sur le CRAN le 5 octobre 2015.
Depuis cette date nous avons poursuivi le développement du package et, outre quelques corrections de bugs mineurs et diverses optimisations, nous y avons ajouté un certain nombre de fonctionnalités.

Le développement du package se passe toujours sur GitHub (https://github.com/Groupe-ElementR/cartography). Nous utilisons Travis CI et AppVeyor comme solutions d’intégration continue.
Vous pouvez nous faire des suggestions, signaler des bugs ou poser des questions ici.

Le package a été présenté dans différentes conférences, par exemple lors du FOSS4G (présentation) ou des Cinquièmes Rencontres R (présentation).

Nous avons également publié le package dans The Journal of Open Source Software.
Continuer la lecture de Le package cartography a 1 an!

FOSS4G, RUSS et Cinquièmes Rencontres R

Voici les liens vers trois présentations que j’ai données récemment autour de la cartographie avec R.

Encoder et décoder les polylines Google avec le package gepaf

L’encodage de polylines (Encoded Polyline Algorithm Format)
est un algorithme de compression (avec pertes) qui permet de stocker une liste de coordonnées dans une simple chaîne de caractères.

Cet encodage a été créé pour être utiliser par l’API de Google Maps. Mais d’autres services peuvent y faire appel, c’est le cas par exemple de l’API du service de routage open source OSRM.

Le package gepaf permet d’encoder un dataframe de coordonnées vers une chaîne de caractères avec la fonction encodePolyline et de décoder une chaîne de caractères vers un dataframe de coordonnées avec la fonction decodePolyline.

Le package, créé par Matthieu Viry, est disponible sur le CRAN ainsi que sur GitHub.

Panama Papers : d’où viennent les reporters

A la lecture des premiers articles portant sur les Panama Papers je me suis demandé d’où venaient les centaines de journalistes ayant travaillé sur le dossier.

Les différents articles évoquent plus de 100 médias dans plus de 70 pays.

En me basant sur la liste de journalistes diffusée sur le site de l’ICIJ (The International Consortium of Investigative Journalists) j’ai pu produire la carte suivante : Continuer la lecture de Panama Papers : d’où viennent les reporters

Supprimer le message “no proj_defs.dat in PROJ.4 shared files” de rgdal sur Ubuntu

La note suivante apparait lors des utilisations de rgdal liées aux projections :
NOTE: rgdal::checkCRSArgs: no proj_defs.dat in PROJ.4 shared files
Ce message est dû à l’utilisation de la librairie PROJ (dans sa version 4.9.1), à laquelle il manque un fichier de configuration.

Le fichier en question (proj_def.dat) doit être téléchargé et placé dans le dossier des projections de la librairie.
Chez moi, ce dossier est celui-ci : /usr/share/proj/.

Les détails du bug sont discutés sur la liste de discussion R-sig-Geo.

Comment faire un carton avec R?

Comme le dit Wikipédia :
“En cartographie, un carton est une petite carte complémentaire d’une carte principale, insérée dans la même page.”

Dans ce post je propose une solution pour créer des cartons cartographique en utilisant le package cartography. J’en profite pour introduire la fonction getFigDim qui aide à choisir les dimensions d’une figure lors de son export. Continuer la lecture de Comment faire un carton avec R?

Create and integrate maps in your R workflow with the cartography package

The cartography package allows various cartographic representations such as proportional symbols, chroropleth, typology, flows or discontinuities. In addition it also proposes some useful features like cartographic palettes, layout (scale, north arrow, title…), labels, legends or access to cartographic API to ease the graphic presentation of maps. Continuer la lecture de Create and integrate maps in your R workflow with the cartography package

Mise à jour du package osrm (version 2.0.0)

Le package osrm assure le lien entre R et l’API d’OSRM. OSRM est un service de routage basé sur les données OpenStreetMap.
Ce package permet d’obtenir le temps de trajet, la distance et le plus court chemin entre deux points via le réseau routier d’OpenStreetMap. Il est également possible d’obtenir des matrices de distances entre deux séries de points.

Pour suivre l’évolution de l’API qu’il interface, j’ai mis à jour le package osrm.
Vue l’ampleur des modifications sur l’API, la compatibilité descendante n’est pas assurée, les codes anciens ne fonctionneront plus. Continuer la lecture de Mise à jour du package osrm (version 2.0.0)

Mise à jour du package SpatialPosition

Nous venons de mettre à jour le package SpatialPosition. Nous avions déjà présenté ce package ici et ici.

Les principales nouveautés sont :

  • l’ajout d’une vignette montrant un exemple de calcul de potentiels sur des données européennes (la carte illustrant l’article est issue de cette vignette);
  • une amélioration de la fonction permettant d’exporter les potentiels en format vectoriel (ce qui peut être utile si l’on veut utiliser une couche de potentiels dans un SIG ou si l’on veut mettre en page une carte de potentiels dans un logiciel d’édition vectorielle).

Le package est sur le CRAN et sur GitHub.

Temps de trajet et matrices de distances avec R et OpenStreetMap

Le package osrm assure le lien entre R et l’API d’OSRM. OSRM est un service de routage basé sur les données OpenStreetMap.
Ce package permet d’obtenir le temps de trajet, la distance et le plus court chemin entre deux points via le réseau routier d’OpenStreetMap. Il est également possible d’obtenir des matrices de distances entre deux séries de points. Continuer la lecture de Temps de trajet et matrices de distances avec R et OpenStreetMap

Cartographie avec R : le package cartography

Le package cartography est sur le CRAN.
Ce package permet la création de la plupart des types de cartes statistiques ou thématiques avec R.

Dans ce post je propose une série de cartes réalisées avec ce package.
J’ai indiqué sous chacune d’entre elles les principales fonctions utilisées.
L’intégralité des scripts mis en place pour créer les cartes sont disponibles dans la vignette du package.
Les fonds de cartes et les données sur les régions européennes mobilisées ici sont fournis avec le package. Continuer la lecture de Cartographie avec R : le package cartography

Géocoder en masse avec R et sans Google Maps

Il existe différentes solutions pour géocoder des adresses ou des lieux avec R. Les plus fréquemment citées sont basées sur des services commerciaux et utilisent des données non libres. D’autres utilisent des logiciels libres et des données libres (OpenStreetMap). La nature commerciale / non commerciale, libre / non libre d’une solution a des implications sur la construction et la diffusion des données géocodées.
Je propose ici une petite revue des différentes possibilités de géocodage dans R ainsi qu’un package pour interroger l’une des API de géocodage basé sur OpenStreetMap (photon). Continuer la lecture de Géocoder en masse avec R et sans Google Maps

Quatrièmes Rencontres R

J’étais conférencier invité aux Quatrièmes Rencontres R qui ont eu lieu à Grenoble du 24 au 26 juin et j’ai pu y faire la présentation suivante : Représentation et traitement de l’information géographique.
Le plan de la présentation :

Les API de cartographie
Représentations cartographiques
Opérations de géotraitements
Lissage spatial
Ressources

La présentation est un peu lourde (~20 Mo) et peut donc peut mettre un peu de temps à se charger. Je mettrai en ligne les données utilisées et le script de création de la présentation d’ici quelques jours.
[MAJ]Données et scripts sont disponibles ici.[/MAJ]

R à l’usage des Sciences Sociales

Le jeudi 21 mai 2015, dans le cadre des séminaires “R à l’Usage des Sciences Sociales” organisés par l’Ined et l’Ehess j’ai pu faire une présentation intitulée “Représentation et traitement de l’information géographique avec R : usage avancé”. Comme d’habitude le code et les données sont disponibles pour reproduire les analyses. Continuer la lecture de R à l’usage des Sciences Sociales

Reilly, Huff et Stewart : le package SpatialPosition

Comme annoncé sur le blog du Groupe ElementR nous venons de déposer sur le CRAN le package SpatialPosition qui permet permet de calculer et de visualiser les résultats de modèles de positions : modèle de Reilly, modèle de Huff et modèle de Stewart. Ces modèles d’interaction spatiale permettent de saisir l’influence exercée par un lieu sur tous les autres (aire de marché d’un commerce, aire d’influence d’une ville, etc.). Pour plus d’information et de ressources sur ce type de modèles, vous pouvez vous référer à la vignette associée au package. Continuer la lecture de Reilly, Huff et Stewart : le package SpatialPosition

Création d’une carte interactive avec leaflet

En lisant cet article de Yann Guégan évoquant le monde selon Bernard Guetta je me suis dis: “Tiens, et si je faisais une petite carte interactive avec des cercles proportionnels en utilisant les mêmes données!”.
Le journaliste explique sa méthodologie et présente tous les outils qu’il a mobilisé dans un deuxième article. Les données (en tout cas une partie) sont également diffusées dans format libre. Cette démarche ouverte permet de reproduire les analyses, les figures etc. Bref c’est du bon boulot!

Cartographie interactive

Pour réaliser cette carte, avec R bien sur, j’ai choisi d’utiliser le package leaflet. Ce package, disponible sur github, est construit en utilisant le package htmlwidgets et s’appuie sur la librairie javascript leaflet. Continuer la lecture de Création d’une carte interactive avec leaflet

Visualiser des flux : les graphiques circulaires

On a récemment porté à mon attention cette visualisation de flux orientés plutôt réussie.

Comment lire ces graphiques :

L’idée de base de ce graphique est de montrer simultanément les tailles relatives des flux entre les régions. Les origines et les destinations des flux sont représentés par les segments du cercle […]. La taille des flux est indiquée par la largeur des liens à leurs extrémités. La direction du flux est encodé à la fois par la couleur du lien (celle de la région d’origine) et par l’espace entre le lien et la région de destination.Source

Continuer la lecture de Visualiser des flux : les graphiques circulaires

Installer devtools sur Ubuntu 14.04

Lorsque j’ai essayé d’installer devtools sur un pc sous Uubuntu 14.04 j’ai eu le message d’erreur suivant :

checking for curl-config... no
Cannot find curl-config
ERROR: configuration failed for package ‘RCurl’
* removing ‘/home/tg/R/i686-pc-linux-gnu-library/3.1/RCurl’
Warning in install.packages :
  installation of package ‘RCurl’ had non-zero exit status

Continuer la lecture de Installer devtools sur Ubuntu 14.04

Cartographie de flux avec R

La cartographie automatisée de flux n’est pas une chose facile à réaliser, et ce quelque soit le logiciel utilisé.
L’objectif de ce billet est de proposer un exemple de cartographie de flux avec R.

[MAJ] J’ai déplacé les données et ajouté le code sur GitHub. [/MAJ]

Les données utilisées sont des données de migration résidentielles issues de l’Insee et un fond de carte des départements français diffusé par l’IGN. Le tout est à télécharger ici sous forme de RData.

Cet exemple s’appuie sur le package igraph dédié à l’analyse et à la représentation de graphs. Les fonctionnalités de représentation de graphs orientés sont mobilisés pour représenter les migrations résidentielles entre les 6 départements les plus attractifs (hors Ile de France) entre 2003 et 2008. Continuer la lecture de Cartographie de flux avec R

Publier du code R sur WordPress sans plugin

[MAJ]

La présence des nombreux liens vers le site d’inside-r me chagrinais quand même un peu.
Après quelques tâtonnements j’ai finalement opté pour la solution suivantes :


<pre style="font-family: monospace;"><small><small>
monCode tres bien formaté et indenté
    parfois le signe "<-" ne passe pas
</small></small></pre>

Une fois le code pré-publié je le copie/colle dans R pour vérifier qu’il fonctionne toujours bien.

[MAJ] Continuer la lecture de Publier du code R sur WordPress sans plugin

Recherche Reproductible et création de packages

Dans le cadre des séances de formation du Groupe ElementR Hadrien Commenges et moi avons préparé des documents pédagogiques autour de la notion de recherche reproductible avec R.

Lors de cette trop courte séance j’ai présenté sous forme de tutoriel un module sur la recherche reproductible et la création de packages: Continuer la lecture de Recherche Reproductible et création de packages

R pour les géographes

[MAJ] Le manuel vient de sortir en format papier.
Présentation du livre sur le blog ElementR
Prem_couv_Respace_500x681
[MAJ]

R pour les géographes : Éléments d’analyse de données géographiques, d’analyse spatiale et de cartographie avec R.

Il s’agit d’un manuel réalisé par le groupe ElementR, groupe de huit auteur-e-s coordonné par Hadrien Commenges. Il est le fruit de sessions de formation au logiciel R organisées à l’UMR Géographie-cités durant l’année 2012. Continuer la lecture de R pour les géographes

Choisir et soigner l’affichage des résultats d’une fonction

Cette fonction affiche de façon simple les résultats sous forme de texte dans la console et permet l’export des résultats dans un objet.

FUN <- function(x){ 
  meanx <- mean (x)
  medianx <- median(x)
  sdx <- sd(x)
  cat("La moyenne est de", meanx,"\n")
  cat("La médiane est de", medianx,"\n")
  cat("L'écart-type est de",sdx)
  invisible(list(moyenne=meanx, 
                 mediane=medianx, 
                 et=sdx))
}

Continuer la lecture de Choisir et soigner l’affichage des résultats d’une fonction

Créer un classeur Excel à partir de plusieurs objets R

Pour ceux qui sont encore obligés de fournir des sorties Excel voici un lien vers un post proposant une fonction permettant d’exporter différents objets en tant que feuilles d’un classeur.
http://statmethods.wordpress.com/2014/06/19/quickly-export-multiple-r-objects-to-an-excel-workbook/

… une fonction très simple qui permet d’exporter un nombre lambda d’objets R vers un classeur Excel en un seul appel. Chaque objet doit apparaitre sur une feuille distincte portant le nom de l’objet…
…La méthode fonctionne pour les data frames, les matrices, les time series et les tables…

La fonction est basée sur le package xlsx.

Création d’une matrice de distances routières avec l’API de Google Maps

[MAJ] La fonction geocode du package ggmap fait la même chose, de l’importance de bien se renseigner sur ce qui existe déjà avant de coder… Cela m’aura quand même permis de m’initier aux API. [/MAJ]

Si la mise en place de l’outil graphHopper vous semble trop fastidieuse vous avez la possibilité d’utiliser l’API de Google Maps. L’utilisation de cette API ne va pas sans quelques limitations.

A partir des mêmes données que celle utilisées ici voici un exemple de script R permettant la constitution d’une matrice de distances par interrogation de l’API de Google Maps : Continuer la lecture de Création d’une matrice de distances routières avec l’API de Google Maps

Installer le package rgdal sur ubuntu

[MAJ]Avec ubuntu 15.10 ce n’est plus la peine d’utiliser aptitude, le apt-get install fonctionne[/MAJ]

Le package rgdal permet l’utilisation dans R des librairies spatiales GDAL (Geospatial Data Abstraction Library) et PROJ.4 qui servent respectivement à gérer différents formats de données géographiques et les conversions de projections géographiques.

L’installation du package se fait sans problème sous Windows. En revanche sous ubuntu Continuer la lecture de Installer le package rgdal sur ubuntu

Cartographie et analyse spatiale avec R – Séminaire RUSS

Voici l’introduction, la présentation et les données utilisées lors de mon intervention au Séminaire “R à l’Usage des Sciences Sociales” co-organisé par l’Ined et l’Ehess le 22 mai 2014. Cette présentation a été réalisée en collaboration avec Nicolas Lambert (http://neocarto.hypotheses.org/). Continuer la lecture de Cartographie et analyse spatiale avec R – Séminaire RUSS

Création d’une matrice de distances routières avec des outils et des données libres (2/2)

2 – Interrogation de l’API et constitution de la matrice de distance avec R

Le programme R suivant construit la matrice de distance entre une table d’origines et une table de destination. Le format de ces tables doit comprendre un champ d’identifiant et deux champs contenant les longitudes et latitudes des points en WGS84. Continuer la lecture de Création d’une matrice de distances routières avec des outils et des données libres (2/2)

Création d’une matrice de distances routières avec des outils et des données libres (1/2)

Comment créer une matrice de distances (calculées en kilomètres ou en minutes) entre plusieurs points du globe?

Il existe plusieurs solutions commerciales et plus ou moins fermées pour construire ce genre de matrices (The Google Distance Matrix API, Bing Routes API ou MapQuest par exemple). Ces solutions présentent plusieurs inconvénients : limites d’extraction, limites d’utilisation, limite de diffusion…

La solution proposée ici n’utilise que des données et des outils libres :

  • Un réseau routier, issu d’OpenStreetMap (OSM).
  • Le logiciel Osmosis permettant de manipuler les données OSM.
  • L’application GraphHopper pour calculer les itinéraires.
  • R pour interroger l’API de GraphHopper et constituer la matrice de distance.

L’objectif est ici de calculer une matrice de distances entre une vingtaine de villes françaises, belges, allemandes luxembourgeoises et néerlandaises. Continuer la lecture de Création d’une matrice de distances routières avec des outils et des données libres (1/2)

Visualisation de données médiatiques et géographiques avec R

Dans le cadre des rencontres de statistiques appliqué du Service Méthodes Statistiques de l’Ined (SMS) j’ai, avec Marta Severo, fait une présentation portant sur la visualisation de données médiatiques et géographiques avec R.

Voici le résumé de la présentation :

La combinaison d’informations géographiques et d’informations médiatiques peut s’avérer particulièrement fructueuse pour l’analyse des évènements médiatiques internationaux et notamment pour l’étude de leur propagation spatio-temporelle.
L’objectif de cette communication est de présenter les caractéristiques de la donnée médiatique et de montrer les possibilités que le logiciel R offre pour le traitement et la visualisation de ce type de données.
Nous présenterons quelques exemples faisant appel à l’interactivité, à l’animation et à la cartographie à travers l’analyse de la couverture médiatique internationale du conflit de Wukan, un village du sud de la Chine, où après des mois de protestations contre l’accaparement illégal de terres les habitants ont obtenu des élections libres.

Et voici un lien vers la page web associée à la présentation. Cette page a été conçue avec le package knitr.

Une application web avec le package Shiny

Le package Shiny permet assez facilement et assez rapidement de construire des applications Web utilisant R comme moteur de calcul. Dans cet exemple (accessible ici : http://riate.shinyapps.io/matrixes/) il s’agit de construire une application qui transforme des données de flux ou de lien d’une forme tabulaire à une forme matricielle :

fijtomat

et d’une forme matricielle à une forme tabulaire :

mattofij Continuer la lecture de Une application web avec le package Shiny