SlideShare una empresa de Scribd logo
1 de 40
Descargar para leer sin conexión
1
Sommaire
Remerciements...........................................................................................................1
I- Introduction:.........................................................................................................2
II- Big Data : .............................................................................................................4
1) Le phénomène Big Data : .................................................................................4
2) Le Big Data, c’est quoi ? ..................................................................................4
3) Big Data : l’analyse de données en masse :......................................................5
4) Problème lié à l’utilisation de R pour le traitement des Big Data....................6
5) Quelques solutions............................................................................................6
III- Les techniques statistiques en big data : ..............................................................7
a) - Méthodes descriptives : ....................................................................................7
b) - Méthodes prédictives :......................................................................................8
IV- Les outils R pour analyser Big Data :..................................................................9
V- Analyse Spatiale :...............................................................................................11
1) Définition analyse spatiale :............................................................................12
2) Les domaines d‘application :..........................................................................12
3) L’analyse spatiale dans R : .............................................................................13
4) Avantages d’utilisation du logiciel R : ...........................................................13
5) Inconvénients d’utilisation de R:....................................................................13
6) Les packages :.................................................................................................13
7) Utilisation:.......................................................................................................14
8) Les polygones : ..............................................................................................15
9) Le Raster :......................................................................................................16
10) Quelques Traitements graphiques ...............................................................16
11) Les études de cas : .......................................................................................22
VI- Conclusion: ........................................................................................................40
2
I- Introduction:
Tous les deux jours, l’humanité produit autant d’information que ce qu’elle
a généré depuis l’aube de la civilisation jusqu’en 2003. Plus de 90% des
données disponibles aujourd’hui ont été produites ces 2 dernières années.
Et ce volume d’information numérique double tous les deux ans. C’est dire
l’enjeu considérable que constituent le traitement, l’analyse, le stockage et
le décryptage de ces mégadonnées, Big Data en anglais, dans le texte, et
les nouveaux horizons qu’elles créent pour l’ensemble de la recherche
scientifique en permettant l’accès à une quantité inédite d’informations
brutes qui recèle des trésors de connaissance, oui, mais des trésors de
connaissance difficile d’accès…
L’historique du big data :
Le Big data a une histoire récente et pour partie cachée, en tant qu'outil des
technologies de l'information et comme espace virtuel prenant une importance
volumique croissante dans le cyberespace. L'expression « Big data » serait apparue
en octobre 1997 selon les archives de la bibliothèque numérique de l’ACM
(Association for Computing Machinery), dans des articles scientifiques sur les défis
technologiques à relever pour visualiser les « grands ensembles de données ».Selon
3
V. Tréguier (2014) et selon la « très courte histoire du Big data » publiés par Gil
Press en 201316 pour la période 1944-2012, sa naissance est liée aux progrès des
systèmes de stockage, de fouille et d'analyse de l'information numérisée, qui ont
permis une sorte de Big bang de l'information stockée puis une croissance
inflationniste de l'univers de la donnée numérisée. Mais ses prémisses
sont à trouver dans le croisement de la cybernétique et de courants de pensée nés
durant la Seconde Guerre mondiale, selon lesquels l’homme et le monde peuvent
être représentés comme «des ensembles informationnels, dont la seule différence
avec la machine est leur niveau de complexité. La vie deviendrait alors une suite de
0 et de 1, programmable et prédictible ».
4
II- Big Data :
1) Le phénomène Big Data :
L’explosion quantitative des données numériques a obligé les chercheurs à trouver
de nouvelles manières de voir et d’analyser le monde. Il s’agit de découvrir de
nouveaux ordres de grandeur concernant la capture, la recherche, le partage, le
stockage, l’analyse et la présentation des données. Ainsi est né le « Big Data ». Il
s’agit d’un concept permettant de stocker un nombre indicible d’informations sur
une base numérique. Selon les archives de la bibliothèque numérique de
l’Association for Computing Machinery (ou ACM) dans des articles scientifiques
concernant les défis technologiques à relever pour visualiser les « grands ensembles
de données », cette appellation est apparue en octobre 1997.
2) Le Big Data, c’est quoi ?
Littéralement, ces termes signifient méga données, grosses données ou
encore données massives. Ils désignent un ensemble très volumineux de données
qu’aucun outil classique de gestion de base de données ou de gestion de
l’information ne peut vraiment travailler. En effet, nous procréons environ 2,5
trillions d’octets de données tous les jours. Ce sont les informations provenant de
partout : messages que nous nous envoyons, vidéos que nous publions,
informations climatiques, signaux GPS, enregistrements transactionnels d’achats en
ligne et bien d’autres encore. Ces données sont baptisées Big Data ou volumes
massifs de données. Les géants du Web, au premier rang desquels Yahoo (mais
aussi Facebook et Google), ont été les tous premiers à déployer ce type de
technologie.
Cependant, aucune définition précise ou universelle ne peut être donnée au Big
Data. Etant un objet complexe polymorphe, sa définition varie selon les
communautés qui s’y intéressent en tant qu’usager ou fournisseur de services. Une
approche transdisciplinaire permet d’appréhender le comportement des différents
acteurs : les concepteurs et fournisseurs d’outils (les informaticiens), les catégories
d’utilisateurs (gestionnaires, responsables d’entreprises, décideurs politiques,
chercheurs), les acteurs de la santé et les usagers.
5
3) Big Data : l’analyse de données en masse :
Inventé par les géants du web, le
Big Data se présente comme une
solution dessinée pour permettre à
tout le monde d’accéder en temps
réel à des bases de données géantes.
Il vise à proposer un choix aux
solutions classiques de bases de
données et d’analyse (plate-forme
de Business Intelligence en serveur
SQL…).
Selon le Gartner, ce concept
regroupe une famille d’outils qui
répondent à une problématique
dite règle des 5V.
a) Le volume :
Le volume correspond à la masse d’informations produite chaque seconde. Selon
des études, pour avoir une idée de l’accroissement exponentiel de la masse de
données, on considère que 90 % des données ont été engendrées durant les années
où l’usage d’internet et des réseaux sociaux a connu une forte croissance.
L’ensemble de toutes les données produites depuis le début des temps jusqu’à la fin
de l’année 2008, conviendrait maintenant à la masse de celles qui sont générées
chaque minute. Dans le monde des affaires, le volume de données collecté chaque
jour est d’une importance vitale.
b) La vélocité :
La vélocité équivaut à la rapidité de l’élaboration et du déploiement des nouvelles
données. Par exemple, si on diffuse des messages sur les réseaux sociaux, ils
peuvent devenir « viraux » et se répandre en un rien de temps. Il s’agit d’analyser
les données au décours de leur lignée (appelé parfois analyse en mémoire) sans
qu’il soit indispensable que ces informations soient entreposées dans une base de
données.
c) La variété :
Seulement 20% des données sont structurées puis stockées dans des tables de bases
de données relationnelles similaires à celles utilisées en gestion comptabilisée. Les
80% qui restent sont non-structurées. Cela peut être des images, des vidéos, des
textes, des voix, et bien d’autres encore… La technologie Big Data, permet de faire
6
l’analyse, la comparaison, la reconnaissance, le classement des données de
différents types comme des conversations ou messages sur les réseaux sociaux, des
photos sur différents sites etc. Ce sont les différents éléments qui constituent la
variété offerte par le Big Data.
d) La véracité
La véracité concerne la fiabilité et la crédibilité des informations collectées.
Comme le Big Data permet de collecter un nombre indéfini et plusieurs formes de
données, il est difficile de justifier l’authenticité des contenus, si l’on considère les
post Twitter avec les abréviations, le langage familier, les hashtags, les coquilles
etc. Toutefois, les génies de l’informatique sont en train de développer de nouvelles
techniques qui devront permettre de faciliter la gestion de ce type de données
notamment par le W3C.
e) La valeur
La notion de valeur correspond au profit qu’on puisse tirer de l’usage du Big Data.
Ce sont généralement les entreprises qui commencent à obtenir des avantages
incroyables de leurs Big Data. Selon les gestionnaires et les économistes, les
entreprises qui ne s’intéressent pas sérieusement au Big Data risquent d’être
pénalisées et écartées. Puisque l’outil existe, ne pas s’en servir conduirait à perdre
un privilège concurrentiel.
4) Problème lié à l’utilisation de R pour le traitement des
Big Data
Comme il existe de très nombreux systèmes de gestion de données, il existe de
nombreux environnements logiciels open source à l’interface utilisateur plus ou
moins amicale et acceptant ou non des fonctions écrites en R ou autre langage de
programmation : KNIME, TANAGRA, Weka, ...
Néanmoins, pour tout un tas de raisons dont celle d’un large consensus au sein
d’une très grande communauté d’utilisateurs, le logiciel libre R est une référence
pour l’analyse ou l’apprentissage statistique de données conventionnelles, comme
pour la recherche et le développement, la diffusion de nouvelles méthodes.
Le principal problème de R (version de base) est que son exécution nécessite de
charger toutes les données en mémoire vive. En conséquence, dès que le volume est
important, l’exécution se bloque.
5) Quelques solutions
Une première façon de procéder avec R, pour analyser de grandes masses, consiste
simplement à extraire une table, un sous-ensemble ou plutôt un échantillon
7
représentatif des données avec du code java, Perl, Python, Ruby... avant de les
analyser dans R.
Une autre solution consiste à utiliser une librairie permettant une extension
virtuelle sur disque de la mémoire vive (ce qui a pour contrepartie d’alourdir les
temps d’accès aux données donc les temps de calcul). C’est le rôle des packages ff
bigmemory, mais qui ne gèrent pas la distribution du calcul en parallèle, et
également aussi de ceux interfaçant R et Hadoop.
III- Les techniques statistiques en big
data :
a) - Méthodes descriptives :
Ces méthodes visent à structurer et simplifier les données issues de plusieurs
variables, sans privilégier l’une d’entre elles en particulier. Parmi ces méthodes, il
ressort 4 analyses plus fréquemment utilisées pour le traitement des enquêtes :
1) L’ACP
L’ACP s’applique à un ensemble de variables numériques. Elle permet de
positionner les individus sur un plan en deux dimensions, en fonction de la
proximité de leurs réponses aux questions sélectionnées.
L’ACP permet ainsi de mettre en évidence la structuration des réponses en
montrant le regroupement des individus selon des combinaisons de réponses aux
questions prises en compte.
En effet, En pratique l’ACP aide à la structuration de la réponse d’individus
statistiques limités surtout lorsqu’on souhaite analyser des variables en tenant
compte de différents critères d’ordre numérique. Leur représentation indique les
corrélations illustrées à l’intérieur d’un cercle de rayon 1.
2) L’AFC
L’Analyse Factorielle des Correspondances (AFC) est une méthode factorielle de
Statistique Descriptive Multidimensionnelle (MDS).
Elle est utilisée lorsque l’on souhaite étudier la liaison entre deux variables
qualitatives (nominales). Dans le cas, d’un jeu de données à plus de 2 variables, on
aura recours à l’ACM. Pour appliquer une AFC, nous avons besoin des
informations suivantes :
Tableau d’effectifs observés: les observations sont synthétisées dans un
tableau de contingence (tableau croisé) indiquant le nombre d’individus ayant telle
8
modalité pour la première variable (ligne) et telle modalité pour la seconde
variable (colonne).
Tableau de fréquences (étape intermédiaire): on transforme le tableau
d’effectifs observés en tableau de fréquence.
Tableau d’effectifs théoriques: il représente la répartition des individus qui
serait obtenue s’il n’y avait aucun lien entre les 2 variables c’est à dire si
l’attribution de chaque modalité était indépendante.
3) L’ACM
L’Analyse des Correspondances Multiples (ACM) généralise l’AFC à un nombre
quelconque de variables et permet donc de représenter sur le même mapping les
modalités de réponses de plus de deux variables. Comme pour l’ACP, le but de ces
analyses est de dégager des dimensions cachées contenues dans les réponses aux
variables sélectionnées, pour faciliter l’interprétation de tableaux pas toujours
lisibles au départ.
L’ACM part d’un tableau disjonctif complet (tableau de Burt) qui présente en ligne
les individus et en colonne toutes les modalités des variables qualitatives retenues.
Les cases d’intersection comportent la valeur 1 si l’individu répond au critère en
colonne et 0 dans le cas contraire.
4) Les méthodes de classification
La classification est une méthode de regroupement des individus selon leurs
ressemblances. La différence est que le nombre de groupes n’est pas à fixer a priori
et que le résultat est représenté sous la forme d’un arbre de classification.
L’élaboration de cet arbre peut être ascendante (méthode la plus fréquemment
utilisée), par regroupements successifs des individus ou descendante, par divisions
successives. L’arbre de classification relie un individu à un autre ou à un sous-
groupe d’individu issus eux-mêmes de regroupements.
b) - Méthodes prédictives :
Les méthodes prédictives ont pour but de faire prédire et anticiper les
comportements d’un individu, phénomène ou matériel…
L'étude met en exergue un cycle de six étapes clés dans l'élaboration de solutions
prédictives grâce au Big data :
Identifier les données utiles en évaluant diverses sources possibles
Triturer les data, les agréger, les compléter, etc.
Construire un modèle prédictif, à partir d'algorithmes statistiques et de
9
'machinelearning'.
Evaluer l'efficacité et la précision du modèle prédictif.
Utiliser le modèle prédictif pour orienter des décisions métiers.
Assurer un suivi de l'application et de l'efficacité du modèle prédictif.
IV- Les outils R pour analyser Big Data :
Pour afficher le résumé des neuf variables qui constituent les données exemples il
faut faire la commande par la fonction rxSummary() et rxCrossTabs().
On utilise la fonction rxSummary() pour résumer les variables correspondant au
jour de la semaine, au cours de clôture et au volume échangé. rxSummary () fournit
des récapitulatifs pour des variables individuelles dans un ensemble de données.
 La syntaxe simple : rxSummary(formula, data)
