Forestimator API
La plateforme web Forestimator sert de vitrine ; les informations et les traitements y sont présentés au grand public via une interface conviviale.
Par ailleurs, Forestimator fournit des webservices pour les développeurs soucieux d'utiliser les résultats de traitements (analyse ponctuelle ou surfacique) dans leurs plateforme web. Cette page d'aide décrit le fonctionnement de l'API (Application Programming Interface) de Forestimator.
Aide
Pour afficher la liste des couches et des traitements disponibles;
https://forestimator.gembloux.ulg.ac.be/api/help
Dictionnaire des couches cartographiques
La majorité des couches cartographiques sont au format raster. Les variables de classes stoquées dans les couches raster sont renseignées au moyen d'une valeur entière. Il évidemment est nécessaire de connaitre la signification des valeurs entières pour correctement appréhender la couche raster ou les résultats d'analyses relatifs à cette couches : c'est le rôle du dictionnaire de la couche de fournir ces renseignement.
Les dictionnaires de couches sont disponibles en renseignant le nom de la carte de la manière suivate (exemple pour l'aptitude du hêtre) :
https://forestimator.gembloux.ulg.ac.be/api/HE_FEE
Voici ce que serveur retourne comme réponse :
Analyse ponctuelle
Les analyses sont effectuées pour une position donnée sur une couche définie.
La syntaxe générale est la suivante :
https://forestimator.gembloux.ulg.ac.be/api/
CODE_COUCHE/point/
POINT_FORMAT_WKT
Ci-dessous un exemple avec la couche de la carte de l'essence majoritaire du peuplement :
https://forestimator.gembloux.ulg.ac.be/api/COMPOALL/point/POINT (217256.9 50427.0)
Le dictionnaire de cette couche (sous ce lien :
https://forestimator.gembloux.ulg.ac.be/api/COMPOALL/) nous renseigne que la valeur 5 signifie que l'essence majoritaire est l'épicéa commun.
Analyse surfacique
La syntaxe générale est la suivante :
https://forestimator.gembloux.ulg.ac.be/api/
CODE_COUCHE_OU_NOM_TRAITEMENT/polygon/
POLYGONE_FORMAT_WKT
CODE_COUCHE_OU_NOM_TRAITEMENT; consultez la page
https://forestimator.gembloux.ulg.ac.be/api/help pour avoir la liste.
POLYGONE_FORMAT_WKT; le polygone délimitant la surface de terrain pour laquelle vous souhaitez effectuer les analyses. Le format doit être le WKT, le système de projection doit être en Belge Lambert 72. De plus, la géométrie du polygone doit être valide et sa surface ne peut dépasser 200 ha.
Certains traitements acceptent des arguments qui permettent de modifier leurs comportement par défaut. Dans ce cas, la syntaxe sera la suivante:
https://forestimator.gembloux.ulg.ac.be/api/CODE_COUCHE_OU_NOM_TRAITEMENT/args/ARGUMENTS_OPTIONNEL/polygon/POLYGONE_FORMAT_WKT
Exemples
https://forestimator.gembloux.ulg.ac.be/api/aptitude/polygon/POLYGON ((208118.986622118 113943.623825983,208387.928131752 113684.230535628,208211.816531718 113533.580853657,207902.029861846 113854.507112691,208118.986622118 113943.623825983))
https://forestimator.gembloux.ulg.ac.be/api/aptitude/args/HE,DO,AG/polygon/POLYGON ((208118.986622118 113943.623825983,208387.928131752 113684.230535628,208211.816531718 113533.580853657,207902.029861846 113854.507112691,208118.986622118 113943.623825983))
https://forestimator.gembloux.ulg.ac.be/api/hdom/polygon/POLYGON ((208118.986622118 113943.623825983,208387.928131752 113684.230535628,208211.816531718 113533.580853657,207902.029861846 113854.507112691,208118.986622118 113943.623825983))
https://forestimator.gembloux.ulg.ac.be/api/dendro2018/polygon/POLYGON ((208118.986622118 113943.623825983,208387.928131752 113684.230535628,208211.816531718 113533.580853657,207902.029861846 113854.507112691,208118.986622118 113943.623825983))
https://forestimator.gembloux.ulg.ac.be/api/CNSW/polygon/POLYGON ((208118.986622118 113943.623825983,208387.928131752 113684.230535628,208211.816531718 113533.580853657,207902.029861846 113854.507112691,208118.986622118 113943.623825983))
Exemples de script R pour traiter plusieurs polygones
require(curl)
library(sf)
server.api <- "https://forestimator.gembloux.ulg.ac.be/api/"
shp.path <- "/home/lisein/Documents/carteApt/autres/shpTest/epioux_sample.shp"
parcellaire.shp <- st_read(shp.path)
for (polNum in 1:nrow(parcellaire.shp)){
cat(paste0("traitement du polygone numéro ", polNum,"\n"))
wkt.pol <- st_as_text(parcellaire.shp$geometry[polNum])
my.request <- paste0(server.api,"dendro2018/polygon/",wkt.pol)
my.request <- gsub(" ", "%20", my.request, fixed = TRUE)
req.res <- curl_fetch_memory(my.request)
cat(rawToChar(req.res$content))
cat("\n")
}