Importation de couche au format rds dans 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 QGIS est possible.
Objectif
Cette note a pour but d’expliquer comment :
- Importer dans QGIS des objects géomatiques préparés avec R et sauvegardés au format natif de ce langage. Ce format est par exemple beaucoup utilisé dans la librairie floodam.data.
- 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.
Paramétrage initial
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
sf
pour les données vectorielles - la librairie
raster
pour 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
rds
contenant 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
<- readRDS(rds)
temp
#actions by class
if ("data.frame" %in% class(temp)) {
if ("sf" %in% class(temp)) {
<- temp
Output else {
} <- sf:st_as_sf(
temp !is.na(temp[["lat"]]), ],
temp[coords=c("lon","lat"),
crs = "epsg:4326"
)
<- temp
Output
}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/rscripts
si 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
rds
depuis 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/rscripts
si 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.