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 = ".")

entrer la description de l'image ici

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow