Gestion de données spatialisées vectorisées



Documents pareils
Fiche TD avec le logiciel. Courbes de niveau. D. Chessel

Création de fonds de cartes statiques et dynamiques avec R et Google Maps

Initiation à l analyse en composantes principales

Cartographie avec R. Baptiste Coulmont. 16 septembre 2010

Brochures et guides Crédits d impôt, dégrèvements et taux d imposition pour les années fiscales 2005 et 2006

Opérations de base sur ImageJ

ANALYSES SPATIALES SOUS R

Prise en main du logiciel de SIG MapInfo

Cours iguess. inotes v10.1

Optimiser ses graphiques avec R

Gestion des données avec R

Gestionnaire de champs PRO

Fiches d aide à MapInfo

Adobe Illustrator Logiciel de dessin vectoriel et de Cartographie Assistée par Ordinateur

Rapport de Mini-Projet en ArcGIS Engine

ISFA 2 année Les questions sont en grande partie indépendantes. Merci d utiliser l espace imparti pour vos réponses.

HMI target Visu / PLC HMI. Pour réaliser une interface homme machine avec PLC control

Module Criteo Tags et Flux pour Magento

MANUEL D UTILISATION PRO-FACE

Manipuler des données calendaires

Analyse discriminante et régression logistique: application au cas de l innovation pour les entreprises du Canton du Tessin

Jérôme Mathieu janvier Débuter avec R. Ce document est disponible sur le site web :

Faire un semi variograme et une carte krigée avec surfer

1 Introduction - Qu est-ce que le logiciel R?

Démonstrateur libre Application des données Open Street Map à l analyse géographique de réseaux de voirie et Transports Collectifs

Tutoriel de formation SurveyMonkey

Gnuplot. Chapitre Lancer Gnuplot. 3.2 Options des graphes

Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?

Documentation Administrateur

SEMIN- Gestion des couleurs sous R. Michel BAYLAC. MNHN Département Systématique et Evolution OSEB

Cours 1. I- Généralités sur R II- Les fonctions de R et autres objets III-Les vecteurs

Programmation Python pour Arcgis

Manuel d utilisation de la base de données nationale sur la situation de l enfance en Tunisie CHILDINFO 6.0

Programmation linéaire

MANIPULATION ET VISUALISATION DE GROSSES BASES DE DONNÉES AVEC R

Evolutions technologiques : ArcGIS Desktop. Mehdi HUGUET Thierry BABELAERE

BASE. Vous avez alors accès à un ensemble de fonctionnalités explicitées ci-dessous :

Mise en place d'un serveur d'application SIG au Conseil général de Seine-et-Marne

Seance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.

Configuration et optimisation d'arcgis Server Gaëtan LAVENU ESRI France Sylvain BARD-MAÏER ESRI France

GEOCONCEPT. Les données font leur révolution! Production et rendu cartographiques : du cloud computing au SaaS

L interface Outils, palettes, règles, repères, grille Paramétrer les préférences

PostGIS, un module de PostgreSQL pour les données spatiales

Introduction: 1. définition d un ETL 2. importance et diversité des données spatiales utilitédes ETL géographiques

Les différentes méthodes pour se connecter

Intégration ESRI - SAP Geo-Enablement de l ERP SAP Exemple : GEO.e. Christophe Lapierre Enrique Yaptenco Professional Services - ESRI Suisse

Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online

Cartographie mobile implantée au service de police de la ville de Québec

LOGICIEL DC4D MONITOR

Chapitre 5 : Flot maximal dans un graphe

Introduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011

Introduction à MATLAB R

Innovations Majeures de la Version 4

Qu est-ce que ArcGIS?

Un exemple de régression logistique sous

Manipulation de données avec SAS Enterprise Guide et modélisation prédictive avec SAS Enterprise Miner

Mémo d utilisation de ADE-4

Initiation à LabView : Les exemples d applications :

Individus et informations supplémentaires

Anticiper la gestion d'un séisme dommageable Anticipare la gestione dei danni di un terremoto

LOGICIEL DE MODÉLISATION INTEGRÉE 1D/2D POUR LA GESTION DES EAUX PLUVIALES ET DES EAUX USÉES. drainage. Micro Drainage

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Apprentissage Automatique

