2  Import et export

Les fonctions st_read() et st_write() permettent d’importer et d’exporter de nombreux types de fichiers.

2.1 Import

Les lignes suivantes importent la couche des communes du département du Lot mise à disposition dans le fichier geopackage lot.gpkg.

library(sf)
#> Linking to GEOS 3.11.1, GDAL 3.6.2, PROJ 9.1.1; sf_use_s2() is TRUE
com <- st_read("data/lot.gpkg", layer = "communes")
#> Reading layer `communes' from data source 
#>   `/home/tim/Documents/prj/geomatique_avec_r/data/lot.gpkg' using driver `GPKG'
#> Simple feature collection with 313 features and 12 fields
#> Geometry type: MULTIPOLYGON
#> Dimension:     XY
#> Bounding box:  xmin: 539668.5 ymin: 6346290 xmax: 637380.9 ymax: 6439668
#> Projected CRS: RGF93 v1 / Lambert-93
class(com)
#> [1] "sf"         "data.frame"

La fonction st_read() importe les couches géographiques au format sf.

Geopackage

Le format geopackage permet de stocker plusieurs couches dans un même fichier.
La fonction st_layers() permet d’avoir un aperçu des couches présentes dans un fichier geopackage.

st_layers("data/lot.gpkg")
#> Driver: GPKG 
#> Available layers:
#>     layer_name geometry_type features fields              crs_name
#> 1     communes Multi Polygon      313     12 RGF93 v1 / Lambert-93
#> 2 departements Multi Polygon       96      5 RGF93 v1 / Lambert-93
#> 3  restaurants         Point      694      2 RGF93 v1 / Lambert-93
#> 4   elevations         Point     5228      1 RGF93 v1 / Lambert-93
#> 5       routes   Line String     1054      2 RGF93 v1 / Lambert-93

2.2 Export

Les lignes suivantes exportent l’objet com dans la couche communes du geopackage com.gpkg dans le dossier data.

st_write(obj = com, dsn = "data/com.gpkg", layer = "communes")
#> Writing layer `communes' to data source `data/com.gpkg' using driver `GPKG'
#> Writing 313 features with 12 fields and geometry type Multi Polygon.
Conversion pour le package terra

La fonction vect() du package terra permet de transformer un objet sf en objet SpatVector.

library(terra)
#> terra 1.7.78
# conversion
com2 <- vect(com)
class(com2)
#> [1] "SpatVector"
#> attr(,"package")
#> [1] "terra"

Exercice

Importez la couche des restaurants depuis le fichier lot.gpkg dans un objet nommé “resto”.