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;

http://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) :

http://forestimator.gembloux.ulg.ac.be/api/HE_FEE

Voici ce que serveur retourne comme réponse :
1;Optimum
2;Tolérance
3;Tolérance élargie
4;Exclusion
5;Optimum/Tolérance
6;Optimum/Tolérance élargie
7;Optimum/Exclusion
8;Tolérance/Tolérance élargie
9;Tolérance/Exclusion
10;Tolérance élargie/Exclusion
11;Indéterminé
12;Indéterminé (Zone batie)

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 :

http://forestimator.gembloux.ulg.ac.be/api/COMPOALL/point/POINT (217256.9 50427.0)

Le dictionnaire de cette couche (sous ce lien : http://forestimator.gembloux.ulg.ac.be/api/COMPOALL/) nous renseigne que la valeur 5 signifie que l'essence majoritaire est l'épicéa commun.
5;EP - Spruces

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 http://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

# librairie pour effectuer des requêtes sur un webserver
require(curl)
# librairie pour la lecture de shapefile
library(sf)
server.api <- "http://forestimator.gembloux.ulg.ac.be/api/"
shp.path <- "/home/lisein/Documents/carteApt/autres/shpTest/epioux_sample.shp"
parcellaire.shp <- st_read(shp.path)
# attention, la méthode fonctionne pour des POLYGONES et des MULTIPOLYGONES dont la géométrie est valide. Si géométrie pas valide, je ne garanti pas l'exactitude du résultat.
# boucle sur les polygones du shapefile
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])
#cat(paste0("wkt polygone : \n ", wkt.pol,"\n"))
my.request <- paste0(server.api,"dendro2018/polygon/",wkt.pol)
# remplacement des espaces par le symbole consacré
my.request <- gsub(" ", "%20", my.request, fixed = TRUE)
# on effectue la requete auprès du serveur - résultat sauvé en mémoire sous forme hexadécimale (=raw)
req.res <- curl_fetch_memory(my.request)
# on écrit dans la console (ou ailleurs) la réponse du serveur
cat(rawToChar(req.res$content))
cat("\n")
}