Développement mobile MIDP 2.0 Mobile 3D Graphics API (M3G) JSR 184. Frédéric BERTIN

A.-M. Cubat PMB - Import de notices à partir d un tableur Page 1 Source :

FICHE ENSEIGNEMENT SUPERIEUR IRLANDE

Tutoriel: Création d'un Web service en C++ avec WebContentC++Framework

Application SIG : élaboration d une carte de bathymétrie de la Méditerranée marocaine et de la lagune de Nador Par :

Comprendre le Big data grâce à la visualisation

Mises en relief. Information supplémentaire relative au sujet traité. Souligne un point important à ne pas négliger.

PROJET DE MODELISATION CASERNE SERGEANT BLANDAN

Analyse exploratoire des données

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

LA RÉPARTITION DES PROFESSIONNELS DU RACHAT DE CRÉDIT EN FRANCE

TP SIN Traitement d image

TD Introduction aux SIG avec ArcGis 9

Logiciel XLSTAT version rue Damrémont PARIS

LaCieSync. Synchronization Software. getting started guide. Guide de démarrage. Guida introduttiva. Erste Schritte. Guía de inicio.

Laurent Jégou 07/12/2012 M2 Sigma

Programmation Web. Madalina Croitoru IUT Montpellier

LA RÉPARTITION DES SERRURIERS EN FRANCE

Lire ; Compter ; Tester... avec R

Notice d utilisation de la carte interactive de l EQUIRANDO 2015

ArcGIS Desktop Les nouveautés de la version 10. Gaëtan LAVENU

Utilisation de QGis comme outil nomade de saisie 2 e partie : exemples

Fête de la science Initiation au traitement des images

Ricco Rakotomalala R.R. Université Lyon 2

FICHE PRODUIT. MapInfo Professional v12.5 Evolution. Comparaison de la v12.5 avec les anciennes versions. Les plus de MapInfo Professional v12.

EXCEL TUTORIEL 2012/2013

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

Gestion mémoire et Représentation intermédiaire

REALISATION D UN MAILLAGE

Un SIG collaboratif pour la recherche historique Partie. Partie 1 : Naissance et conception d un système d information géo-historique collaboratif.

Aide-mémoire de statistique appliquée à la biologie

Chapitre VI- La validation de la composition.

GUIDE DE DÉMARRAGE. SitagriPro Infinite FINANCEAGRI. Un service. c o r p o r a t e

Vérification formelle de la plate-forme Java Card

Transcription:

Fiche TD avec le logiciel : ter5 Gestion de données spatialisées vectorisées S. Dray La fiche présente un état des lieux concernant la gestion de données spatialisées dans R. On s intéresse ici aux données vectorisées en s appuyant sur l utilisation des librairies ade4, adehabitat, spdep, maptools et sp. Les outils de cartographie sont également présentés. Table des matières 1 Introduction 2 2 Le grand bazar 3 3 Interface SIG 4 4 La librairie sp 6 4.1 Classes................................. 6 4.2 Méthodes............................... 8 4.3 Quelques fonctions utiles....................... 10 4.4 Conversions, importation et exportation.............. 11 5 Cartographie 11 5.1 Représentations surfaciques..................... 11 5.2 Représentations ponctuelles..................... 14 5.3 Courbes de niveaux.......................... 16 Références 17 1

1 Introduction Une grande partie des données acquises, en génétique, en écologie ou en biologie des populations est spatialisée. Les enregistrements de l espace lui-même sont multiples. Enregistrements surfaciques : la mesure porte sur une surface bornée par une frontière. C est le support des données socio-économiques. Un des articles fondateurs de ce domaine traite des comtés d Irlande : library(ade4) data(irishdata) names(irishdata) [1] "area" "county.names" "xy" "tab" "contour" [6] "link" "area.utm" "xy.utm" "link.utm" "tab.utm" [11] "contour.utm" area.plot(irishdata$area.utm) Enregistrements ponctuels : la mesure se réfère à deux coordonnées (x, y). On passe des données surfaciques aux données ponctuelles en choisissant un point particulier par unités : area.plot(irishdata$area.utm) s.label(irishdata$xy.utm, clab = 0, add.plot = T, cpoint = 2) On peut également disposer de données linéaires (e.g., une rivière). Ce type de données étant assez rare, il ne sera pas évoqué dans ce document. Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 2/17 Compilé le 2010-12-08

