R Language
analyse spatiale
Recherche…
Créer des points spatiaux à partir d'un ensemble de données XY
En ce qui concerne les données géographiques, R se révèle être un outil puissant pour la gestion, l’analyse et la visualisation des données.
Souvent, les données spatiales sont disponibles sous forme de données de coordonnées XY sous forme de tableau. Cet exemple montre comment créer un ensemble de données spatiales à partir d'un ensemble de données XY.
Les paquets rgdal
et sp
fournissent des fonctions puissantes. Les données spatiales dans R peuvent être stockées en tant que Spatial*DataFrame
(où *
peuvent être des Points
, des Lines
ou des Polygons
).
Cet exemple utilise des données qui peuvent être téléchargées sur OpenGeocode .
Au début, le répertoire de travail doit être défini sur le dossier du fichier CSV téléchargé. De plus, le paquetage rgdal
doit être chargé.
setwd("D:/GeocodeExample/")
library(rgdal)
Ensuite, le fichier CSV stockant les villes et leurs coordonnées géographiques est chargé dans R en tant que data.frame
xy <- read.csv("worldcities.csv", stringsAsFactors = FALSE)
Souvent, il est utile d’avoir un aperçu des données et de leur structure (noms de colonne, types de données, etc.).
head(xy)
str(xy)
Cela montre que les colonnes de latitude et de longitude sont interprétées comme des valeurs de caractères, car elles contiennent des entrées telles que "-33.532". Cependant, la dernière fonction utilisée SpatialPointsDataFrame()
qui crée le jeu de données spatiales nécessite que les valeurs de coordonnées soient du type de données numeric
. Ainsi, les deux colonnes doivent être converties.
xy$latitude <- as.numeric(xy$latitude)
xy$longitude <- as.numeric(xy$longitude)
Peu de valeurs ne peuvent pas être converties en données numériques et, par conséquent, les valeurs NA
sont créées. Ils doivent être enlevés.
xy <- xy[!is.na(xy$longitude),]
Enfin, le fichier XY peut être converti en un ensemble de données spatiales. Cela nécessite les coordonnées et la spécification du système de réfraction de coordonnées (CRS) dans lequel les coordonnées sont stockées.
xySPoints <- SpatialPointsDataFrame(coords = c(xy[,c("longitude", "latitude")]),
proj4string = CRS("+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs"),
data = xy
)
La fonction de tracé de base peut facilement être utilisée pour observer les points spatiaux produits.
plot(xySPoints, pch = ".")
Importer un fichier de forme (.shp)
rgdal
Les fichiers de forme ESRI peuvent facilement être importés dans R en utilisant la fonction readOGR()
du package rgdal
.
library(rgdal)
shp <- readORG(dsn = "/path/to/your/file", layer = "filename")
Il est important de savoir que le dsn
ne doit pas se terminer par /
et que la layer
ne permet pas la fin du fichier (par exemple .shp
)
raster
Une autre façon d'importer des fichiers de formes consiste à utiliser la bibliothèque raster
et la fonction shapefile
:
library(raster)
shp <- shapefile("path/to/your/file.shp")
Notez que la définition du chemin est différente de l'instruction d'importation rgdal.
tmap
tmap
package tmap
fournit un joli wrapper pour la fonction rgdal::readORG
.
library(tmap)
sph <- read_shape("path/to/your/file.shp")