Formula : Une formule contenant les variables résumées. Typiquement, cette
formule n'a que des variables sur le côté droit du ~ et aussi de séparer les
différentes variables avec un +.
Data : Ensemble de données dans lequel on souhaite rechercher les variables
spécifiées dans la formule.
Si on veut pondérer chaque observation différemment, alors on peut utiliser soit
l'argument pweights soit l'argument fweights.
pweights correspondent à des poids de probabilité, tandis que fweights
correspondent à des poids de fréquence.
10
On peut aussi calculer des tabulations croisées et des comptages fréquentiels à
l'aide de la fonction rxCrossTabs ().
 La syntaxe simple de rxCrossTabs () est similaire à rxSummary ():
rxCrossTabs(formula, data)
Formula : Une formule contenant les variables tabulées.
Data : Ensemble de données dans lequel on souhaite rechercher les variables
spécifiées dans la formule.
L'utilisation de pondérations de fréquence et de probabilité est également
disponible dans cette fonction via les arguments fweights et pweights,
respectivement.
Et pour récapituler les données de vol on utilise les fonctions suivante : rxGetInfo
(), rxSummary () et rxHistogram ().
rxGetInfo () fournit des informations sur l'ensemble de données dans son ensemble :
combien de lignes et de variables, le type de compression utilisé, etc.
De plus, si on définit l'argument getVarInfo sur TRUE, il fournira également un
bref résumé des variables. Si on spécifie l'argument numRows, il renvoie également
les premières lignes de numRows.
a. rxHistogram () fournira un histogramme d'une seule variable.
11
Data : soit un objet de source de données, une chaîne de caractères spécifiant un
fichier .xdf ou un objet de bloc de données.
On utilise la fonction rxPredict () pour effectuer des prédictions sur le jeu de
données newData basé sur le modèle logitModel. La fonction rxPredict ()
fonctionne pour les objets rxLogit ainsi que pour les objets rxLinMod, et sa syntaxe
est très similaire entre les deux types d'objets.
La principale différence est que si on travaille avec un modèle linéaire généralisé, il
est utile de spécifier explicitement le type de prédiction qu’on veut. Le type de lien
crée des prédictions à l'échelle de la combinaison linéaire de prédicteurs, où le type
de réponse placera les valeurs prédites sur l'échelle de la variable de réponse. Dans
le cas de la régression logistique, cela signifie que le type de réponse produit des
valeurs prédites qui peuvent être interprétées comme des valeurs de probabilité.
V- Analyse Spatiale :
Un point. Deux points. Trois points. Une multitude de points. Un portrait entier
construit de points, petits et gros, semblables ou non, éparpillés çà et là autour de
quelques agrégats. Des points en modélisation des transports ? Il en existe
plusieurs. Il existe toute une panoplie d’entités urbaines dont l’expression spatiale
la plus simple est le point : les ménages échantillonnés lors des enquêtes Origine-
Destination, les secteurs de dénombrement, plus petite entité statistique pour
laquelle des données de recensement sont collectées, les nœuds du réseau de
transport en commun, les extrémités de déplacements, les lieux d’emplois, les
espaces de stationnement, les localisations successives exprimant la trace d’un
véhicule muni d’un GPS.
Des nuages de points deviennent des révélateurs de comportements et tendances
lorsque examinés par le biais des outils disponibles dans les systèmes d’information
géographiques et disciplinés selon des méthodes appropriées. L’identification et
l’application de ces outils et méthodes ainsi que le choix et la structuration des
données requises pour les utiliser sont des enjeux très actuels qui méritent d’être
discutés.
Une série d’expériences intéressantes permettra d’illustrer la puissance de Big data
12
pour traiter rapidement des volumes impressionnant de données variées, afin d’en
tirer un sens pour son exploitation dans des applications géospatiales.
1) Définition analyse spatiale :
L'analyse spatiale est une approche géographique qui étudie les localisations et
les interactions spatiales en tant que composantes actives des fonctionnements
sociétaux. Elle part du postulat selon lequel l'espace est acteur organisé. C'est une
science nomothétique donc elle vise à proposer une approche modélisée de
l'espace géographique en mettant en évidence des formes récurrentes d'organisation
spatiales et des théories, notamment à travers diverses notions-
clés : distance, réseaux, structure, situation… L'espace n'est donc pas seulement
considéré comme un simple support mais comme un élément décisif d'une
organisation sociale.
Il s'agit de prendre en compte un ensemble complexe de données physiques et
humaines pour analyser les distributions spatiales de divers phénomènes, en
prenant garde de ne pas tomber dans le déterminisme strict. Les raisonnements
d'analyse spatiale s'appuient beaucoup sur les données statistiques et sur des
espaces isotropes (cela permet d'élaborer des théories qui sont ensuite appliquées à
l'espace réel, par essence anisotrope, en tenant compte des particularités).
2) Les domaines d‘application :
Tourisme (gestion des infrastructures, itinéraires touristiques)
Marketing (localisation des clients, analyse du site) • Planification urbaine
(cadastre, voirie, réseaux assainissement)
Protection civile (gestion et prévention des catastrophes) • Transport (planification
des transports urbains, optimisation d'itinéraires)
Hydrologie
Forêt (cartographie pour aménagement, gestion des coupes et sylviculture)
Géologie (cartographie, aléas, amiante environnemental, prospection minière)
Biologie (études du déplacement des populations animales)
Télécoms (implantation d'antennes pour les téléphones mobiles)
13
3) L’analyse spatiale dans R :
Dans le domaine géospatial, R est utilisé depuis longtemps avec de très nombreux
paquets (packages) disponibles.
4) Avantages d’utilisation du logiciel R :
R sait analyser toutes les données. Il peut donc effectuer toutes les analyses
mathématiques, statistiques et spatiales sur les données géospatiales (vecteurs et
raster). Il n'y a donc pas besoin d'extensions spécifiques, souvent pas très bon
marché...;
R peut effectuer une grande partie des tâche SIG comme la topologie, l'algèbre
sur les rasters etc.;
R sait communiquer avec des bases de données spatiales ou non, ou lire et
écrire des fichiers vecteurs comme les shapefiles ou des rasters géoréférencés;
R sait créer des cartes 2d et 3d très sophistiquées qui peuvent être exportées
dans divers formats, bitmap (tiff, JPEG, png ...), vectoriel (EPS, PDF, svg...) ou
latex. Ceci d'une manière beaucoup plus pointue que ne le permettent
des SIG comme GRASS;
5) Inconvénients d’utilisation de R:
La visualisation et l'édition interactives des objets.
Un autre problème, pour certains, est que R ne s'utilise qu'en ligne de commandes.
Certains paquets permettent cependant de le transformer en un logiciel « clik and
play » plus convivial (R commander, Rattle ou Deducer)
6) Les packages :
L’arrivée des analyses spatiales sous R s’est accompagnée du développement d’une
centaine de packages. Manipuler des objets spatiaux sous R nécessite donc
l’installation préalable de certains d’entre eux. Le package sp est le plus populaire
d’entre eux puisqu’il regroupe les fonctions et les objets spatiaux de base sur
lesquels s’appuient de nombreux autres packages. Voici la liste des packages qui
seront utilisés dans ce document :
- dismo : présente une interface avec Google Maps et permet d’accéder
à de nombreux jeux de données en ligne ;
14
- gstat : offre des outils indispensables pour l’interpolation spatiale
(krigeage) ;
- maptools : permet de manipuler les objets spatiaux en créant une
classe particulière d’objets spatiaux (planar point pattern) ;
- raster : offre de nombreuses fonctions permettant de lire et de
manipuler les objets de type raster ;
- rgeos : permet de manipuler la géométrie des objets spatiaux ;
- rgdal : package permettant d’importer/exporter de nombreux formats
d’objets spatiaux (raster de type grd, GeoTiff, shapefiles ESRI,
fichiers KML, etc.) ;
- sp : package de base définissant des classes d’objets spatiaux et de
nombreuses fonctions permettant de les manipuler ;
- spatstat : offre de nombreux outils pour réaliser des statistiques
spatiales ;
- spdep : idéal pour étudier l’autocorrélation spatiale, mais aussi pour ce
tout qui touche à la modélisation spatiale.
Figure 1: Installation des packages
7) Utilisation:
Rappelons que dans sa version de base, R dispose de tout le nécessaire pour les
traitements statistiques classiques et les graphiques. Tout comme Python, ses
possibilités se voient considérablement accrues par l'adjonction de très nombreuses
librairies (« packages », quasi 2000).
1. Pour obtenir les données SIG à traiter, R va utiliser des packages spatiaux.
Ceux-ci vont permettre la lecture de fichiers comme les shapefiles, la
connexion avec de nombreux SIG, ou la connexion avec des bases de
données spatiales, ou non;
2. Les données sont traitées dans R avec ses fonctions propres ou celles
présentes dans les packages spatiaux;
3. Après traitement, il est possible de « renvoyer » les résultats, soit dans un
fichier, soit dans un SIG, soit dans une base de données. C'est l'aspect qui a
15
déjà été utilisé sur le Portail (géostatistique) et que nous ne développerons
pas ici, car il nous faudrait traiter des cas particuliers (il y a de très nombreux
exemples sur le Net);
4. R permet aussi d'obtenir une représentation graphique 2d et 3d de ces
données. L'utilisation de paquets graphiques spécifiques permet d'améliorer
la présentation.
5. C'est le processus qui est synthétisé dans le graphique suivant:
- On trouve deux modes en analyse spatiale dans R :
8) Les polygones :
Même si la logique est la même que pour les objets spatiaux ponctuels (séparation
des différentes informations en slots), la création de polygones spatiaux est plus
complexe et s’effectuera en plusieurs étapes successives :
– Conversion de coordonnées en polygone simple ;
– Création de polygone multiple ;
16
– Création d’un polygone spatial ;
– Rajout d’une table d’attributs.
9) Le Raster :
Nous allons maintenant introduire un autre package qui offre de nombreux outils
pour manipuler les couches matricielles : le package raster. Voici les principales
possibilités offertes par ce package :
- Création, importation et exportation de couches matricielles ;
- Conversion en objets sp ;
- Modification de l’étendue et de la résolution spatiale ;
- Interpolation et prédiction ;
- Calcul de différentes métriques ;
- Représentation cartographique.
Ce package présente la particularité de ne pas stocker dans la mémoire de R les
valeurs d’un raster lors de son importation : elles ne seront lues que lorsque cela
sera nécessaire (analyse, résumé statistique, cartographie). Ceci présente l’avantage
de pouvoir manipuler des objets matriciels de très grandes dimensions sans
toutefois saturer la mémoire du logiciel.
10) Quelques Traitements graphiques
Lorsqu'on aborde l'aspect graphique de R, on est toujours étonné par la facilité de
création des figures. Afficher un shapefile ne demande que quelques lignes de
code:
base plot
1. > library(maptools)
2. > geol = readShapeSpatial("cal.shp")
3. > plot(geol)
4. > axis(1);axis(2):bbox()
17
Ensuite, tout est paramétrable, représentations, couleurs (RGB), axes, légendes. je vous présente dans la
suite, quelques variations simples avec les mêmes géométries et sans code :
 couleurs, cadre et légende (sans paquet graphique)