2 Le grand bazar Du fait du mode de développement de R, un grand nombre de librairies liées à l analyse de données spatiales a été implémenté parallèlement. Pratiquement, chaque librairie possède une structure propre pour gérer ce type de données. Il en résulte un grand nombre de classes, de fonctions de conversions et de difficultés pour l utilisateur qui doit savoir jongler entre les différents formats. On présente ici un éventail non exhaustif de ces différentes classes pour les données surfaciques. Dans la librairie ade4, les enregistrements surfaciques sont stockés sous la forme de data.frame de type area. Ce format est une simple adaptation de ce qui était disponible dans le logiciel ADE4 [Thioulouse et al., 1997]. Le data.frame contient 3 colonnes : une contenant les noms des entités géographiques et deux autres avec les coordonnées en x et y de chaque sommet. head(irishdata$area.utm) reg x y 1 Carlow 240.62 5885.61 2 Carlow 245.93 5883.32 3 Carlow 251.98 5885.42 4 Carlow 253.77 5888.82 5 Carlow 268.26 5883.61 6 Carlow 262.92 5876.30 Pour un polygone avec n sommets, on a n + 1 lignes. En effet, la dernière ligne d un polygone doit être identique à la première afin de refermer le polygone : table(irishdata$area.utm[, 1]) Carlow Cavan Clare Cork Donegal Galway Kerry Kildare 19 27 28 50 59 54 39 25 Kilkenny Laoghis Leitrim Limerick Longford Louth Mayo Meath 20 20 21 23 14 19 62 32 Monaghan Offaly Roscommon Sligo Tipperary Waterford Westmeath Wexford 17 27 33 33 30 24 21 24 Wicklow 26 irishdata$area.utm[c(1, 19), ] reg x y 1 Carlow 240.62 5885.61 19 Carlow 240.62 5885.61 Dans adehabitat, on a le même type de structure de données qui définit une classe d objet : class(irishdata$area.utm) [1] "data.frame" library(adehabitat) This package requires ade4 to be installed Type: demo(rastermaps) for demonstration of raster map analysis demo(homerange) for demonstration of home-range estimation demo(managltraj) for demonstration of animals trajectory management demo(analysisltraj) for demonstration of animals trajectory analysis demo(nichehs) for demonstration of niche/habitat selection analysis ir.area <- as.area(irishdata$area.utm) class(ir.area) [1] "area" "data.frame" Enfin, on peut évoquer les classes polylist et Map des librairies spdep et maptools. Les données sont stockées sous la forme de liste. Ces classes gèrent des structures de données plus complexes comme les lacs (trou dans un polygone) ou les îles (plusieurs polygones associés à une entité). De plus, la classe Map gère également les données attachées aux entités géographiques. Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 3/17 Compilé le 2010-12-08

