11.07.2014 Views

La cartographie et les analyses spatiales avec R

La cartographie et les analyses spatiales avec R

La cartographie et les analyses spatiales avec R

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<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)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!