14  Conversions

14.1 Rasterisation

Transformer des polygones en format raster avec la fonction rasterize().

commune <- vect("data/lot.gpkg", layer = "communes")
elev <- rast("data/elev.tif") 

raster_commune <- rasterize(x = commune, y = elev , field = "NOM_COM")
plot(raster_commune)

Transformer des points en format raster :

# Rasterisation des centroïdes des communes
raster_com_centroide <- rasterize(x = centroids(commune), 
                                  y = elev, fun = sum)
plot(raster_com_centroide)

Transformer des lignes format raster :

# Rasterisation des limites communales
raster_com_line <- rasterize(x = as.lines(commune), y = elev, fun=sum)
plot(raster_com_line)

14.2 Vectorisation

Transformer un raster en polygones ou en points avec les fonctions as.polygons() et as.points(). Les objets créés sont dans le format SpatVector de terra.
Il est ensuite possible de les transformer en objets sf avec la fonction st_as_sf().

library(terra)
library(sf)
clc <- rast(x = "data/clc.tif")

# Reclassifions le raster CLC
reclassif <- matrix(c(100, 199, 1,
                      200, 299, 2,
                      300, 399, 3,
                      400, 499, 4,
                      500, 599, 5),
                    ncol = 3, 
                    byrow = TRUE)
clc <- classify(clc, rcl = reclassif)

# Changeons d'abord la résolution du raster CLC
clc_lower_model <- clc
res(clc_lower_model) <- 1000

clc_lower <- resample(x = clc, y = clc_lower_model, method = "near") 

# Transformation en polygones
clc_poly <- as.polygons(clc_lower)
clc_poly <- st_as_sf(clc_poly)

# Affichage 
clc_poly$clc <- as.factor(clc_poly$clc)
plot(clc_poly["clc"])

Transformer un raster en points vectoriels avec la fonction as.points():

clc_point <- as.points(clc_lower)
clc_point <- st_as_sf(clc_point)
clc_point$clc <- as.factor(clc_point$clc)
plot(clc_point["clc"], pch = 20, cex = 2)