18
 couleurs, cadre et légende (paquet sp)
 couleurs, cadre et légende (paquet ggplot2)
 couleurs, légende, sans cadre (sans paquet graphique)
19
 comme un SIG, R sait évidemment superposer plusieurs objets spatiaux vectoriels.
 l'objet point est le résultat d'un échantillonnage géochimique, avec des teneurs en ppm de
différents éléments. Ceux-ci peuvent être « explorés » graphiquement, sans aucun traitement
statistique.
 avec le paquet lattice
20
 avec les paquets sp
 R permet de représenter quantitativement ces données en 3d, mais elles ne s'y prêtent pas bien,
alors j'ai repris celui de la densité de population par état aux États-Unis (paquet lattice)
 R sait aussi traiter les données raster et cela a déjà été montré sur le Portail :

 en 3d avec le paquet rgl
21
 R sait aussi créer des cartes de pentes, etc., mais c'est du traitement...avec les polygones
superposés
 avec les points d'échantillonnage géochimique superposés en bleu (en 3d):
 R permet aussi les changements de projections:
22
 le paquet RgoogleMaps permet alors d'utiliser les fonds Google Maps comme carte. Il faut une clé
Google, gratuite, pour pouvoir l'utiliser (fonds seul, avec le paquet ggplot2, objet spatial sur le
fonds, sans paquet)
11) Les études de cas :
a) Etude de cas 1: Création d’un polygone
Tout d’abord on a créé cinq séries de coordonnées qui vont définir les sommets
de cinq polygones (une série pour le premier polygone, deux séries pour le second,
dont une définira le positionnement du trou, et deux séries pour le dernier polygone
formé de deux polygones).
# Création de la première série de coordonnées
23
# Création de la seconde série de coordonnées
# Création de la troisième, quatrième et cinquième série de coordonnées
# Conversion en polygones simples
La première étape consiste à convertir chaque série de coordonnées en un
polygone simple. Pour cela, on a utilisé la fonction Polygon().
24
# Accès aux coordonnées
On a affiché les coordonnées du premier polygone.
# Conversion en polygones multiples
La seconde étape consiste à créer des polygones multiples, c.-à-d. à regrouper
certains polygones simples dans un même polygone. Cette étape est obligatoire,
même dans le cas d’un polygone formé d’un seul polygone. C’est lors de cette
conversion qu’un identifiant sera donné à chaque polygone multiple. Procédons à
cette transformation en utilisant la fonction Polygons()
# Conversion en polygone spatial
On a créé le polygone spatial, et donc on a regroupé ces trois polygones multiples
en un seul objet spatial. Pour cela, on a créé un objet de classe SpatialPolygons.
# Nom des slots de SP
# Classe du premier élément
25
# Accès aux coordonnées
Enfin, à ce SpatialPolygons on a ajouté une table d’attributs. Construisons tout
d’abord une table d’attributs fictive.
# Creation des champs de la table
# Création de la table
Finalement, on a ajouté cette table dans l’objet sp afin de créer un
SpatialPolygonsDataFrame.
# Rajout d'une table d'attributs et les Nom des slots du polygone spatial
26
# Visualisation du polygone spatial
b) Etude de cas 2 : Création et opérations sur la MAP
d’USA :
La première chose à faire est d’installer les packages nécessaire pour la création de
la Carte.
27
Importation des Library à utiliser
28
Importation de la carte d’USA
Affichage de la carte
29
Un autre affichage différemment
Localisation de certains points
30
La carte des Etats
31
Traçage d’un sous ensemble d’état
Avoir les donnes de la Californie
On trace l’état de Californie
32
Maintenant on trace les frontières
33
c) Etude de cas 3 : Les Crimes a downtown Houston,
Texas
La combinaison de package « ggplot2 et GoogleMaps » :
Le travail ci-dessous résume en détail des nouvelles méthodes pour visualiser des données
spatiales en R en utilisant le package ggplot2 et les appliquer pour Analyser des données
massives « les crimes en Texas en particulier »
Dans ce travail, nous sommes intéressés à
déterminer les zones avec des niveaux
relativement élevés d'activités criminelles
autour du centre-ville de Texas. À cette fin,
nous nous limitons exclusivement aux crimes
violents d'agression aggravée, de vol qualifié,
de viol et de meurtre. En tant que point de
référence spatial, nous considérons que le
centre-ville est la zone entourant
immédiatement l'hôtel de ville (qui peut être
géocodé avec Google Earth).
La première étape consiste à saisir et tracer la
carte qui représente le mieux l'étendue
géographique d'intérêt.
34
Nous avons la carte de google maps et nous avons les données sur les crimes du service de police
de Houston qui a été géocodé en utilisant Google Maps. Nous pouvons maintenant combiner les
deux.
geom_point () : nous aide à savoir l’emplacement des activités criminelles violentes, mais elle
n'est pas aussi utile que la description de la criminalité au centre-ville. Pour cela, des contours
sont utilisées.
35
- Dans cette étude nous avons vu l’utilité de la fonction ggplot2 combinée avec de l’information
spatiale détaillé de google Maps afin de fournir une analyse utile des points où il y a de
criminalité violente au centre de texas
-L’utilisation de googleMaps dans R avec ggplot2 permet aux analystes de visualiser leurs
données sur une échelle géographique familière qui est maintenue cohérente par le framework
ggplot2. Il est beaucoup plus facile d'interpréter l'information spatiale lorsqu'elle est référencée
par des points .
-Deuxièmement, cela nous permet de mieux comprendre et vérifier les données spatiales
provenant de différentes sources.
-Troisièmement, cela permet à l'analyste de créer des graphiques beaucoup plus facilement.
Code
library(ggplot2)
library(ReadImages)
library(RgoogleMaps)
library(MASS)
theme_set(theme_bw())
################################################################################
#################### preload functions for later use ####################
################################################################################
ggimage <- function(image){
require(ggplot2)
if(length(dim(image)) == 2){
message('creating black and white image...')
image <- melt(image)
names(image) <- c('row','column','fill')
plot <- qplot(column, -row, data = image, geom = 'tile', fill = fill) +
scale_fill_gradient(low = 'black', high = 'white')
}
if(length(dim(image)) == 3){
message('creating color image...')
image <- apply(image, 1:2, function(v) rgb(v[1], v[2], v[3]))
image <- melt(image)
names(image) <- c('row', 'column', 'fill')
plot <- qplot(column, -row, data = image, geom = 'tile', fill = fill) +
scale_fill_identity()
}
#return(plot) # remove first pound for the image in the case study
plot +
opts(
axis.line = theme_blank(), axis.ticks = theme_blank(),
axis.text.x = theme_blank(), axis.text.y = theme_blank(),
axis.title.x = theme_blank(), axis.title.y = theme_blank(),
axis.ticks.length = unit(0, "lines"),
axis.ticks.margin = unit(0, "lines"),
legend.position = "none",
panel.background = theme_blank(),
panel.border = theme_blank(),
panel.grid.major = theme_blank(),
panel.grid.minor = theme_blank(),
panel.margin = unit(0, "lines"),
plot.background = theme_blank(),
plot.title = theme_blank(),
plot.margin = unit(c(-1, -1, -1.5, -1.5), "lines")
36
)
}
ggooglemap <- function(location = 'houston',
center = c(lat = 29.7632836, lon = -95.3632715), API,
type = c('color','bw')[1], rgbcoefs = c(0, 1, 0), zoom = 10,
maptype = 'terrain',
destfile = 'TemporaryMap.jpg', n_pix = 640)
{
require(ggplot2)
require(RgoogleMaps)
require(ReadImages)
if(!missing(location)){
url_string <- paste('http://maps.google.com/maps/geo?q=', location, sep = '')
site <- readLines(url(url_string))
site <- site[which(regexpr('coordinates', site) > 0)]
if(is.na(site)) stop('location geocoding error.')
site <- strsplit(site, '[')[[1]][2]
site <- strsplit(site, ',')[[1]][1:2]
latlon <- as.numeric(site)
center <- c(lat = latlon[2], lon = latlon[1])
closeAllConnections()
}
if(missing(API)) API <- '' # ENTER YOUR API HERE
# get map
GetMap(API, center = center[c('lat','lon')],
size = c(n_pix, n_pix), zoom = zoom, format = 'jpg',
maptype = maptype, destfile = destfile)
# load map
map <- read.jpeg(destfile)
# deal with color
if(type == 'color'){
map <- apply(map, 1:2, function(v) rgb(v[1], v[2], v[3]))
} else if(type == 'bw') {
nrow <- nrow(map)
ncol <- ncol(map)
map <- grey(rgb2grey(map, coefs = rgbcoefs))
map <- matrix(map, nrow = nrow, ncol = ncol)
} else {
stop('type must be either 'color' or 'bw'', call. = FALSE)
}
# reshape map for plotting
m_map <- melt(map)
names(m_map) <- c('x','y','fill')
m_map <- within(m_map,{
x <- x - n_pix/2 - 1
y <- y - n_pix/2 - 1
})
mapInfo <- list(lat = center['lat'], lon = center['lon'], zoom = zoom, map)
XY_cent <- LatLon2XY.centered(mapInfo, center['lat'], center['lon'])
#XY2LatLon(HouMapInfo, XY_cent$newX, XY_cent$newY)
# geocode pixel references
s <- (-n_pix/2) : (n_pix/2 - 1)
lat_wrapper <- function(x) XY2LatLon(mapInfo, -n_pix/2, x)[1]
lats <- apply(data.frame(s), 1, lat_wrapper)
lon_wrapper <- function(y) XY2LatLon(mapInfo, y, -n_pix/2)[2]
lons <- apply(data.frame(s), 1, lon_wrapper)
37
# merge colors to latlons and return
df_xy <- expand.grid(x = s, y = s)
df_ll <- expand.grid(lat = rev(lats), lon = lons)
df_xyll <- data.frame(df_xy, df_ll)
df <- suppressMessages(join(df_xyll, m_map, type = 'right'))
df <- df[,c('lon','lat','fill')]
df
}
theme_nothing <- function (base_size = 12){
structure(list(
axis.line = theme_blank(),
axis.text.x = theme_blank(), axis.text.y = theme_blank(),
axis.ticks = theme_blank(),
axis.title.x = theme_blank(), axis.title.y = theme_blank(),
axis.ticks.length = unit(0, "lines"), axis.ticks.margin = unit(0, "lines"),
legend.position = "none",
panel.background = theme_rect(fill = 'white'),
panel.border = theme_blank(),
panel.grid.major = theme_blank(), panel.grid.minor = theme_blank(),
panel.margin = unit(0, "lines"),
plot.background = theme_rect(colour = 'white'),
plot.title = theme_text(size = base_size * 1.2),
plot.margin = unit(c(-1, -1, -1.5, -1.5), "lines")
), class = "options")
}
vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
################################################################################
#################### hadley's picture ####################
################################################################################
hadley <- read.jpeg('hadley.jpg')
# for the axes, remove the pound sign in the ggimage function above
ggimage(hadley) + coord_equal()
################################################################################
#################### making a map ####################
################################################################################
CityHall_latlon <- c(lon = -95.369318, lat = 29.760210)
DowntownMap <-ggooglemap(center = CityHall_latlon, zoom = 14)
qplot(lon, lat, data = DowntownMap, geom = 'tile', fill = fill) +
scale_fill_identity() +
scale_x_continuous('Longitude') +
scale_y_continuous('Latitude') +
coord_equal() +
opts(title = 'Terrain Map of Downtown Houston')
################################################################################
#################### houston crime ####################
################################################################################
load('HoustonCrime.Rdata') # variable name : crime_df
# restrict to violent crimes
violent_crimes <- subset(crime_df,
offense != 'Auto Theft' & offense != 'Theft' & offense != 'Burglary'
)
38
# restrict to year 2010 (january - august)
violent_crimes <- subset(violent_crimes,
time >= ISOdatetime(2010, 1, 1, 0, 0, 0)
)
# grab downtown google map
CityHall_latlon <- c(lon = -95.369318, lat = 29.760210)
DowntownMap <-ggooglemap(center = CityHall_latlon, zoom = 14)
lat_range <- range(DowntownMap$lat)
lon_range <- range(DowntownMap$lon)
# contour plot
ggplot() +
geom_tile(aes(x = lon, y = lat, fill = fill), data = DowntownMap) +
scale_fill_identity() +
geom_density2d(aes(x = lon, y = lat, colour = ..level..),
bins = I(10), fill = NA, alpha = I(1/2), size = I(.75), data = violent_crimes) +
scale_colour_gradient2('ViolentnCrimenDensity',
low = 'darkblue', mid = 'orange', high = 'red', midpoint = 900) +
scale_x_continuous('Longitude', limits = lon_range) +
scale_y_continuous('Latitude', limits = lat_range) +
opts(title = 'Violent Crime Contour Map of Downtown Houston, 2010') +
coord_equal()
# point plot
violent_crimes <- subset(violent_crimes,
lon_range[1] <= lon & lon <= lon_range[2] &
lat_range[1] <= lat & lat <= lat_range[2]
) # cuts out the warning for missing values in geom_point
ggplot() +
geom_tile(aes(x = lon, y = lat, fill = fill), data = DowntownMap) +
scale_fill_identity() +
geom_jitter(aes(x = lon, y = lat, colour = offense, size = offense),
fill = NA, alpha = I(3/4), data = violent_crimes,
position = position_jitter(width = .001, height = .001)) +
scale_x_continuous('Longitude', limits = lon_range) +
scale_y_continuous('Latitude', limits = lat_range) +
scale_colour_discrete('') +
scale_size_manual('', values = c(
'Robbery' = 2, 'Aggravated Assault' = 2.5, 'Rape' = 3, 'Murder' = 4
)) +
opts(title = 'Violent Crime Map of Downtown Houston, 2010') +
coord_equal()
# weather map
load('HoustonCrime.Rdata') # variable name : crime_df
violent_crimes <- subset(crime_df,
offense != 'Auto Theft' & offense != 'Theft' & offense != 'Burglary'
)
violent_crimes <- subset(violent_crimes,
time >= ISOdatetime(2010, 1, 1, 0, 0, 0)
)
CityHall_latlon <- c(lon = -95.369318, lat = 29.760210)
DowntownMap <-ggooglemap(center = CityHall_latlon, zoom = 14, maptype = 'hybrid')
lat_range <- range(DowntownMap$lat)
lon_range <- range(DowntownMap$lon)
vclatlon <- violent_crimes[,c('lon','lat')]
39
vclatlon <- na.omit(violent_crimes[,c('lon','lat')])
vclatlon <- subset(vclatlon,
lon_range[1] <= lon & lon <= lon_range[2] &
lat_range[1] <= lat & lat <= lat_range[2]
)
den <- kde2d(vclatlon$lon, vclatlon$lat, n = 320,
lims = c(lon_range, lat_range))
kde_df <- expand.grid(
lon = seq.int(lon_range[1], lon_range[2], length.out = 320),
lat = seq.int(lat_range[1], lat_range[2], length.out = 320)
)
kde_df$density <- melt(den$z)$value
summary(kde_df$density)
den_fill_scale <- scale_colour_gradient2(low = 'white', mid = 'darkgreen',
high = 'red', midpoint = 225)
den_fill_scale$train(kde_df$density, T)
kde_df$density_s <- den_fill_scale$map(kde_df$density)
kde_df$density_zeroone <- pmin(kde_df$density / max(kde_df$density), .9)
big_plot <- ggplot () +
geom_tile(aes(x = lon, y = lat, fill = fill), data = DowntownMap) +
geom_tile(aes(x = lon, y = lat, fill = density_s, alpha = density_zeroone),
data = kde_df) +
scale_x_continuous('Longitude', limits = lon_range) +
scale_y_continuous('Latitude', limits = lat_range) +
scale_alpha(to = c(0, .9)) +
scale_fill_identity() +
opts(
legend.position = 'none',
title = 'Violent Crime Weather Map of Downtown Houston, 2010'
) +
coord_equal()
little_plot <- ggplot() +
geom_tile(aes(x = lon, y = lat, fill = density_s, alpha = density_zeroone),
data = kde_df) +
scale_alpha(to = c(0, .9)) +
scale_fill_identity() +
coord_equal() +
theme_nothing()
grid.newpage()
pushViewport(viewport(layout = grid.layout(4,4)))
print(big_plot, vp = vplayout(1:4, 1:4))
print(little_plot, vp = vplayout(4, 4))
grid.newpage()
pushViewport(viewport(layout = grid.layout(1000,1000)))
print(big_plot, vp = vplayout(1:1000, 1:1000))
print(little_plot, vp = vplayout(697:897, 740:940))
40
VI- Conclusion:
Depuis la révolution des systèmes d'information géographique dans les années
1980, les bases de données spatiales se sont multipliées et les spécificités de
l'information spatiale impliquent cependant de recourir à des méthodes d'analyse et
de modélisation spécifiquement spatiale, encore très rarement disponibles
aujourd'hui au sein des systèmes d'information géographique. L'idée ici est que
l'analyse spatiale exploratoire des données pourrait permettre de renouveler les
boîtes à outils défaillante.
Les quelques exemples qu’on a cités au cours de ce rapport ne sauraient être
considérés comme représentatifs de l’ensemble des développements menés dans le
champ bouillonnant de l’analyse spatiale exploratoire des données. Ils suffisent
néanmoins à donner un premier aperçu de la philosophie de cette approche
moderne, ainsi que de la puissance des outils mis en œuvre. Les rares
implémentations logicielles disponibles aujourd’hui relèvent toutefois le plus
souvent de prototypes de recherche et freinent incontestablement sa diffusion, y
compris parmi la communauté des géographes.
Cette situation est d’autant plus dommageable que l’analyse spatiale
exploratoire des données pourrait constituer un terrain d’entente privilégié, pour les
partisans et les opposants de la démarche modélisatrice en analyse spatiale.

