Importation de couche au format rds dans et depuis QGIS
Le format rds est un format natif de R qui permet de sauvegarder des données déjà traitées et mises en forme. Leur importation dans et depuis QGIS est possible.
Objectif
Cette note a pour but d’expliquer comment :
- Importer dans QGIS deux classes d’objets géomatiques préparés avec R et sauvegardés au format natif de ce langage (
.rds) :- des objets de la clase
sf(simple features). - des objets de classe
data.frameincluant des colonnes « lon » et « lat » avec EPSG:4326 comme CRS (ces objets représentent généralement des points GPS).
- des objets de la clase
- Sauvegarder une couche de QGIS (ou une sélection de géométries de cette couche) dans des fichiers au format rds, pour pouvoir facilement l’utiliser depuis R.
Cette note mobilise les outils développés par Processing R Provider.
Logiciels et bibliothèques requis
Déroulement de la méthode
Activation des extensions nécessaires dans QGIS
Pour pouvoir utiliser R dans QGIS vous devez suivre la procédure ci-dessous :
- Lancez QGIS.
- Allez dans Extensions > Installer/Gérer les extensions. Si vous utilisez QGIS en anglais, allez dans Processing > Toolbox.
- Recherchez l’extension Processing R Provider et installez-le.
- Redémarrez QGIS.
Ajout des scripts de traitement des objets R dans QGIS
Les scripts R pour l’extension Processing R Provider sont des scripts R classiques incluant plusieurs lignes de métadonnées qui définissent l’interaction entre QGIS et R. Les lignes de métadonnées commencent par ## et spécifient, entre autres, l’apparence de l’interface utilisateur de l’outil.
Par défaut, le script charge lui-même certaines libraries :
- la librairie
sfpour les données vectorielles - la librairie
rasterpour les données de type raster
Toutes les autres librairies doivent être spécifiées explicitement dans le script à l’aide de la commande library().
Les scripts R pour l’extension Processing R Provider utilisent l’extension .rsx
Tous les détails sont donnés sur le site web de l’outil Processing R Provider
Pour pouvoir gérer des objets R depuis QGIS vous devez créer deux scripts. Pour ce faire, il faut suivre la procédure ci-dessous :
- Cliquez sur la boite à outils dans le menu Traitement. Si vous utilisez QGIS en anglais, cliquez sur Toolbox dans le menu Processing.
- Sur la droit de votre écran un nouveau menu vient d’apparaître. Cliquez sur l’icône R en haut de la boîte à outils de traitements (ou processing toolbox si vous utilisez QGIS en anglais), puis sur create new R script.
- Faisons premièrement le script pour pouvoir gérer l’ouverture de fichiers
rdscontenant des objets R géolocalisés vectoriels dans QGIS. Pour ce faire, copiez le code ci-dessous (rds2vector) dans l’éditeur de scripts de QGIS.
rds2vector.rsx
##RDS tools=group
##rds2vector=name
##rds=file
##Output=output vector
#reading rds object
temp <- readRDS(rds)
#actions by class
if ("data.frame" %in% class(temp)) {
if ("sf" %in% class(temp)) {
Output <- temp
} else {
temp <- sf:st_as_sf(
temp[!is.na(temp[["lat"]]), ],
coords=c("lon","lat"),
crs = "epsg:4326"
)
Output <- temp
}
} else {
print("I do not understand the format of your data")
}- Sauvegardez le script comme
rds2vector.rsx. Ce script sera stocké dans.local/share/QGIS/QGIS3/profiles/default/processing/rscriptssi vous utilisez des systèmes d’exploitation Ubuntu ou Debian. - Fermez la fenêtre de l’éditeur.
- Re-ouvrez l’éditeur de scripts R de QGIS, comme dans l’étape 2.
- Procédons maintenant avec le script pour sauvegarder des couches vectorielles dans des fichiers
rdsdepuis QGIS. Pour cela, copiez le code ci-dessous (vector2rds) dans l’éditeur de scripts R de QGIS.
vector2rds.rsx
##RDS tools=group
##vector2rds=name
##Layer=vector
##rds=Output file rds
#writing rds object
saveRDS(Layer, rds)- Sauvegardez le script comme
vector2rds.rsx. Ce script sera aussi stocké dans.local/share/QGIS/QGIS3/profiles/default/processing/rscriptssi vous utilisez des systèmes d’exploitation Ubuntu ou Debian. - Fermez l’éditeur à nouveau.
Restaurer les objets R géolocalisés sous forme de couches dans QGIS via le script ajouté
Les scripts que vous venez d’ajouter deviennent chacun un outil dans QGIS. Ces outils sont disponibles dans le menu Traitement > Boîte à outils > R > RDS tools, avec les noms rds2vector et vector2rds. Si vous utilisez QGIS en anglais, les outils sont dans Processing > Toolbox > R > RDS tools.
Pour les utiliser rien de plus simple : double-cliquez sur chacun des outils et fournir l’information demandée dans les cadres de dialogue et, ensuite, cliquez sur Run.