On dispose de fonctions de conversions pour naviguer entre les différentes structures de données. Dans ade4, les fonctions area2poly et poly2area permettent de naviguer entre les objets de type area et la classe polylist. Dans maptools, on passe d un objet de la classe Map à la classe polylist par la fonction Map2poly. library(maptools) ir.poly <- area2poly(irishdata$area.utm) class(ir.poly) [1] "polylist" maptools:::plot.polylist(ir.poly) 5800 5850 5900 5950 6000 6050 6100 0 100 200 300 3 Interface SIG La plupart des données spatialisées sont stockées dans des systèmes d information géographique (SIG). Plusieurs librairies permettent d interfacer R avec ce type de logiciel. On s intéresse principalement aux fonctions d importation/exportation de fichiers de type shapefile (format du logiciel Arcview). Dans maptools, on a plusieurs solutions pour le faire. La première necessite la librairie shapefiles. On prend l exemple du découpage de la france en départements disponible sur le site de l IGN (http://www.ign.fr/telechargement/ MPro/produit/GEOFLA_Dep/GEOFLA-dep-L2-SF.ZIP) dont on a fait une copie ici http://pbil.univ-lyon1.fr/r/donnees/francedep/. Pour télécharger les fichiers : download.file("http://pbil.univ-lyon1.fr/r/donnees/francedep/dep_france_dom.shp", "dep_france_dom.shp", mode = "wb") download.file("http://pbil.univ-lyon1.fr/r/donnees/francedep/dep_france_dom.shx", "dep_france_dom.shx", mode = "wb") download.file("http://pbil.univ-lyon1.fr/r/donnees/francedep/dep_france_dom.dbf", "dep_france_dom.dbf", mode = "wb") Le fichier est lu par la fonction read.shapefile avant d être transformé en polylist : library(shapefiles) fr.shp <- read.shapefile("dep_france_dom") class(fr.shp) [1] "list" fr.poly <- maptools:::shape2poly(fr.shp) maptools:::plot.polylist(fr.poly) Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 4/17 Compilé le 2010-12-08

1600000 1800000 2000000 2200000 2400000 2600000 0 200000 400000 600000 800000 1000000 1200000 La seconde alternative est basée sur la bibliothèque de fonctions C shapelib (http://shapelib.maptools.org/). La fonction read.shape renvoie un objet de la classe Map : fr.map <- maptools:::read.shape("dep_france_dom.shp") Shapefile type: Polygon, (5), # of Shapes: 100 class(fr.map) [1] "Map" names(fr.map) [1] "Shapes" "att.data" head(fr.map$att.data) ID_GEOFLA CODE_CHF_L NOM_CHF_L X_CHF_LIEU Y_CHF_LIEU X_CENTROID Y_CENTROID 1 49 053 BOURG-EN-BRESSE 8231 21379 8244 21380 2 812 408 LAON 6932 25081 6929 25085 3 1418 190 MOULINS 6763 21743 6758 21740 4 1603 070 DIGNE-LES-BAINS 9124 19067 9124 19065 5 1802 061 GAP 8973 19579 8961 19602 6 2002 088 NICE 9977 18680 9952 18690 NOM_DEPT CODE_REG NOM_REGION CODE_DEPT 1 AIN 82 RHONE-ALPES 01 2 AISNE 22 PICARDIE 02 3 ALLIER 83 AUVERGNE 03 4 ALPES-DE-HAUTE-PROVENCE 93 PROVENCE-ALPES-COTE-D'AZUR 04 5 HAUTES-ALPES 93 PROVENCE-ALPES-COTE-D'AZUR 05 6 ALPES-MARITIMES 93 PROVENCE-ALPES-COTE-D'AZUR 06 maptools:::plot.map(fr.map) xylims$y 1600000 1800000 2000000 2200000 2400000 2600000 0 200000 400000 600000 800000 1000000 1200000 xylims$x Comme indiqué auparavant, la classe Map contient l information géographique (Shapes) et les données associées (att.data). Pour exporter, la fonction write.polylistshape permet d associer un tableau de données de type data.frame à une polylist et de les sauvegarder dans un fichier de type shapefile que l on pourra lire directement dans un SIG. Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 5/17 Compilé le 2010-12-08

4 La librairie sp La multitude de formats de gestion de données spatiales a conduit au développement de la librairie sp. L objectif de cette librairie est de fournir des classes et des méthodes permettant de gérer efficacement l information spatialisée dans R. L établissement d une classe de référence permet alors de faciliter la conversion entre les différents formats et ainsi de simplifier l utilisation des méthodes implémentées dans différentes librairies sur un même jeu de données. Les classes définies dans sp jouent et vont jouer un rôle central dans l exploitation des données spatiales dans R. Le développement des classes Map et polylist et des fonctions associées n est plus suivi depuis la sortie de sp. Le format area, bien plus limité, devrait disparaitre à terme. La librairie sp permet de gérer les polygones, lignes, points et les données raster avec ou sans données associées. Elle utilise des classes et des méthodes de type S4. On se focalisera ici uniquement sur les classes Polygon, Polygons, SpatialPolygons et SpatialPolygonsDataFrame. 4.1 Classes Une entité surfacique définit un objet de la classe Polygon. On peut créer ce type d objet en entrant les coordonnées des sommets comme argument de la fonction Polygon (le premier sommet doit être rentré à la fin pour refermer) : Sr1 <- Polygon(cbind(c(2, 4, 4, 1, 2), c(2, 3, 5, 4, 2))) class(sr1) [1] "Polygon" attr(,"package") [1] "sp" Sr2 <- Polygon(cbind(c(5, 4, 2, 5), c(2, 3, 2, 2))) Sr3 <- Polygon(cbind(c(4, 4, 5, 10, 4), c(5, 3, 2, 5, 5))) Un objet de la classe Polygons contient une liste de Polygon à laquelle est associée un identifiant : Srs1 <- Polygons(list(Sr1), ID = "s1") class(srs1) [1] "Polygons" attr(,"package") [1] "sp" Srs2 <- Polygons(list(Sr2), ID = "s2") Srs3 <- Polygons(list(Sr3), ID = "s3") Un objet de la classe SpatialPolygons contient une liste de Polygons : SPp <- SpatialPolygons(list(Srs1, Srs2, Srs3)) class(spp) [1] "SpatialPolygons" attr(,"package") [1] "sp" plot(spp, col = 1:3) Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 6/17 Compilé le 2010-12-08

La fonction SpatialPolygons peut également prendre comme argument un ordre pour représenter les données (utile si des entités se superposent) et une projection. On peut gérer les iles : Sr4 <- Polygon(cbind(c(7, 8, 8, 7), c(2, 2, 1, 2))) Srs2 <- Polygons(list(Sr2, Sr4), ID = "s2+s4") SPp <- SpatialPolygons(list(Srs1, Srs2, Srs3)) plot(spp, col = 1:3) et les lacs : Sr5 <- Polygon(cbind(c(5, 6, 6, 5, 5), c(4, 4, 3, 3, 4)), hole = TRUE) Srs3 <- Polygons(list(Sr3, Sr5), ID = "s3-s5") SPp <- SpatialPolygons(list(Srs1, Srs2, Srs3)) plot(spp, col = 1:3, pbg = "white") Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 7/17 Compilé le 2010-12-08

Finalement, on peut associer un jeu de données (data.frame) à un objet SpatialPolygons. Pour cela, il faut que les noms des lignes du data.frame soient identiques aux IDs du SpatialPolygons : df1 <- data.frame(v1 = 1:3, v2 = letters[1:3], v3 = c(1, 1, 5), row.names = c("s1", "s2+s4", "s3-s5")) df1 v1 v2 v3 s1 1 a 1 s2+s4 2 b 1 s3-s5 3 c 5 SPpdf <- SpatialPolygonsDataFrame(SPp, df1) class(sppdf) [1] "SpatialPolygonsDataFrame" attr(,"package") [1] "sp" L objet résultant est de la classe SpatialPolygonsDataFrame. 4.2 Méthodes Il existe plusieurs méthodes associées aux classes de sp. Ce premier groupe inclut des méthodes standards : [ permet de selectionner des entités et/ou des variables du tableau de données. SPp2 <- SPp[1:2] plot(spp2, col = 1:2, pbg = "white") SPpdf2 <- SPpdf[1:2, 1] as.data.frame(sppdf) v1 v2 v3 s1 1 a 1 s2+s4 2 b 1 s3-s5 3 c 5 as.data.frame(sppdf2) v1 s1 1 s2+s4 2 [[ permet de selectionner une colonne du tableau de données. Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 8/17 Compilé le 2010-12-08

SPpdf[[2]] [1] a b c Levels: a b c [[<- permet d assigner une valeur à une colonne du tableau de données. SPpdf[[2]] [1] a b c Levels: a b c SPpdf[[2]] <- factor(letters[7:9]) SPpdf[[2]] [1] g h i Levels: g h i print, summary, plot, dim, names, as.data.frame,... D autres méthodes sont plutôt orientées sur la partie spatiale : dimensions renvoie le nombre de dimensions spatiales. dimensions(sppdf) [1] 2 bbox renvoie les coordonnées du rectangle contenant l ensemble des données (bounding box). bbox(sppdf) min max r1 1 10 r2 1 5 coordinates renvoie les coordonnées spatiales. Pour un objet surfacique, la fonction renvoie les coordonnées des centres des polygones. coordinates(sppdf) [,1] [,2] [1,] 2.696970 3.545455 [2,] 3.666667 2.333333 [3,] 6.133333 3.933333 plot(sppdf) points(coordinates(sppdf), col = "blue", pch = 20, cex = 2) Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 9/17 Compilé le 2010-12-08

spplot permet de faire une représentation graphiques des variables associées. Nous y reviendrons plus tard. spplot(sppdf) v3 5.0 4.5 4.0 v2 3.5 3.0 2.5 v1 2.0 1.5 1.0 gridded, transform, overlay, spsample 4.3 Quelques fonctions utiles On présente ici quelques fonctions utiles pour manipuler les objets de type SpatialPolygons ou SpatialPolygonsDataFrame : spcbind rajoute une ou plusieurs variable au tableau de données associé d un SpatialPolygonsDataFrame : v4 <- 9:11 SPpdf3 <- spcbind(sppdf, v4) as(sppdf3, "data.frame") v1 v2 v3 v4 s1 1 g 1 9 s2+s4 2 h 1 10 s3-s5 3 i 5 11 sprbind rajoute des enregistrements à un SpatialPolygonsDataFrame ou un SpatialPolygons : SPpdf4 <- SPpdf[1, ] SPpdf5 <- SPpdf[2, ] SPpdf6 <- sprbind(sppdf4, SPpdf5) spchfids change les IDs d un SpatialPolygonsDataFrame ou d un SpatialPolygons : SPpdf7 <- spchfids(sppdf6, c("lab1", "lab2")) as(sppdf7, "data.frame") v1 v2 v3 lab1 1 g 1 lab2 2 h 1 polygons permet d assigner ou de récupérer la partie spatiale d un objet : class(polygons(sppdf)) [1] "SpatialPolygons" attr(,"package") [1] "sp" Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 10/17 Compilé le 2010-12-08

4.4 Conversions, importation et exportation De nombreuses fonctions permettent de convertir différentes classes vers celles définies dans sp (et inversement). On citera notamment les fonctions de adehabitat : area2spol : convertit un objet area en SpatialPolygons. spol2area : convertit un objet SpatialPolygons ou SpatialPolygons- DataFrame en area. attpol2area : récupère les données associées d un SpatialPolygonsDataFrame et renvoie un data.frame Voir également dans maptools les fonctions de conversions avec les classes de spatstat, maps ou PBSmapping notamment. Les fonctions readshapepoly et writepolyshape permettent d importer et d exporter des fichiers shapefile vers des objets de type SpatialPolygonsData- Frame : fr.sppdf <- readshapepoly("dep_france_dom") 5 Cartographie La représentation cartographique de données ou de résultats est une étape primordiale lorsqu on analyse des données spatialisées. On illustre avec les résultats du premier tour de l élection présidentielle de 1988. Les données sont disponibles dans la pile de données elec88 : data(elec88) names(elec88) [1] "tab" "res" "lab" "area" "contour" "xy" "neig" Cette liste contient notamment un découpage en départements de type area (area), les coordonnées des centres des départements (xy) et un tableau de données (tab). 5.1 Représentations surfaciques On représente le fond de carte : area.plot(elec88$area) Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 11/17 Compilé le 2010-12-08

Pour représenter le score du candidat Chirac : area.plot(elec88$area, values = elec88$tab$chirac, sub = "Chirac", csub = 2) Chirac 15] 20] 25] 30] 35] Pour représenter les scores de tous les candidats : par(mfrow = c(3, 3)) for (i in 1:9) { x <- elec88$tab[, i] area.plot(elec88$area, val = x, sub = names(elec88$tab)[i], csub = 3, cleg = 1.5) } Mitterand Chirac Barre 25] 30] 35] 40] Le.Pen 15] 20] 25] 30] 35] Lajoinie 6] 8] 10] 12] 14] 16] 18] Waechter 10] 15] 20] 25] Juquin 2] 4] 6] 8] 10] 12] 14] 16] 3] 4] 18] 5] 6] 7] 8] 9] Laguillier Boussel 1] 1.5] 2] 2.5] 3] 3.5] 1.4] 1.6] 1.8] 2] 2.2] 2.4] 2.6] 0.2] 2.8] 0.3] 0.4] 0.5] Pour illustrer l utilisation de sp, on utilise le fond de carte IGN. L information de elec88 concerne 94 départements, il y a en 100 dans les données IGN. Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 12/17 Compilé le 2010-12-08