Más contenido relacionado

La actualidad más candente

Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesJean-Marc Dupont
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & SparkAlexia Audevart
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPTriyadadva
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesLilia Sfaxi
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1Amal Abid
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studiohoracio lassey
 
Projet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoinsProjet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoinsJean-Marc Dupont
 
Etat de l’art approche et outils BI
Etat de l’art approche et outils BIEtat de l’art approche et outils BI
Etat de l’art approche et outils BISaid Sadik
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkAmal Abid
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligences.poles
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataLilia Sfaxi
 
Rapport du projet fin d'etudes
Rapport du projet fin d'etudesRapport du projet fin d'etudes
Rapport du projet fin d'etudesTahani RIAHI
 
Référentiels et Normes pour l'Audit de la Sécurité des SI
Référentiels et Normes pour l'Audit de la Sécurité des SIRéférentiels et Normes pour l'Audit de la Sécurité des SI
Référentiels et Normes pour l'Audit de la Sécurité des SIAlghajati
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5Amal Abid
 
Rapport de projet odoo
Rapport de projet odooRapport de projet odoo
Rapport de projet odooayoub damir
 

La actualidad más candente (20)

Projet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de donnéesProjet BI - 2 - Conception base de données
Projet BI - 2 - Conception base de données
 
Big Data, Hadoop & Spark
Big Data, Hadoop & SparkBig Data, Hadoop & Spark
Big Data, Hadoop & Spark
 
PFE BI - INPT
PFE BI - INPTPFE BI - INPT
PFE BI - INPT
 
Chp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de DonnéesChp2 - Les Entrepôts de Données
Chp2 - Les Entrepôts de Données
 
Pfe
PfePfe
Pfe
 
Cours Big Data Chap1
Cours Big Data Chap1Cours Big Data Chap1
Cours Big Data Chap1
 
Introduction au BIG DATA
Introduction au BIG DATAIntroduction au BIG DATA
Introduction au BIG DATA
 
Présentation Talend Open Studio
Présentation Talend Open StudioPrésentation Talend Open Studio
Présentation Talend Open Studio
 
Projet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoinsProjet BI - 1 - Analyse des besoins
Projet BI - 1 - Analyse des besoins
 
Etat de l’art approche et outils BI
Etat de l’art approche et outils BIEtat de l’art approche et outils BI
Etat de l’art approche et outils BI
 
Cours Big Data Chap4 - Spark
Cours Big Data Chap4 - SparkCours Big Data Chap4 - Spark
Cours Big Data Chap4 - Spark
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
Modele rapport pfe esprit
Modele rapport pfe  espritModele rapport pfe  esprit
Modele rapport pfe esprit
 
Data Science
Data ScienceData Science
Data Science
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Rapport du projet fin d'etudes
Rapport du projet fin d'etudesRapport du projet fin d'etudes
Rapport du projet fin d'etudes
 
Référentiels et Normes pour l'Audit de la Sécurité des SI
Référentiels et Normes pour l'Audit de la Sécurité des SIRéférentiels et Normes pour l'Audit de la Sécurité des SI
Référentiels et Normes pour l'Audit de la Sécurité des SI
 
Big data
Big dataBig data
Big data
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
Rapport de projet odoo
Rapport de projet odooRapport de projet odoo
Rapport de projet odoo
 

Similar a Analyse spatiale en Big data

3 minutes pour comprendre ... le Big Data
3 minutes pour comprendre ... le Big Data3 minutes pour comprendre ... le Big Data
3 minutes pour comprendre ... le Big DataAlain KHEMILI
 
Big data, l'accélération d'innovation
Big data, l'accélération d'innovationBig data, l'accélération d'innovation
Big data, l'accélération d'innovationLionel Martins
 
Boissaye-Marine-M2MAG-mémoire
Boissaye-Marine-M2MAG-mémoireBoissaye-Marine-M2MAG-mémoire
Boissaye-Marine-M2MAG-mémoireMarine Boissaye
 
Livre blanc #G9plus : Big Data - l'accélérateur d'innovation
Livre blanc #G9plus : Big Data - l'accélérateur d'innovationLivre blanc #G9plus : Big Data - l'accélérateur d'innovation
Livre blanc #G9plus : Big Data - l'accélérateur d'innovationInstitut G9+
 
Big data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-businessBig data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-businessVincent de Stoecklin
 
Central634_Dossier_completDV_001
Central634_Dossier_completDV_001Central634_Dossier_completDV_001
Central634_Dossier_completDV_001Bruno CAMBOUNET
 
Big Data RenaissanceNumerique
Big Data RenaissanceNumeriqueBig Data RenaissanceNumerique
Big Data RenaissanceNumeriqueFanny Despouys
 
Qu'est ce que le big data - Présentation AIMM 30 octobre
Qu'est ce que le big data - Présentation AIMM 30 octobreQu'est ce que le big data - Présentation AIMM 30 octobre
Qu'est ce que le big data - Présentation AIMM 30 octobreSimon Boucher
 
