Le package mapme.biodiversity facilite l’analyse statistique de la biodiversité ou d’autres politiques et projets spatialisés. Il propose divers indicateurs pour évaluer la préservation de l’environnement et les activités humaines. Le package est conçu pour permettre des extensions futures grâce à des ressources et des indicateurs personnalisés.
Le package fournit une interface unifiée pour télécharger et analyser différents jeux de données spatiales, gérant la complexité liée aux divers formats. Il simplifie l’accès aux données en interagissant avec plusieurs backends utilisés par les organisations qui distribuent ces données. Les utilisateurs peuvent contrôler l’analyse en sélectionnant les indicateurs à calculer, permettant ainsi un ajustement précis des processus.
Pour commencer, les utilisateurs saisissent un objet sf contenant uniquement des géométries de type polygone. Le package télécharge ensuite les données raster et vecteur spatiales et temporelles nécessaires correspondant à l’étendue du portefeuille. Les résultats sont ajoutés sous forme de colonnes de listes imbriquées dans l’objet portefeuille, permettant une utilisation aisée d’une large gamme d’indicateurs dans R.
Le processus d’utilisation est le suivant :
Code
library(DiagrammeR) # Package R pour produire des diagrammes Mermaid#| fig-cap: "Processus de traitement avec mapme.biodiversity"mermaid("graph TB AA(Définition des polygones d'analyse) A(Définition des options) B(Acquisition des ressources) C(Calcul des indicateurs) D(Analyse statistique avec R) E(Export vers QGIS ou autre) AA-->A A-->B B-->C C-->D C-->E")
4.2 Tutoriel pratique avec mapme.biodiversity
Nous allons maintenant découvrir comment utiliser le package mapme.biodiversity de manière pratique. Pour cela, nous allons travailler avec le jeu de données data/AP_Vahatra.geojson, qui contient des informations sur les aires protégées à Madagascar.
4.2.1 Charger les données d’aires protégées
Nous allons commencer par charger notre jeu de données d’aires protégées, qui est stocké au format GeoJSON.
Code
library(mapme.biodiversity)library(sf)library(tidyverse)library(tmap)library(progressr) # Pour avoir des bares de progressionlibrary(tictoc) # Pour minuter des temps d'exécutionlibrary(future) # Pour permettre du calcul parallèle# Charger le jeu de données AP_VahatraAP_Vahatra <-st_read("data/AP_Vahatra.geojson", quiet =TRUE)
4.2.2 Définir les options standard avec mapme_options
Avant d’acquérir les ressources, nous devons définir certaines options pour le package, comme le répertoire de sortie.
Code
# Définir le répertoire de sortiemapme_options(outdir ="data/mapme")
4.2.3 Exploration des indicateurs et des ressources disponibles
Avant de se lancer dans l’acquisition des ressources, il est important de comprendre ce que le package peut faire. Utilisons les fonctions available_indicators() et available_resources() pour explorer les indicateurs et ressources disponibles.
Code
# Explorer les indicateurs disponiblesavailable_indicators()
# A tibble: 40 × 3
name description resources
<chr> <chr> <list>
1 biodiversity_intactness_index Averaged biodiversity intactness ind… <tibble>
2 biome Areal statistics of biomes from TEOW <tibble>
3 burned_area Monthly burned area detected by MODI… <tibble>
4 deforestation_drivers Areal statistics of deforestation dr… <tibble>
5 drought_indicator Relative wetness statistics based on… <tibble>
6 ecoregion Areal statstics of ecoregions based … <tibble>
7 elevation Statistics of elevation based on NAS… <tibble>
8 exposed_population_acled Number of people exposed to conflict… <tibble>
9 exposed_population_ucdp Number of people exposed to conflict… <tibble>
10 fatalities_acled Number of fatalities by event type b… <tibble>
# ℹ 30 more rows
Code
# Explorer les ressources disponiblesavailable_resources()
# A tibble: 35 × 5
name description licence source type
<chr> <chr> <chr> <chr> <chr>
1 accessibility_2000 Accessibility data for th… See JR… https… rast…
2 acled Armed Conflict Location &… Visit … Visit… vect…
3 biodiversity_intactness_index Biodiversity Intactness I… CC-BY-… https… rast…
4 chelsa Climatologies at High res… Unknow… https… rast…
5 chirps Climate Hazards Group Inf… CC - u… https… rast…
6 esalandcover Copernicus Land Monitorin… CC-BY … https… rast…
7 fritz_et_al Drivers of deforestation … CC-BY … https… rast…
8 gfw_emissions Global Forest Watch - CO2… CC-BY … https… rast…
9 gfw_lossyear Global Forest Watch - Yea… CC-BY … https… rast…
10 gfw_treecover Global Forest Watch - Per… CC-BY … https… rast…
# ℹ 25 more rows
Ces fonctions permettent de voir la liste des indicateurs et ressources que le package propose. Vous pouvez également consulter l’aide en ligne pour chaque indicateur ou ressource afin de mieux comprendre leur utilité.
Exercice : Quelles ressources sont disponibles pour calculer la pente, l’altitude, la distance aux villes, le couvert forestier annuel et la densité de population ? Consultez régulièrement cette liste, car elle peut évoluer au fil des mises à jour du package.
4.2.4 Acquisition des ressources nécessaires
Nous allons maintenant acquérir les ressources spatiales nécessaires pour nos analyses. Le package mapme.biodiversity propose un large éventail de ressources, notamment des données d’altitude, de couvert forestier, et de temps de déplacement jusqu’à une ville.
Code
# Acquérir les ressources pour l'élévationAP_Vahatra <-get_resources(x = AP_Vahatra,get_nasa_srtm())# Calculer l'indicateur d'élévationtic() # On lance un minuteurwith_progress({ AP_Vahatra <- AP_Vahatra %>%calc_indicators(calc_elevation())})toc() # On relève le minuteur, 123 secondes sur mon test
4.2.5 Parallélisation avec {future}
Le package mapme.biodiversity suit le paradigme de calcul parallèle du package {future}. Cela signifie que vous, en tant qu’utilisateur, pouvez décider de configurer le calcul en parallèle ou non. Depuis la version 0.9 de {mapme.biodiversity}, un pré-découpage est appliqué à tous les actifs du portefeuille, ce qui permet de diviser les actifs en composantes de taille approximativement égale. Ces composantes peuvent ensuite être itérées en parallèle afin d’accélérer le traitement. Les valeurs des indicateurs seront ensuite agrégées automatiquement.
Voici un exemple d’utilisation de la parallélisation avec le plan cluster, qui permet de répartir les calculs sur plusieurs cœurs de votre machine :
Code
plan(cluster, workers =6)# tic() # On lance un minuteurwith_progress({ AP_Vahatra <- AP_Vahatra %>%calc_indicators(calc_elevation())})plan(sequential) # On libère les processus parallèles réservés# toc() # On relève le minuteur, 69 secondes sur mon test
4.2.6 Acquisition des autres ressources
Code
# Acquérir les ressources pour la pente, le couvert forestier et le temps de déplacementwith_progress({ AP_Vahatra <- AP_Vahatra %>%get_resources(get_gfw_treecover(),get_gfw_lossyear(),get_nelson_et_al(ranges ="5k_110mio") )})
4.2.7 Calcul des indicateurs
Après l’acquisition des ressources, nous allons calculer les indicateurs pour chaque polygone de notre portefeuille. Les indicateurs permettent de synthétiser les informations spatiales pour chaque entité géographique (aire protégée) de notre jeu de données.
Pour visualiser les résultats, nous allons utiliser le package tmap. Cela nous permettra de cartographier certaines des valeurs d’indicateurs calculées, telles que l’élévation moyenne ou la couverture forestière des aires protégées.
Code
# Visualiser les aires protégées colorées par l'élévation moyennetmap_mode("view")AP_Vahatra %>%portfolio_long() %>%filter(variable =="elevation_mean") %>%tm_shape() +tm_polygons(col ="value", title ="Altitude Moyenne (m)")
Nous avons maintenant une carte interactive qui nous permet de voir les différences d’élévation entre les différentes aires protégées de notre portefeuille.
4.2.9 Transformation des résultats en format long ou large
Les résultats des indicateurs calculés par mapme.biodiversity sont stockés dans des colonnes de listes imbriquées. Pour faciliter l’exportation vers d’autres logiciels ou pour certaines analyses spécifiques, il peut être utile de transformer ces résultats en format long ou large.
Le format long est utile pour des analyses dans R, en particulier lorsqu’on utilise des outils comme ggplot2 qui requièrent une observation par ligne.
Le format large est plus intuitif pour une visualisation dans des tableurs comme Excel ou pour un export vers des SIG comme QGIS.
Pour transformer les résultats en format long :
Code
portfolio_long(AP_Vahatra)
4.2.10 Exercice
Consulter la documentation pour identifier la source et l’indicateur correspondant à la population vivant dans la zone
Obtenez la donnée de population et calculez l’indicateur de population