première approche de cartographie sous r
DESCRIPTION
par Eric Durieux, InseeTRANSCRIPT
Premiers pas à la cartographie sous R
Eric Durieux, INSEE
• Tenez-vous informer sur le blog du Groupe d’Utilisateurs R FLtauR
http://fltaur.wordpress.com/
• Questions/Réponses mailing list : envoyez un mail à [email protected]
Introduction
• Pas pour objectif de se passer des logiciels SIG (MapInfo…)…
• …mais de permettre une représentation spatiale rapide et conviviale de nos données sous R
Les préalables
• Des données spatiales à représenter (quantitatives, qualitatives, flux…)
• Des fonds de carte associés:– Issus de nos fonds MapInfo (.tab)– Exportés au format ShapeFile (.shp)
Les préalables
• Des packages d’analyse spatiale sous R :
• Rgrs
• RgoogleMaps
rgrs
• Package développé en français
• Permet des représentations simples (effectifs, classes, qualitatif)
• Déjà utilisé dans une application du PSAR-AT déployé à l’Insee (ANABEL)
rgrs
rgrs
Library(rgrs)
# lecture du fond de carte communal PACA
macarte <- readShapePoly(paste("D:/applicarto/Anabel/fond/ComR93_region.shp",sep=""))
# Réalisation de la carte
# macarte = fond de carte, monzonage = base de données, sp.key+data.key = jointure
# partition.partition = variable qualitative à représenter
carte.qual(macarte, monzonage, "partition.partition", sp.key = "CODGEO", data.key = "partition.liste_com", palette=mapalette, posleg=NULL)
RgoogleMaps
• Permet de superposer des analyses spatiales à des fonds GoogleMaps (libre de droit!)
• Peut choisir différents fonds (satellite, routes…)
• Donne des cartes innovantes et réalistes
RgoogleMaps
• Attention :
GoogleMaps utilise les projections
Latitude / Longitude
en WGS 84
RgoogleMaps
RgoogleMaps
library(foreign)
library(RgoogleMaps)
library(PBSmapping)
zau_col<-read.dbf("D:/u9te81/Mes Documents/cours R/carto/zau_col.dbf",as.is=T)
toto<-vector()
for (i in 1:nrow(zau_col))
{
toto[i]<-rgb(as.numeric(zau_col[i,3]),as.numeric(zau_col[i,4]),as.numeric(zau_col[i,5]),as.numeric(zau_col[i,6]),maxColorValue=255)
}
zau_col$col<-toto
zone_au<-read.dbf("D:/u9te81/Mes Documents/cours R/carto/bret_au.dbf",as.is=T)
zone_au2<-merge(zone_au,zau_col,by.x="TYPO_AU201",by.y="CODE",all.x=T)
zone_au3<-zone_au2[order(zone_au2$DEPCOM),]
RgoogleMaps
# Import du fond de carte communal de la Bretagne
shpPolySet=importShapefile("D:/u9te81/Mes Documents/cours R/carto/ComR53_region.shp",projection="LL")
# Calcul de la fenêtre GoogleMap à partir du fond de carte
bb <- qbbox(lat = shpPolySet[,"Y"], lon = shpPolySet[,"X"],margin = list(m = c(0, 0, 0, 0),TYPE="perc"))
# Réalisation du raster GoogleMaps
MyMap <- GetMap.bbox(bb$lonR, bb$latR, destfile = "Dzone.png", maptype="hybrid")
# Superposition ,de l’analyse communale (coloration des polygones communaux)
jpeg("D:/u9te81/Mes Documents/cours R/carto/bret_AU2.jpg",width=1500,height=1500)
PlotPolysOnStaticMap(MyMap, shpPolySet, lwd=1, col = zone_au3$col, border=0, add = F)
dev.off()
Population communale
Navettes domicile - travail
Densité de population carroyée
Densité de population carroyée