La cartographie et les analyses spatiales avec R
La cartographie et les analyses spatiales avec R
La cartographie et les analyses spatiales avec R
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
<strong>La</strong> <strong>cartographie</strong> <strong>et</strong> <strong>les</strong> <strong>analyses</strong><br />
spatia<strong>les</strong> <strong>avec</strong><br />
Aperçu des différentes possibilités<br />
S. Roch<strong>et</strong>te, ValorIG, 9-10 octobre 2012
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
Plan<br />
1. Présentation de R <strong>et</strong> OGR/GDAL<br />
2. Lecture / écriture de données spatia<strong>les</strong><br />
3. Visualisation<br />
4. Outils de SIG<br />
5. Géostatistiques <strong>et</strong> modélisation
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
1. Présentation de R<br />
<strong>La</strong>ngage <strong>et</strong> environnement open-source<br />
→ Analyses statistiques <strong>et</strong> traitements graphiques<br />
– Différents formats de données lus<br />
– Plusieurs modu<strong>les</strong> selon besoins<br />
– Communique <strong>avec</strong> SIG (QGIS, ArcGIS, ...) ou base de données<br />
(PostGIS, SQLite,...)
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
1. Présentation de R<br />
<strong>La</strong>ngage <strong>et</strong> environnement open-source<br />
→ Analyses statistiques <strong>et</strong> traitements graphiques<br />
– Différents formats de données lus<br />
– Plusieurs modu<strong>les</strong> selon besoins<br />
– Communique <strong>avec</strong> SIG (QGIS, ArcGIS, ...) ou base de données<br />
(PostGIS, SQLite,...)<br />
– Lit <strong>et</strong> écrit <strong>les</strong> obj<strong>et</strong>s spatiaux (points, polygones, rasters)<br />
– Création de cartes (2D/3D) exportab<strong>les</strong><br />
– Une grande partie des tâches SIG<br />
– Perm<strong>et</strong> d'automatiser la création de rapports
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
1. Présentation de R<br />
<strong>La</strong>ngage <strong>et</strong> environnement open-source<br />
→ Analyses statistiques <strong>et</strong> traitements graphiques<br />
Mais<br />
– Différents formats de données lus<br />
– Plusieurs modu<strong>les</strong> selon besoins<br />
– Communique <strong>avec</strong> SIG (QGIS, ArcGIS, ...) ou base de données<br />
(PostGIS, SQLite,...)<br />
– Lit <strong>et</strong> écrit <strong>les</strong> obj<strong>et</strong>s spatiaux (points, polygones, rasters)<br />
– Création de cartes (2D/3D) exportab<strong>les</strong><br />
– Une grande partie des tâches SIG<br />
– Perm<strong>et</strong> d'automatiser la création de rapports<br />
– Ne fait pas toutes <strong>les</strong> tâches SIG (cf. QGIS pour ça)<br />
– Limitation dans la gestion de la mémoire (quelques astuces)<br />
– Lignes de commande (quelques interfaces graphiques « cliquab<strong>les</strong> »)
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
1. Présentation de OGR / GDAL<br />
Librairies open-source de traduction dans différents formats pour <strong>les</strong><br />
données géospatia<strong>les</strong> (vecteur ou raster)<br />
→ Librarie « rgdal » pour utilisation dans R<br />
→ Système de coordonnées de référence (CRS)<br />
– Système de référence géodésique (ellipsoïde)<br />
– Cartographique (projection plane)<br />
– Syntaxe du CRS équivalente dans QGIS
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
1. Présentation de OGR / GDAL<br />
Librairies open-source de traduction dans différents formats pour <strong>les</strong><br />
données géospatia<strong>les</strong> (vecteur ou raster)<br />
→ Librarie « rgdal » pour utilisation dans R<br />
→ Système de coordonnées de référence (CRS)<br />
– Système de référence géodésique (ellipsoïde)<br />
– Cartographique (projection plane)<br />
– Syntaxe du CRS équivalente dans QGIS<br />
→ Base de données EPSG (référentiel)<br />
EPSG Système Arguments PROJ.4 pour le système CRS<br />
4326 WGS 84 +proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs<br />
2154 RGF93 / <strong>La</strong>mbert-<br />
93<br />
27572 NTF (Paris) /<br />
<strong>La</strong>mbert zone II<br />
+proj=lcc +lat_1=49 +lat_2=44 +lat_0=46.5 +lon_0=3 +x_0=700000<br />
+y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m<br />
+no_defs<br />
+proj=lcc +lat_1=46.8 +lat_0=46.8 +lon_0=0 +k_0=0.99987742<br />
+x_0=600000 +y_0=2200000 +a=6378249.2 +b=6356515<br />
+towgs84=-168,-60,320,0,0,0,0 +pm=paris +units=m +no_defs
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
Plan<br />
1. Présentation de R <strong>et</strong> OGR/GDAL<br />
2. Lecture / écriture de données spatia<strong>les</strong><br />
3. Visualisation<br />
4. Outils de SIG<br />
5. Géostatistiques <strong>et</strong> modélisation
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
2. Lecture / écriture<br />
→ Lecture de différents formats<br />
– Ouverts ou propriétaires
2. Lecture / écriture<br />
Fichiers Fonctions Librairies<br />
Texte :<br />
txt, csv, xyz read.table() ; read.csv() utils<br />
Données vectoriel<strong>les</strong> :<br />
ESRI Shapefile<br />
(shp, shx, dbf, prj)<br />
MapInfo (tab, MIF/MID)<br />
Google Earth (kml)<br />
Raster :<br />
Images (bmp, jpeg, png, Gtiff)<br />
ENVI (hdr)<br />
ESRI (asc)<br />
n<strong>et</strong>cdf<br />
readOGR()<br />
readShapeSpatial()<br />
Shapefile()<br />
read.shapefile()<br />
readOGR()<br />
raster()<br />
readGDAL()<br />
raster()<br />
import.asc()<br />
read.asc()<br />
readGDAL()<br />
raster()<br />
open.ncdf()<br />
rgdal<br />
maptools<br />
raster<br />
shapefi<strong>les</strong><br />
rgdal<br />
raster<br />
rgdal<br />
raster<br />
ade4habitat<br />
SDMTools<br />
rgdal<br />
raster<br />
ncdf<br />
library(rgdal)<br />
# list supported formats by OGR / GDAL<br />
ogrDrivers()<br />
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
2. Lecture / écriture<br />
→ Lecture de différents formats<br />
– Ouverts ou propriétaires<br />
– Lecture de gros jeux de données<br />
- Stockage <strong>et</strong> lecture sur le disque dur <strong>et</strong> non la RAM
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
2. Lecture / écriture<br />
# Chargement des librairies<br />
library(bigmemory) ; library(sp) ; library(raster)<br />
# Changement du répertoire de travail<br />
s<strong>et</strong>wd("/media/Donnees/")<br />
# Lecture d'un gros jeu de données <strong>avec</strong> bigmemory # A ne faire qu'une seule fois : création de descripteurs de la<br />
matrice (ici : env. 10-15min)<br />
databig
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
2. Lecture / écriture<br />
→ Formats des obj<strong>et</strong>s dans R [sp]<br />
– Spatial*DataFrame : coordonnées + attributs + proj<br />
- * : Pixels, Grid, Polygons, Lines, Points<br />
– Raster : origine, nb lignes, nb col, cellsize + valeurs (nombre) + proj<br />
- Non chargé dans la RAM
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
2. Lecture / écriture<br />
→ Écriture<br />
– Obj<strong>et</strong>s vectoriels : writeOGR() [rgdal]<br />
– Rasters : writeRaster() [raster]
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
Plan<br />
1. Présentation de R <strong>et</strong> OGR/GDAL<br />
2. Lecture / écriture de données spatia<strong>les</strong><br />
3. Visualisation<br />
4. Outils de SIG<br />
5. Géostatistiques <strong>et</strong> modélisation
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
3. Visualisation<br />
→ Fonds de carte par défaut<br />
– Polygones monde [maps, mapdata]<br />
– Lignes : rivières mondia<strong>les</strong> (majeures)
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
3. Visualisation<br />
→ Fonds de carte google<br />
– gmap [dismo ; RGoogleMaps]<br />
library(dismo)<br />
g
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
3. Visualisation<br />
→ Fonds de carte openStre<strong>et</strong>Map<br />
– openmap [OpenStre<strong>et</strong>Map]<br />
library(OpenStre<strong>et</strong>Map)<br />
Nantes
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
3. Visualisation<br />
→ Visualisation des rasters<br />
– plot / image [raster]<br />
plot(RastMean_proj,col=rainbow(30,start=1/6)[30:1])<br />
color
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
3. Visualisation<br />
→ Visualisation des rasters<br />
– contour [raster]<br />
plot(googlemap2)<br />
lev
3. Visualisation<br />
→ Visualisation des rasters<br />
– 3D [rgl]<br />
library(rgl)<br />
open3d()<br />
rgl.bg(col="black")<br />
persp3d(datamat ,col=colormat)<br />
aspect3d(1,1,0.1)<br />
rgl.snapshot( "3D_bathy_2.png", fmt="png", top=TRUE)<br />
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
Plan<br />
1. Présentation de R <strong>et</strong> OGR/GDAL<br />
2. Lecture / écriture de données spatia<strong>les</strong><br />
3. Visualisation<br />
4. Outils de SIG<br />
5. Géostatistiques <strong>et</strong> modélisation
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
4. Outils de SIG<br />
→ Créer points, polygones<br />
– locator<br />
– polygones convexes : chull<br />
– drawPoly / drawLine [raster]<br />
pt
4. Outils de SIG<br />
→ Changement de projection<br />
– spTransform [rgdal]<br />
– projectRaster [raster]<br />
g_croplonlat
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
4. Outils de SIG<br />
→ Jointure spatiale<br />
– point.in.polygon [sp]<br />
– overlay [sp] : points, polygones<br />
– overlay [raster] : entre rasters<br />
– extract [raster]<br />
P1
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
4. Outils de SIG<br />
→ Outils pour rasters [raster]<br />
– aggregate / disaggregate<br />
– crop / expand / merge<br />
– rasterize : transforme points, lignes ou polygones en rasters
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
4. Outils de SIG<br />
→ Outils pour rasters [raster]<br />
– focal / terrain / hillShade<br />
5674*5462=31M : 8M cells non vides<br />
- Calcul pente [terrain]: 7,5 sec<br />
- Ombrage [hillShade]: 11 sec<br />
- BPI (9 cells) [terrain]: 6 sec<br />
- BPI (25 cells) [focal]: 18'30s
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
Plan<br />
1. Présentation de R <strong>et</strong> OGR/GDAL<br />
2. Lecture / écriture de données spatia<strong>les</strong><br />
3. Visualisation<br />
4. Outils de SIG<br />
5. Géostatistiques <strong>et</strong> modélisation
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
5. Géostatistiques<br />
→ variogram [gstat / geoR]<br />
library(gstat)<br />
v.ok
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
5. Géostatistiques<br />
→ Krigeage ordinaire ou en fonction de paramètres<br />
zn.ok
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
5. Géostatistiques<br />
→ inverse distance<br />
zn.idw = krige(log(zinc)~1, meuse, meuse.grid)
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
5. Modélisation<br />
→ Exemple d'un modèle d'habitat de laminaires en baie de Morlaix<br />
– Importer <strong>les</strong> données : SpatialPointsDataFrame [sp]<br />
data_PA
5. Modélisation<br />
→ Exemple d'un modèle d'habitat de laminaires en baie de Morlaix<br />
– Grouper <strong>les</strong> rasters de facteurs : stack [raster]<br />
Bathymétrie B.P.I. Exposition<br />
# Reduce map of factors to the extent chosen;<br />
# resample to g<strong>et</strong> rasters of same extent and resolution for stack.<br />
r
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
5. Modélisation<br />
→ Exemple d'un modèle d'habitat de laminaires en baie de Morlaix<br />
– Extraire <strong>les</strong> facteurs pour chaque point : extract [raster]<br />
Bathymétrie B.P.I. Exposition<br />
physParam
5. Modélisation<br />
→ Exemple d'un modèle d'habitat de laminaires en baie de Morlaix<br />
– Ajuster un modèle sur <strong>les</strong> données<br />
- Présence/Absence ~ bathymétrie + BPI + exposition<br />
library(mgcv)<br />
model
5. Modélisation<br />
→ Exemple d'un modèle d'habitat de laminaires en baie de Morlaix<br />
– Prédire pour la totalité de la zone => raster des predictions : predict [raster]<br />
# Produce a raster of prediction from stack and model<br />
predfun
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
5. Modélisation<br />
Probabilité de<br />
présence<br />
Erreur standard du<br />
modèle
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
5. Modélisation<br />
Probabilité de<br />
présence
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
Bonus<br />
→ Générer des rapports<br />
automatiques<br />
– Pdf / image (pdf, png, jpeg, tiff)<br />
– MS Word [R2wd, SWordInstaller]<br />
– OpenOffice / LibreOffice<br />
[odfWeave]<br />
– <strong>La</strong>teX [Sweave]
S. Roch<strong>et</strong>te ValorIg – 9-10 octobre 2012 Les données spatia<strong>les</strong> dans R<br />
Merci de votre attention<br />
http://cran.r-project.org/<br />
http://r-spatial.sourceforge.n<strong>et</strong>/<br />
http://www.r-bloggers.com/<br />
http://www.portailsig.org/<br />
http://spatialanalysis.co.uk/r/<br />
https://github.com/hadley/ggplot2/wiki<br />
http://had.co.nz/ggplot2/<br />
C<strong>et</strong>te présentation <strong>et</strong> le script R qui va <strong>avec</strong> sont<br />
sur un wiki R sur l'intran<strong>et</strong> d'Ifremer ICI<br />
Page générale du wiki :<br />
http://w3.ifremer.fr/surveillance/aurige/pmwiki-2.1.27/pmwiki.php<br />
Courants (n<strong>et</strong>cdf)