Big data-2-170220212621
Big data-2-170220212621Big data-2-170220212621
Big data-2-170220212621Haifa Akermi
 
Big Data Des méandres des outils au potentiel business
Big Data   Des méandres des outils au potentiel businessBig Data   Des méandres des outils au potentiel business
Big Data Des méandres des outils au potentiel businessMouhsine LAKHDISSI
 
Bluemix Paris Meetup : Big data et Analytics - 15 avril 2015
Bluemix Paris Meetup :  Big data et Analytics - 15 avril 2015Bluemix Paris Meetup :  Big data et Analytics - 15 avril 2015
Bluemix Paris Meetup : Big data et Analytics - 15 avril 2015IBM France Lab
 
Les enjeux du Big Data pour l'Entreprise - These professionnelle -Touria Engo...
Les enjeux du Big Data pour l'Entreprise - These professionnelle -Touria Engo...Les enjeux du Big Data pour l'Entreprise - These professionnelle -Touria Engo...
Les enjeux du Big Data pour l'Entreprise - These professionnelle -Touria Engo...Touria Engohan
 
Livre Blanc ALTARES: La Data, nouveau disrupteur du business model des entrep...
Livre Blanc ALTARES: La Data, nouveau disrupteur du business model des entrep...Livre Blanc ALTARES: La Data, nouveau disrupteur du business model des entrep...
Livre Blanc ALTARES: La Data, nouveau disrupteur du business model des entrep...Altares D&B
 