On enlève les départements supplémentaires (DOM-TOM, Corse) du fond de carte IGN : dep94 <- substr(rownames(elec88$tab), 2, 10) dep94[1:9] <- paste("0", dep94[1:9], sep = "") fr.sppdf94 <- fr.sppdf[as.character(fr.sppdf$code_dept) %in% dep94, ] plot(fr.sppdf94) On peut alors créer un nouvel objet SpatialPolygonsDataFrame dans lequel on associe le tableau concernant les élections : fr.sppdf94 <- spchfids(fr.sppdf94, row.names(elec88$tab)) fr.sppdf94.el <- SpatialPolygonsDataFrame(polygons(fr.SPpdf94), elec88$tab) names(fr.sppdf94.el) [1] "Mitterand" "Chirac" "Barre" "Le.Pen" "Lajoinie" "Waechter" [7] "Juquin" "Laguillier" "Boussel" La carte pour le candidat Chirac en niveaux de gris : brks <- quantile(fr.sppdf94.el$chirac, seq(0, 1, 1/7)) cols <- grey((length(brks):2)/length(brks)) plot(fr.sppdf94.el, col = cols[findinterval(fr.sppdf94.el$chirac, brks, all.inside = TRUE)]) La même carte avec des densités de lignes : dens <- (2:length(brks)) * 3 plot(fr.sppdf94.el, density = dens[findinterval(fr.sppdf94.el$chirac, brks, all.inside = TRUE)]) Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 13/17 Compilé le 2010-12-08

