Projections cartographiques avec R
L'essentiel de cette page
Je ne vais surtout pas m'aventurer à vous expliquer le principe des projets cartographiques et l'utilisation des différents systèmes géodésiques (CRS) sous R car... d'abord, ce n'est pas mon métier.
Et pi qu'ensuite, c'est compliqué.
Si déjà, vous souffrez à faire la différence entre des termes techniques rencontrés comme CRS, EPSG, etc. Je vous invite à suivre ce lien très rapide à lire, ludique, pour se remettre les idées au clair.
Résumons, lorsque j'ai un objet spatial (sp...), il a forcément des coordonnées x et y.
Est-ce des coordonnées par rapport à Paris, Londres ? Il va falloir l'indiquer pour avoir des données en longitude/latitude identiques, du même type, pour tous mes jeux de données.
Une fonction qui fait cela, c'est la fonction proj4string().
1- Changement de projection avec des objets sp
library(sp)
data("meuse")
coordinates(meuse) <- ~x+y # Conversion de meuse en objet spatial
# EPSG : identifiants européens réputés de système de coordonnées géographiques CRS)
# CRS : système de coordonnées (Coordinates Reference System )
#On indique le système de coordonnées de Meuse
proj4string(meuse) <- CRS("+init=epsg:28992")
plot(meuse) ; locator(1) # Cliquer sur le graphique pour avoir un échantillon de coordonnées.
On peut aussi utiliser la fonction bbox() à la place de locator()
bbox(meuse)
# On précise un nouveau système de coordonnées (plus classique)
crs.longlat <- CRS("+init=epsg:4326")
# Et on impose ce système à meuse pour avoir une projection plus classique
library(rgdal)
meuse_ll <- spTransform(meuse, crs.longlat)
plot(meuse_ll) ; locator(1)
Et voilà une carte en coordonnées en long/lat plus classique.
2- Changement de projection avec des objets sf
library(sp) ; data(meuse)
# Conversion de l'objet meuse sp en objet sf
library(sf)
meuse_sf <- st_as_sf(meuse, "sf")
st_bbox(meuse_sf)
st_crs(meuse_sf) # Dans ce cas là, le système de projection n'est pas indiqué (à cause de la conversion).
st_crs(meuse_sf)<- 28992
# Passer au système long,lat
st_transform(meuse_sf, "+proj=longlat +ellps=WGS84 +datum=WGS84") -> meuse_reconverti
st_bbox(meuse_reconverti)
A développer dans cette page :
- Utiliser différents types de projections cartographiques pour passer à la 2D
- Récupérer les informations sur le CRS utilisé.