WIlfreid K. AGBO - Knowledge Discovery in Big Data : Healthcare application (...
WIlfreid K. AGBO - Knowledge Discovery in Big Data : Healthcare application (...WIlfreid K. AGBO - Knowledge Discovery in Big Data : Healthcare application (...
WIlfreid K. AGBO - Knowledge Discovery in Big Data : Healthcare application (...Wilfreid AGBO
 

Similar a Analyse spatiale en Big data (20)

3 minutes pour comprendre ... le Big Data
3 minutes pour comprendre ... le Big Data3 minutes pour comprendre ... le Big Data
3 minutes pour comprendre ... le Big Data
 
2014-12-16-G9plus-LB-Big-Data
2014-12-16-G9plus-LB-Big-Data2014-12-16-G9plus-LB-Big-Data
2014-12-16-G9plus-LB-Big-Data
 
Big data, l'accélération d'innovation
Big data, l'accélération d'innovationBig data, l'accélération d'innovation
Big data, l'accélération d'innovation
 
Boissaye-Marine-M2MAG-mémoire
Boissaye-Marine-M2MAG-mémoireBoissaye-Marine-M2MAG-mémoire
Boissaye-Marine-M2MAG-mémoire
 
Introduction
IntroductionIntroduction
Introduction
 
Livre blanc #G9plus : Big Data - l'accélérateur d'innovation
Livre blanc #G9plus : Big Data - l'accélérateur d'innovationLivre blanc #G9plus : Big Data - l'accélérateur d'innovation
Livre blanc #G9plus : Big Data - l'accélérateur d'innovation
 
Le Big Data
Le Big DataLe Big Data
Le Big Data
 
Big data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-businessBig data - Cours d'introduction l Data-business
Big data - Cours d'introduction l Data-business
 
Central634_Dossier_completDV_001
Central634_Dossier_completDV_001Central634_Dossier_completDV_001
Central634_Dossier_completDV_001
 
Big Data RenaissanceNumerique
Big Data RenaissanceNumeriqueBig Data RenaissanceNumerique
Big Data RenaissanceNumerique
 
Qu'est ce que le big data - Présentation AIMM 30 octobre
Qu'est ce que le big data - Présentation AIMM 30 octobreQu'est ce que le big data - Présentation AIMM 30 octobre
Qu'est ce que le big data - Présentation AIMM 30 octobre
 
Etude sur le Big Data
Etude sur le Big DataEtude sur le Big Data
Etude sur le Big Data
 
Big data-2-170220212621
Big data-2-170220212621Big data-2-170220212621
Big data-2-170220212621
 
Big Data Des méandres des outils au potentiel business
Big Data   Des méandres des outils au potentiel businessBig Data   Des méandres des outils au potentiel business
Big Data Des méandres des outils au potentiel business
 
Bluemix Paris Meetup : Big data et Analytics - 15 avril 2015
Bluemix Paris Meetup :  Big data et Analytics - 15 avril 2015Bluemix Paris Meetup :  Big data et Analytics - 15 avril 2015
Bluemix Paris Meetup : Big data et Analytics - 15 avril 2015
 
Les enjeux du Big Data pour l'Entreprise - These professionnelle -Touria Engo...
Les enjeux du Big Data pour l'Entreprise - These professionnelle -Touria Engo...Les enjeux du Big Data pour l'Entreprise - These professionnelle -Touria Engo...
Les enjeux du Big Data pour l'Entreprise - These professionnelle -Touria Engo...
 
Livre Blanc ALTARES: La Data, nouveau disrupteur du business model des entrep...
Livre Blanc ALTARES: La Data, nouveau disrupteur du business model des entrep...Livre Blanc ALTARES: La Data, nouveau disrupteur du business model des entrep...
Livre Blanc ALTARES: La Data, nouveau disrupteur du business model des entrep...
 
Aimit 1 v1.2 fr
Aimit 1 v1.2 frAimit 1 v1.2 fr
Aimit 1 v1.2 fr
 
BigData BigBuzz @ Le Node
BigData BigBuzz @ Le Node BigData BigBuzz @ Le Node
BigData BigBuzz @ Le Node
 
WIlfreid K. AGBO - Knowledge Discovery in Big Data : Healthcare application (...
WIlfreid K. AGBO - Knowledge Discovery in Big Data : Healthcare application (...WIlfreid K. AGBO - Knowledge Discovery in Big Data : Healthcare application (...
WIlfreid K. AGBO - Knowledge Discovery in Big Data : Healthcare application (...
 

Analyse spatiale en Big data

  • 1. 1 Sommaire Remerciements...........................................................................................................1 I- Introduction:.........................................................................................................2 II- Big Data : .............................................................................................................4 1) Le phénomène Big Data : .................................................................................4 2) Le Big Data, c’est quoi ? ..................................................................................4 3) Big Data : l’analyse de données en masse :......................................................5 4) Problème lié à l’utilisation de R pour le traitement des Big Data....................6 5) Quelques solutions............................................................................................6 III- Les techniques statistiques en big data : ..............................................................7 a) - Méthodes descriptives : ....................................................................................7 b) - Méthodes prédictives :......................................................................................8 IV- Les outils R pour analyser Big Data :..................................................................9 V- Analyse Spatiale :...............................................................................................11 1) Définition analyse spatiale :............................................................................12 2) Les domaines d‘application :..........................................................................12 3) L’analyse spatiale dans R : .............................................................................13 4) Avantages d’utilisation du logiciel R : ...........................................................13 5) Inconvénients d’utilisation de R:....................................................................13 6) Les packages :.................................................................................................13 7) Utilisation:.......................................................................................................14 8) Les polygones : ..............................................................................................15 9) Le Raster :......................................................................................................16 10) Quelques Traitements graphiques ...............................................................16 11) Les études de cas : .......................................................................................22 VI- Conclusion: ........................................................................................................40
  • 2. 2 I- Introduction: Tous les deux jours, l’humanité produit autant d’information que ce qu’elle a généré depuis l’aube de la civilisation jusqu’en 2003. Plus de 90% des données disponibles aujourd’hui ont été produites ces 2 dernières années. Et ce volume d’information numérique double tous les deux ans. C’est dire l’enjeu considérable que constituent le traitement, l’analyse, le stockage et le décryptage de ces mégadonnées, Big Data en anglais, dans le texte, et les nouveaux horizons qu’elles créent pour l’ensemble de la recherche scientifique en permettant l’accès à une quantité inédite d’informations brutes qui recèle des trésors de connaissance, oui, mais des trésors de connaissance difficile d’accès… L’historique du big data : Le Big data a une histoire récente et pour partie cachée, en tant qu'outil des technologies de l'information et comme espace virtuel prenant une importance volumique croissante dans le cyberespace. L'expression « Big data » serait apparue en octobre 1997 selon les archives de la bibliothèque numérique de l’ACM (Association for Computing Machinery), dans des articles scientifiques sur les défis technologiques à relever pour visualiser les « grands ensembles de données ».Selon
  • 3. 3 V. Tréguier (2014) et selon la « très courte histoire du Big data » publiés par Gil Press en 201316 pour la période 1944-2012, sa naissance est liée aux progrès des systèmes de stockage, de fouille et d'analyse de l'information numérisée, qui ont permis une sorte de Big bang de l'information stockée puis une croissance inflationniste de l'univers de la donnée numérisée. Mais ses prémisses sont à trouver dans le croisement de la cybernétique et de courants de pensée nés durant la Seconde Guerre mondiale, selon lesquels l’homme et le monde peuvent être représentés comme «des ensembles informationnels, dont la seule différence avec la machine est leur niveau de complexité. La vie deviendrait alors une suite de 0 et de 1, programmable et prédictible ».
  • 4. 4 II- Big Data : 1) Le phénomène Big Data : L’explosion quantitative des données numériques a obligé les chercheurs à trouver de nouvelles manières de voir et d’analyser le monde. Il s’agit de découvrir de nouveaux ordres de grandeur concernant la capture, la recherche, le partage, le stockage, l’analyse et la présentation des données. Ainsi est né le « Big Data ». Il s’agit d’un concept permettant de stocker un nombre indicible d’informations sur une base numérique. Selon les archives de la bibliothèque numérique de l’Association for Computing Machinery (ou ACM) dans des articles scientifiques concernant les défis technologiques à relever pour visualiser les « grands ensembles de données », cette appellation est apparue en octobre 1997. 2) Le Big Data, c’est quoi ? Littéralement, ces termes signifient méga données, grosses données ou encore données massives. Ils désignent un ensemble très volumineux de données qu’aucun outil classique de gestion de base de données ou de gestion de l’information ne peut vraiment travailler. En effet, nous procréons environ 2,5 trillions d’octets de données tous les jours. Ce sont les informations provenant de partout : messages que nous nous envoyons, vidéos que nous publions, informations climatiques, signaux GPS, enregistrements transactionnels d’achats en ligne et bien d’autres encore. Ces données sont baptisées Big Data ou volumes massifs de données. Les géants du Web, au premier rang desquels Yahoo (mais aussi Facebook et Google), ont été les tous premiers à déployer ce type de technologie. Cependant, aucune définition précise ou universelle ne peut être donnée au Big Data. Etant un objet complexe polymorphe, sa définition varie selon les communautés qui s’y intéressent en tant qu’usager ou fournisseur de services. Une approche transdisciplinaire permet d’appréhender le comportement des différents acteurs : les concepteurs et fournisseurs d’outils (les informaticiens), les catégories d’utilisateurs (gestionnaires, responsables d’entreprises, décideurs politiques, chercheurs), les acteurs de la santé et les usagers.
  • 5. 5 3) Big Data : l’analyse de données en masse : Inventé par les géants du web, le Big Data se présente comme une solution dessinée pour permettre à tout le monde d’accéder en temps réel à des bases de données géantes. Il vise à proposer un choix aux solutions classiques de bases de données et d’analyse (plate-forme de Business Intelligence en serveur SQL…). Selon le Gartner, ce concept regroupe une famille d’outils qui répondent à une problématique dite règle des 5V. a) Le volume : Le volume correspond à la masse d’informations produite chaque seconde. Selon des études, pour avoir une idée de l’accroissement exponentiel de la masse de données, on considère que 90 % des données ont été engendrées durant les années où l’usage d’internet et des réseaux sociaux a connu une forte croissance. L’ensemble de toutes les données produites depuis le début des temps jusqu’à la fin de l’année 2008, conviendrait maintenant à la masse de celles qui sont générées chaque minute. Dans le monde des affaires, le volume de données collecté chaque jour est d’une importance vitale. b) La vélocité : La vélocité équivaut à la rapidité de l’élaboration et du déploiement des nouvelles données. Par exemple, si on diffuse des messages sur les réseaux sociaux, ils peuvent devenir « viraux » et se répandre en un rien de temps. Il s’agit d’analyser les données au décours de leur lignée (appelé parfois analyse en mémoire) sans qu’il soit indispensable que ces informations soient entreposées dans une base de données. c) La variété : Seulement 20% des données sont structurées puis stockées dans des tables de bases de données relationnelles similaires à celles utilisées en gestion comptabilisée. Les 80% qui restent sont non-structurées. Cela peut être des images, des vidéos, des textes, des voix, et bien d’autres encore… La technologie Big Data, permet de faire
  • 6. 6 l’analyse, la comparaison, la reconnaissance, le classement des données de différents types comme des conversations ou messages sur les réseaux sociaux, des photos sur différents sites etc. Ce sont les différents éléments qui constituent la variété offerte par le Big Data. d) La véracité La véracité concerne la fiabilité et la crédibilité des informations collectées. Comme le Big Data permet de collecter un nombre indéfini et plusieurs formes de données, il est difficile de justifier l’authenticité des contenus, si l’on considère les post Twitter avec les abréviations, le langage familier, les hashtags, les coquilles etc. Toutefois, les génies de l’informatique sont en train de développer de nouvelles techniques qui devront permettre de faciliter la gestion de ce type de données notamment par le W3C. e) La valeur La notion de valeur correspond au profit qu’on puisse tirer de l’usage du Big Data. Ce sont généralement les entreprises qui commencent à obtenir des avantages incroyables de leurs Big Data. Selon les gestionnaires et les économistes, les entreprises qui ne s’intéressent pas sérieusement au Big Data risquent d’être pénalisées et écartées. Puisque l’outil existe, ne pas s’en servir conduirait à perdre un privilège concurrentiel. 4) Problème lié à l’utilisation de R pour le traitement des Big Data Comme il existe de très nombreux systèmes de gestion de données, il existe de nombreux environnements logiciels open source à l’interface utilisateur plus ou moins amicale et acceptant ou non des fonctions écrites en R ou autre langage de programmation : KNIME, TANAGRA, Weka, ... Néanmoins, pour tout un tas de raisons dont celle d’un large consensus au sein d’une très grande communauté d’utilisateurs, le logiciel libre R est une référence pour l’analyse ou l’apprentissage statistique de données conventionnelles, comme pour la recherche et le développement, la diffusion de nouvelles méthodes. Le principal problème de R (version de base) est que son exécution nécessite de charger toutes les données en mémoire vive. En conséquence, dès que le volume est important, l’exécution se bloque. 5) Quelques solutions Une première façon de procéder avec R, pour analyser de grandes masses, consiste simplement à extraire une table, un sous-ensemble ou plutôt un échantillon
  • 7. 7 représentatif des données avec du code java, Perl, Python, Ruby... avant de les analyser dans R. Une autre solution consiste à utiliser une librairie permettant une extension virtuelle sur disque de la mémoire vive (ce qui a pour contrepartie d’alourdir les temps d’accès aux données donc les temps de calcul). C’est le rôle des packages ff bigmemory, mais qui ne gèrent pas la distribution du calcul en parallèle, et également aussi de ceux interfaçant R et Hadoop. III- Les techniques statistiques en big data : a) - Méthodes descriptives : Ces méthodes visent à structurer et simplifier les données issues de plusieurs variables, sans privilégier l’une d’entre elles en particulier. Parmi ces méthodes, il ressort 4 analyses plus fréquemment utilisées pour le traitement des enquêtes : 1) L’ACP L’ACP s’applique à un ensemble de variables numériques. Elle permet de positionner les individus sur un plan en deux dimensions, en fonction de la proximité de leurs réponses aux questions sélectionnées. L’ACP permet ainsi de mettre en évidence la structuration des réponses en montrant le regroupement des individus selon des combinaisons de réponses aux questions prises en compte. En effet, En pratique l’ACP aide à la structuration de la réponse d’individus statistiques limités surtout lorsqu’on souhaite analyser des variables en tenant compte de différents critères d’ordre numérique. Leur représentation indique les corrélations illustrées à l’intérieur d’un cercle de rayon 1. 2) L’AFC L’Analyse Factorielle des Correspondances (AFC) est une méthode factorielle de Statistique Descriptive Multidimensionnelle (MDS). Elle est utilisée lorsque l’on souhaite étudier la liaison entre deux variables qualitatives (nominales). Dans le cas, d’un jeu de données à plus de 2 variables, on aura recours à l’ACM. Pour appliquer une AFC, nous avons besoin des informations suivantes : Tableau d’effectifs observés: les observations sont synthétisées dans un tableau de contingence (tableau croisé) indiquant le nombre d’individus ayant telle
  • 8. 8 modalité pour la première variable (ligne) et telle modalité pour la seconde variable (colonne). Tableau de fréquences (étape intermédiaire): on transforme le tableau d’effectifs observés en tableau de fréquence. Tableau d’effectifs théoriques: il représente la répartition des individus qui serait obtenue s’il n’y avait aucun lien entre les 2 variables c’est à dire si l’attribution de chaque modalité était indépendante. 3) L’ACM L’Analyse des Correspondances Multiples (ACM) généralise l’AFC à un nombre quelconque de variables et permet donc de représenter sur le même mapping les modalités de réponses de plus de deux variables. Comme pour l’ACP, le but de ces analyses est de dégager des dimensions cachées contenues dans les réponses aux variables sélectionnées, pour faciliter l’interprétation de tableaux pas toujours lisibles au départ. L’ACM part d’un tableau disjonctif complet (tableau de Burt) qui présente en ligne les individus et en colonne toutes les modalités des variables qualitatives retenues. Les cases d’intersection comportent la valeur 1 si l’individu répond au critère en colonne et 0 dans le cas contraire. 4) Les méthodes de classification La classification est une méthode de regroupement des individus selon leurs ressemblances. La différence est que le nombre de groupes n’est pas à fixer a priori et que le résultat est représenté sous la forme d’un arbre de classification. L’élaboration de cet arbre peut être ascendante (méthode la plus fréquemment utilisée), par regroupements successifs des individus ou descendante, par divisions successives. L’arbre de classification relie un individu à un autre ou à un sous- groupe d’individu issus eux-mêmes de regroupements. b) - Méthodes prédictives : Les méthodes prédictives ont pour but de faire prédire et anticiper les comportements d’un individu, phénomène ou matériel… L'étude met en exergue un cycle de six étapes clés dans l'élaboration de solutions prédictives grâce au Big data : Identifier les données utiles en évaluant diverses sources possibles Triturer les data, les agréger, les compléter, etc. Construire un modèle prédictif, à partir d'algorithmes statistiques et de
  • 9. 9 'machinelearning'. Evaluer l'efficacité et la précision du modèle prédictif. Utiliser le modèle prédictif pour orienter des décisions métiers. Assurer un suivi de l'application et de l'efficacité du modèle prédictif. IV- Les outils R pour analyser Big Data : Pour afficher le résumé des neuf variables qui constituent les données exemples il faut faire la commande par la fonction rxSummary() et rxCrossTabs(). On utilise la fonction rxSummary() pour résumer les variables correspondant au jour de la semaine, au cours de clôture et au volume échangé. rxSummary () fournit des récapitulatifs pour des variables individuelles dans un ensemble de données.  La syntaxe simple : rxSummary(formula, data) Formula : Une formule contenant les variables résumées. Typiquement, cette formule n'a que des variables sur le côté droit du ~ et aussi de séparer les différentes variables avec un +. Data : Ensemble de données dans lequel on souhaite rechercher les variables spécifiées dans la formule. Si on veut pondérer chaque observation différemment, alors on peut utiliser soit l'argument pweights soit l'argument fweights. pweights correspondent à des poids de probabilité, tandis que fweights correspondent à des poids de fréquence.
  • 10. 10 On peut aussi calculer des tabulations croisées et des comptages fréquentiels à l'aide de la fonction rxCrossTabs ().  La syntaxe simple de rxCrossTabs () est similaire à rxSummary (): rxCrossTabs(formula, data) Formula : Une formule contenant les variables tabulées. Data : Ensemble de données dans lequel on souhaite rechercher les variables spécifiées dans la formule. L'utilisation de pondérations de fréquence et de probabilité est également disponible dans cette fonction via les arguments fweights et pweights, respectivement. Et pour récapituler les données de vol on utilise les fonctions suivante : rxGetInfo (), rxSummary () et rxHistogram (). rxGetInfo () fournit des informations sur l'ensemble de données dans son ensemble : combien de lignes et de variables, le type de compression utilisé, etc. De plus, si on définit l'argument getVarInfo sur TRUE, il fournira également un bref résumé des variables. Si on spécifie l'argument numRows, il renvoie également les premières lignes de numRows. a. rxHistogram () fournira un histogramme d'une seule variable.
  • 11. 11 Data : soit un objet de source de données, une chaîne de caractères spécifiant un fichier .xdf ou un objet de bloc de données. On utilise la fonction rxPredict () pour effectuer des prédictions sur le jeu de données newData basé sur le modèle logitModel. La fonction rxPredict () fonctionne pour les objets rxLogit ainsi que pour les objets rxLinMod, et sa syntaxe est très similaire entre les deux types d'objets. La principale différence est que si on travaille avec un modèle linéaire généralisé, il est utile de spécifier explicitement le type de prédiction qu’on veut. Le type de lien crée des prédictions à l'échelle de la combinaison linéaire de prédicteurs, où le type de réponse placera les valeurs prédites sur l'échelle de la variable de réponse. Dans le cas de la régression logistique, cela signifie que le type de réponse produit des valeurs prédites qui peuvent être interprétées comme des valeurs de probabilité. V- Analyse Spatiale : Un point. Deux points. Trois points. Une multitude de points. Un portrait entier construit de points, petits et gros, semblables ou non, éparpillés çà et là autour de quelques agrégats. Des points en modélisation des transports ? Il en existe plusieurs. Il existe toute une panoplie d’entités urbaines dont l’expression spatiale la plus simple est le point : les ménages échantillonnés lors des enquêtes Origine- Destination, les secteurs de dénombrement, plus petite entité statistique pour laquelle des données de recensement sont collectées, les nœuds du réseau de transport en commun, les extrémités de déplacements, les lieux d’emplois, les espaces de stationnement, les localisations successives exprimant la trace d’un véhicule muni d’un GPS. Des nuages de points deviennent des révélateurs de comportements et tendances lorsque examinés par le biais des outils disponibles dans les systèmes d’information géographiques et disciplinés selon des méthodes appropriées. L’identification et l’application de ces outils et méthodes ainsi que le choix et la structuration des données requises pour les utiliser sont des enjeux très actuels qui méritent d’être discutés. Une série d’expériences intéressantes permettra d’illustrer la puissance de Big data
  • 12. 12 pour traiter rapidement des volumes impressionnant de données variées, afin d’en tirer un sens pour son exploitation dans des applications géospatiales. 1) Définition analyse spatiale : L'analyse spatiale est une approche géographique qui étudie les localisations et les interactions spatiales en tant que composantes actives des fonctionnements sociétaux. Elle part du postulat selon lequel l'espace est acteur organisé. C'est une science nomothétique donc elle vise à proposer une approche modélisée de l'espace géographique en mettant en évidence des formes récurrentes d'organisation spatiales et des théories, notamment à travers diverses notions- clés : distance, réseaux, structure, situation… L'espace n'est donc pas seulement considéré comme un simple support mais comme un élément décisif d'une organisation sociale. Il s'agit de prendre en compte un ensemble complexe de données physiques et humaines pour analyser les distributions spatiales de divers phénomènes, en prenant garde de ne pas tomber dans le déterminisme strict. Les raisonnements d'analyse spatiale s'appuient beaucoup sur les données statistiques et sur des espaces isotropes (cela permet d'élaborer des théories qui sont ensuite appliquées à l'espace réel, par essence anisotrope, en tenant compte des particularités). 2) Les domaines d‘application : Tourisme (gestion des infrastructures, itinéraires touristiques) Marketing (localisation des clients, analyse du site) • Planification urbaine (cadastre, voirie, réseaux assainissement) Protection civile (gestion et prévention des catastrophes) • Transport (planification des transports urbains, optimisation d'itinéraires) Hydrologie Forêt (cartographie pour aménagement, gestion des coupes et sylviculture) Géologie (cartographie, aléas, amiante environnemental, prospection minière) Biologie (études du déplacement des populations animales) Télécoms (implantation d'antennes pour les téléphones mobiles)
  • 13. 13 3) L’analyse spatiale dans R : Dans le domaine géospatial, R est utilisé depuis longtemps avec de très nombreux paquets (packages) disponibles. 4) Avantages d’utilisation du logiciel R : R sait analyser toutes les données. Il peut donc effectuer toutes les analyses mathématiques, statistiques et spatiales sur les données géospatiales (vecteurs et raster). Il n'y a donc pas besoin d'extensions spécifiques, souvent pas très bon marché...; R peut effectuer une grande partie des tâche SIG comme la topologie, l'algèbre sur les rasters etc.; R sait communiquer avec des bases de données spatiales ou non, ou lire et écrire des fichiers vecteurs comme les shapefiles ou des rasters géoréférencés; R sait créer des cartes 2d et 3d très sophistiquées qui peuvent être exportées dans divers formats, bitmap (tiff, JPEG, png ...), vectoriel (EPS, PDF, svg...) ou latex. Ceci d'une manière beaucoup plus pointue que ne le permettent des SIG comme GRASS; 5) Inconvénients d’utilisation de R: La visualisation et l'édition interactives des objets. Un autre problème, pour certains, est que R ne s'utilise qu'en ligne de commandes. Certains paquets permettent cependant de le transformer en un logiciel « clik and play » plus convivial (R commander, Rattle ou Deducer) 6) Les packages : L’arrivée des analyses spatiales sous R s’est accompagnée du développement d’une centaine de packages. Manipuler des objets spatiaux sous R nécessite donc l’installation préalable de certains d’entre eux. Le package sp est le plus populaire d’entre eux puisqu’il regroupe les fonctions et les objets spatiaux de base sur lesquels s’appuient de nombreux autres packages. Voici la liste des packages qui seront utilisés dans ce document : - dismo : présente une interface avec Google Maps et permet d’accéder à de nombreux jeux de données en ligne ;
  • 14. 14 - gstat : offre des outils indispensables pour l’interpolation spatiale (krigeage) ; - maptools : permet de manipuler les objets spatiaux en créant une classe particulière d’objets spatiaux (planar point pattern) ; - raster : offre de nombreuses fonctions permettant de lire et de manipuler les objets de type raster ; - rgeos : permet de manipuler la géométrie des objets spatiaux ; - rgdal : package permettant d’importer/exporter de nombreux formats d’objets spatiaux (raster de type grd, GeoTiff, shapefiles ESRI, fichiers KML, etc.) ; - sp : package de base définissant des classes d’objets spatiaux et de nombreuses fonctions permettant de les manipuler ; - spatstat : offre de nombreux outils pour réaliser des statistiques spatiales ; - spdep : idéal pour étudier l’autocorrélation spatiale, mais aussi pour ce tout qui touche à la modélisation spatiale. Figure 1: Installation des packages 7) Utilisation: Rappelons que dans sa version de base, R dispose de tout le nécessaire pour les traitements statistiques classiques et les graphiques. Tout comme Python, ses possibilités se voient considérablement accrues par l'adjonction de très nombreuses librairies (« packages », quasi 2000). 1. Pour obtenir les données SIG à traiter, R va utiliser des packages spatiaux. Ceux-ci vont permettre la lecture de fichiers comme les shapefiles, la connexion avec de nombreux SIG, ou la connexion avec des bases de données spatiales, ou non; 2. Les données sont traitées dans R avec ses fonctions propres ou celles présentes dans les packages spatiaux; 3. Après traitement, il est possible de « renvoyer » les résultats, soit dans un fichier, soit dans un SIG, soit dans une base de données. C'est l'aspect qui a
  • 15. 15 déjà été utilisé sur le Portail (géostatistique) et que nous ne développerons pas ici, car il nous faudrait traiter des cas particuliers (il y a de très nombreux exemples sur le Net); 4. R permet aussi d'obtenir une représentation graphique 2d et 3d de ces données. L'utilisation de paquets graphiques spécifiques permet d'améliorer la présentation. 5. C'est le processus qui est synthétisé dans le graphique suivant: - On trouve deux modes en analyse spatiale dans R : 8) Les polygones : Même si la logique est la même que pour les objets spatiaux ponctuels (séparation des différentes informations en slots), la création de polygones spatiaux est plus complexe et s’effectuera en plusieurs étapes successives : – Conversion de coordonnées en polygone simple ; – Création de polygone multiple ;
  • 16. 16 – Création d’un polygone spatial ; – Rajout d’une table d’attributs. 9) Le Raster : Nous allons maintenant introduire un autre package qui offre de nombreux outils pour manipuler les couches matricielles : le package raster. Voici les principales possibilités offertes par ce package : - Création, importation et exportation de couches matricielles ; - Conversion en objets sp ; - Modification de l’étendue et de la résolution spatiale ; - Interpolation et prédiction ; - Calcul de différentes métriques ; - Représentation cartographique. Ce package présente la particularité de ne pas stocker dans la mémoire de R les valeurs d’un raster lors de son importation : elles ne seront lues que lorsque cela sera nécessaire (analyse, résumé statistique, cartographie). Ceci présente l’avantage de pouvoir manipuler des objets matriciels de très grandes dimensions sans toutefois saturer la mémoire du logiciel. 10) Quelques Traitements graphiques Lorsqu'on aborde l'aspect graphique de R, on est toujours étonné par la facilité de création des figures. Afficher un shapefile ne demande que quelques lignes de code: base plot 1. > library(maptools) 2. > geol = readShapeSpatial("cal.shp") 3. > plot(geol) 4. > axis(1);axis(2):bbox()
  • 17. 17 Ensuite, tout est paramétrable, représentations, couleurs (RGB), axes, légendes. je vous présente dans la suite, quelques variations simples avec les mêmes géométries et sans code :  couleurs, cadre et légende (sans paquet graphique)
  • 18. 18  couleurs, cadre et légende (paquet sp)  couleurs, cadre et légende (paquet ggplot2)  couleurs, légende, sans cadre (sans paquet graphique)
  • 19. 19  comme un SIG, R sait évidemment superposer plusieurs objets spatiaux vectoriels.  l'objet point est le résultat d'un échantillonnage géochimique, avec des teneurs en ppm de différents éléments. Ceux-ci peuvent être « explorés » graphiquement, sans aucun traitement statistique.  avec le paquet lattice
  • 20. 20  avec les paquets sp  R permet de représenter quantitativement ces données en 3d, mais elles ne s'y prêtent pas bien, alors j'ai repris celui de la densité de population par état aux États-Unis (paquet lattice)  R sait aussi traiter les données raster et cela a déjà été montré sur le Portail :   en 3d avec le paquet rgl
  • 21. 21  R sait aussi créer des cartes de pentes, etc., mais c'est du traitement...avec les polygones superposés  avec les points d'échantillonnage géochimique superposés en bleu (en 3d):  R permet aussi les changements de projections:
  • 22. 22  le paquet RgoogleMaps permet alors d'utiliser les fonds Google Maps comme carte. Il faut une clé Google, gratuite, pour pouvoir l'utiliser (fonds seul, avec le paquet ggplot2, objet spatial sur le fonds, sans paquet) 11) Les études de cas : a) Etude de cas 1: Création d’un polygone Tout d’abord on a créé cinq séries de coordonnées qui vont définir les sommets de cinq polygones (une série pour le premier polygone, deux séries pour le second, dont une définira le positionnement du trou, et deux séries pour le dernier polygone formé de deux polygones). # Création de la première série de coordonnées
  • 23. 23 # Création de la seconde série de coordonnées # Création de la troisième, quatrième et cinquième série de coordonnées # Conversion en polygones simples La première étape consiste à convertir chaque série de coordonnées en un polygone simple. Pour cela, on a utilisé la fonction Polygon().
  • 24. 24 # Accès aux coordonnées On a affiché les coordonnées du premier polygone. # Conversion en polygones multiples La seconde étape consiste à créer des polygones multiples, c.-à-d. à regrouper certains polygones simples dans un même polygone. Cette étape est obligatoire, même dans le cas d’un polygone formé d’un seul polygone. C’est lors de cette conversion qu’un identifiant sera donné à chaque polygone multiple. Procédons à cette transformation en utilisant la fonction Polygons() # Conversion en polygone spatial On a créé le polygone spatial, et donc on a regroupé ces trois polygones multiples en un seul objet spatial. Pour cela, on a créé un objet de classe SpatialPolygons. # Nom des slots de SP # Classe du premier élément
  • 25. 25 # Accès aux coordonnées Enfin, à ce SpatialPolygons on a ajouté une table d’attributs. Construisons tout d’abord une table d’attributs fictive. # Creation des champs de la table # Création de la table Finalement, on a ajouté cette table dans l’objet sp afin de créer un SpatialPolygonsDataFrame. # Rajout d'une table d'attributs et les Nom des slots du polygone spatial
  • 26. 26 # Visualisation du polygone spatial b) Etude de cas 2 : Création et opérations sur la MAP d’USA : La première chose à faire est d’installer les packages nécessaire pour la création de la Carte.
  • 28. 28 Importation de la carte d’USA Affichage de la carte
  • 29. 29 Un autre affichage différemment Localisation de certains points
  • 31. 31 Traçage d’un sous ensemble d’état Avoir les donnes de la Californie On trace l’état de Californie
  • 32. 32 Maintenant on trace les frontières
  • 33. 33 c) Etude de cas 3 : Les Crimes a downtown Houston, Texas La combinaison de package « ggplot2 et GoogleMaps » : Le travail ci-dessous résume en détail des nouvelles méthodes pour visualiser des données spatiales en R en utilisant le package ggplot2 et les appliquer pour Analyser des données massives « les crimes en Texas en particulier » Dans ce travail, nous sommes intéressés à déterminer les zones avec des niveaux relativement élevés d'activités criminelles autour du centre-ville de Texas. À cette fin, nous nous limitons exclusivement aux crimes violents d'agression aggravée, de vol qualifié, de viol et de meurtre. En tant que point de référence spatial, nous considérons que le centre-ville est la zone entourant immédiatement l'hôtel de ville (qui peut être géocodé avec Google Earth). La première étape consiste à saisir et tracer la carte qui représente le mieux l'étendue géographique d'intérêt.
  • 34. 34 Nous avons la carte de google maps et nous avons les données sur les crimes du service de police de Houston qui a été géocodé en utilisant Google Maps. Nous pouvons maintenant combiner les deux. geom_point () : nous aide à savoir l’emplacement des activités criminelles violentes, mais elle n'est pas aussi utile que la description de la criminalité au centre-ville. Pour cela, des contours sont utilisées.
  • 35. 35 - Dans cette étude nous avons vu l’utilité de la fonction ggplot2 combinée avec de l’information spatiale détaillé de google Maps afin de fournir une analyse utile des points où il y a de criminalité violente au centre de texas -L’utilisation de googleMaps dans R avec ggplot2 permet aux analystes de visualiser leurs données sur une échelle géographique familière qui est maintenue cohérente par le framework ggplot2. Il est beaucoup plus facile d'interpréter l'information spatiale lorsqu'elle est référencée par des points . -Deuxièmement, cela nous permet de mieux comprendre et vérifier les données spatiales provenant de différentes sources. -Troisièmement, cela permet à l'analyste de créer des graphiques beaucoup plus facilement. Code library(ggplot2) library(ReadImages) library(RgoogleMaps) library(MASS) theme_set(theme_bw()) ################################################################################ #################### preload functions for later use #################### ################################################################################ ggimage <- function(image){ require(ggplot2) if(length(dim(image)) == 2){ message('creating black and white image...') image <- melt(image) names(image) <- c('row','column','fill') plot <- qplot(column, -row, data = image, geom = 'tile', fill = fill) + scale_fill_gradient(low = 'black', high = 'white') } if(length(dim(image)) == 3){ message('creating color image...') image <- apply(image, 1:2, function(v) rgb(v[1], v[2], v[3])) image <- melt(image) names(image) <- c('row', 'column', 'fill') plot <- qplot(column, -row, data = image, geom = 'tile', fill = fill) + scale_fill_identity() } #return(plot) # remove first pound for the image in the case study plot + opts( axis.line = theme_blank(), axis.ticks = theme_blank(), axis.text.x = theme_blank(), axis.text.y = theme_blank(), axis.title.x = theme_blank(), axis.title.y = theme_blank(), axis.ticks.length = unit(0, "lines"), axis.ticks.margin = unit(0, "lines"), legend.position = "none", panel.background = theme_blank(), panel.border = theme_blank(), panel.grid.major = theme_blank(), panel.grid.minor = theme_blank(), panel.margin = unit(0, "lines"), plot.background = theme_blank(), plot.title = theme_blank(), plot.margin = unit(c(-1, -1, -1.5, -1.5), "lines")
  • 36. 36 ) } ggooglemap <- function(location = 'houston', center = c(lat = 29.7632836, lon = -95.3632715), API, type = c('color','bw')[1], rgbcoefs = c(0, 1, 0), zoom = 10, maptype = 'terrain', destfile = 'TemporaryMap.jpg', n_pix = 640) { require(ggplot2) require(RgoogleMaps) require(ReadImages) if(!missing(location)){ url_string <- paste('http://maps.google.com/maps/geo?q=', location, sep = '') site <- readLines(url(url_string)) site <- site[which(regexpr('coordinates', site) > 0)] if(is.na(site)) stop('location geocoding error.') site <- strsplit(site, '[')[[1]][2] site <- strsplit(site, ',')[[1]][1:2] latlon <- as.numeric(site) center <- c(lat = latlon[2], lon = latlon[1]) closeAllConnections() } if(missing(API)) API <- '' # ENTER YOUR API HERE # get map GetMap(API, center = center[c('lat','lon')], size = c(n_pix, n_pix), zoom = zoom, format = 'jpg', maptype = maptype, destfile = destfile) # load map map <- read.jpeg(destfile) # deal with color if(type == 'color'){ map <- apply(map, 1:2, function(v) rgb(v[1], v[2], v[3])) } else if(type == 'bw') { nrow <- nrow(map) ncol <- ncol(map) map <- grey(rgb2grey(map, coefs = rgbcoefs)) map <- matrix(map, nrow = nrow, ncol = ncol) } else { stop('type must be either 'color' or 'bw'', call. = FALSE) } # reshape map for plotting m_map <- melt(map) names(m_map) <- c('x','y','fill') m_map <- within(m_map,{ x <- x - n_pix/2 - 1 y <- y - n_pix/2 - 1 }) mapInfo <- list(lat = center['lat'], lon = center['lon'], zoom = zoom, map) XY_cent <- LatLon2XY.centered(mapInfo, center['lat'], center['lon']) #XY2LatLon(HouMapInfo, XY_cent$newX, XY_cent$newY) # geocode pixel references s <- (-n_pix/2) : (n_pix/2 - 1) lat_wrapper <- function(x) XY2LatLon(mapInfo, -n_pix/2, x)[1] lats <- apply(data.frame(s), 1, lat_wrapper) lon_wrapper <- function(y) XY2LatLon(mapInfo, y, -n_pix/2)[2] lons <- apply(data.frame(s), 1, lon_wrapper)
  • 37. 37 # merge colors to latlons and return df_xy <- expand.grid(x = s, y = s) df_ll <- expand.grid(lat = rev(lats), lon = lons) df_xyll <- data.frame(df_xy, df_ll) df <- suppressMessages(join(df_xyll, m_map, type = 'right')) df <- df[,c('lon','lat','fill')] df } theme_nothing <- function (base_size = 12){ structure(list( axis.line = theme_blank(), axis.text.x = theme_blank(), axis.text.y = theme_blank(), axis.ticks = theme_blank(), axis.title.x = theme_blank(), axis.title.y = theme_blank(), axis.ticks.length = unit(0, "lines"), axis.ticks.margin = unit(0, "lines"), legend.position = "none", panel.background = theme_rect(fill = 'white'), panel.border = theme_blank(), panel.grid.major = theme_blank(), panel.grid.minor = theme_blank(), panel.margin = unit(0, "lines"), plot.background = theme_rect(colour = 'white'), plot.title = theme_text(size = base_size * 1.2), plot.margin = unit(c(-1, -1, -1.5, -1.5), "lines") ), class = "options") } vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y) ################################################################################ #################### hadley's picture #################### ################################################################################ hadley <- read.jpeg('hadley.jpg') # for the axes, remove the pound sign in the ggimage function above ggimage(hadley) + coord_equal() ################################################################################ #################### making a map #################### ################################################################################ CityHall_latlon <- c(lon = -95.369318, lat = 29.760210) DowntownMap <-ggooglemap(center = CityHall_latlon, zoom = 14) qplot(lon, lat, data = DowntownMap, geom = 'tile', fill = fill) + scale_fill_identity() + scale_x_continuous('Longitude') + scale_y_continuous('Latitude') + coord_equal() + opts(title = 'Terrain Map of Downtown Houston') ################################################################################ #################### houston crime #################### ################################################################################ load('HoustonCrime.Rdata') # variable name : crime_df # restrict to violent crimes violent_crimes <- subset(crime_df, offense != 'Auto Theft' & offense != 'Theft' & offense != 'Burglary' )
  • 38. 38 # restrict to year 2010 (january - august) violent_crimes <- subset(violent_crimes, time >= ISOdatetime(2010, 1, 1, 0, 0, 0) ) # grab downtown google map CityHall_latlon <- c(lon = -95.369318, lat = 29.760210) DowntownMap <-ggooglemap(center = CityHall_latlon, zoom = 14) lat_range <- range(DowntownMap$lat) lon_range <- range(DowntownMap$lon) # contour plot ggplot() + geom_tile(aes(x = lon, y = lat, fill = fill), data = DowntownMap) + scale_fill_identity() + geom_density2d(aes(x = lon, y = lat, colour = ..level..), bins = I(10), fill = NA, alpha = I(1/2), size = I(.75), data = violent_crimes) + scale_colour_gradient2('ViolentnCrimenDensity', low = 'darkblue', mid = 'orange', high = 'red', midpoint = 900) + scale_x_continuous('Longitude', limits = lon_range) + scale_y_continuous('Latitude', limits = lat_range) + opts(title = 'Violent Crime Contour Map of Downtown Houston, 2010') + coord_equal() # point plot violent_crimes <- subset(violent_crimes, lon_range[1] <= lon & lon <= lon_range[2] & lat_range[1] <= lat & lat <= lat_range[2] ) # cuts out the warning for missing values in geom_point ggplot() + geom_tile(aes(x = lon, y = lat, fill = fill), data = DowntownMap) + scale_fill_identity() + geom_jitter(aes(x = lon, y = lat, colour = offense, size = offense), fill = NA, alpha = I(3/4), data = violent_crimes, position = position_jitter(width = .001, height = .001)) + scale_x_continuous('Longitude', limits = lon_range) + scale_y_continuous('Latitude', limits = lat_range) + scale_colour_discrete('') + scale_size_manual('', values = c( 'Robbery' = 2, 'Aggravated Assault' = 2.5, 'Rape' = 3, 'Murder' = 4 )) + opts(title = 'Violent Crime Map of Downtown Houston, 2010') + coord_equal() # weather map load('HoustonCrime.Rdata') # variable name : crime_df violent_crimes <- subset(crime_df, offense != 'Auto Theft' & offense != 'Theft' & offense != 'Burglary' ) violent_crimes <- subset(violent_crimes, time >= ISOdatetime(2010, 1, 1, 0, 0, 0) ) CityHall_latlon <- c(lon = -95.369318, lat = 29.760210) DowntownMap <-ggooglemap(center = CityHall_latlon, zoom = 14, maptype = 'hybrid') lat_range <- range(DowntownMap$lat) lon_range <- range(DowntownMap$lon) vclatlon <- violent_crimes[,c('lon','lat')]
  • 39. 39 vclatlon <- na.omit(violent_crimes[,c('lon','lat')]) vclatlon <- subset(vclatlon, lon_range[1] <= lon & lon <= lon_range[2] & lat_range[1] <= lat & lat <= lat_range[2] ) den <- kde2d(vclatlon$lon, vclatlon$lat, n = 320, lims = c(lon_range, lat_range)) kde_df <- expand.grid( lon = seq.int(lon_range[1], lon_range[2], length.out = 320), lat = seq.int(lat_range[1], lat_range[2], length.out = 320) ) kde_df$density <- melt(den$z)$value summary(kde_df$density) den_fill_scale <- scale_colour_gradient2(low = 'white', mid = 'darkgreen', high = 'red', midpoint = 225) den_fill_scale$train(kde_df$density, T) kde_df$density_s <- den_fill_scale$map(kde_df$density) kde_df$density_zeroone <- pmin(kde_df$density / max(kde_df$density), .9) big_plot <- ggplot () + geom_tile(aes(x = lon, y = lat, fill = fill), data = DowntownMap) + geom_tile(aes(x = lon, y = lat, fill = density_s, alpha = density_zeroone), data = kde_df) + scale_x_continuous('Longitude', limits = lon_range) + scale_y_continuous('Latitude', limits = lat_range) + scale_alpha(to = c(0, .9)) + scale_fill_identity() + opts( legend.position = 'none', title = 'Violent Crime Weather Map of Downtown Houston, 2010' ) + coord_equal() little_plot <- ggplot() + geom_tile(aes(x = lon, y = lat, fill = density_s, alpha = density_zeroone), data = kde_df) + scale_alpha(to = c(0, .9)) + scale_fill_identity() + coord_equal() + theme_nothing() grid.newpage() pushViewport(viewport(layout = grid.layout(4,4))) print(big_plot, vp = vplayout(1:4, 1:4)) print(little_plot, vp = vplayout(4, 4)) grid.newpage() pushViewport(viewport(layout = grid.layout(1000,1000))) print(big_plot, vp = vplayout(1:1000, 1:1000)) print(little_plot, vp = vplayout(697:897, 740:940))
  • 40. 40 VI- Conclusion: Depuis la révolution des systèmes d'information géographique dans les années 1980, les bases de données spatiales se sont multipliées et les spécificités de l'information spatiale impliquent cependant de recourir à des méthodes d'analyse et de modélisation spécifiquement spatiale, encore très rarement disponibles aujourd'hui au sein des systèmes d'information géographique. L'idée ici est que l'analyse spatiale exploratoire des données pourrait permettre de renouveler les boîtes à outils défaillante. Les quelques exemples qu’on a cités au cours de ce rapport ne sauraient être considérés comme représentatifs de l’ensemble des développements menés dans le champ bouillonnant de l’analyse spatiale exploratoire des données. Ils suffisent néanmoins à donner un premier aperçu de la philosophie de cette approche moderne, ainsi que de la puissance des outils mis en œuvre. Les rares implémentations logicielles disponibles aujourd’hui relèvent toutefois le plus souvent de prototypes de recherche et freinent incontestablement sa diffusion, y compris parmi la communauté des géographes. Cette situation est d’autant plus dommageable que l’analyse spatiale exploratoire des données pourrait constituer un terrain d’entente privilégié, pour les partisans et les opposants de la démarche modélisatrice en analyse spatiale.