On peut également utiliser la fonction spplot qui est plus évoluée. La carte pour les candidats Mitterand et Chirac : spplot(fr.sppdf94.el, c("chirac", "Mitterand")) Chirac Mitterand 45 40 35 30 25 20 15 5.2 Représentations ponctuelles Une alternative à la coloration de surfaces consiste à représenter des données ponctuelles. On associe un point à chaque polygone (son centre par exemple) et on cartographie alors sur les points. La fonction s.value de librairie ade4 permet ce type de représentation. Par niveaux de gris : area.plot(elec88$area) s.value(elec88$xy, elec88$tab$chirac, method = "greylevel", add.plot = TRUE) Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 14/17 Compilé le 2010-12-08

15] 20] 25] 30] 35] Par taille variable des symboles : area.plot(elec88$area) s.value(elec88$xy, elec88$tab$chirac, add.plot = TRUE) 12.5 17.5 22.5 27.5 32.5 37.5 Si on centre les données, sur le fond de carte IGN : plot(fr.sppdf94.el, col = "lightgrey") s.value(coordinates(fr.sppdf94.el), scale(elec88$tab$chirac, scale = FALSE), add.plot = TRUE, sub = "Chirac", csub = 2) Chirac 7.5 2.5 2.5 7.5 12.5 17.5 La librairie sp, offre le même type de graphique : Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 15/17 Compilé le 2010-12-08

1 1 2 S. Dray fr.spoints <- SpatialPointsDataFrame(coordinates(fr.SPpdf94.el), as.data.frame(fr.sppdf94.el)) spplot(fr.spoints, "Chirac", sp.layout = list("sp.polygons", fr.sppdf94.el), cex = 2) [14.5,19.44] (19.44,24.38] (24.38,29.32] (29.32,34.26] (34.26,39.2] 5.3 Courbes de niveaux Finalement, on peut évoquer les courbes de niveaux. C est un jeu algorithmique sur un ensemble de valeurs placées sur un réseau. Les points sont placés entre une mesure supérieure au seuil et une mesure inférieure au seuil par interpolation linéaire. Quelles que soient les valeurs, on a une solution unique. Les mesures ne sont pas en général sur un réseau. On estime alors à partir des données en (x,y) des valeurs sur un réseau qui recouvre la zone d étude. Il existe des méthodes simples (régression polynomiale) ou sophistiquées (krigeage). Une des plus efficace est la régression locale étendue de une à deux dimensions (loess) utilisée dans la fonction s.image : s.image(coordinates(fr.sppdf94.el), elec88$tab$le.pen, kgrid = 5, sub = "Le Pen", csub = 2) Spatial Point Pattern Analysis Code in S-Plus Version 2 - Spatial and Space-Time analysis plot(fr.sppdf94.el, add = T) Le Pen 0.5 0.5 0.5 1 1.5 0 2.5 Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 16/17 Compilé le 2010-12-08

Références J. Thioulouse, D. Chessel, S. Dolà dec, and J.M. Olivier. ADE-4 : a multivariate analysis and graphical display software. Statistics and Computing, 7 : 75 83, 1997. Logiciel R version 2.10.0 (2009-10-26) ter5.rnw Page 17/17 Compilé le 2010-12-08