procedures:recuperation_et_integration_de_donnees_depuis_le_gbif

Ceci est une ancienne révision du document !


Récupération et intégration de lots de données depuis le GBIF

  1. Configurer et déclencher un export ciblé via l'API du GBIF
  2. Récupérer le fichier généré sur le serveur
  3. Préparer les données et les stocker dans la base de données
  4. Préparer les métadonnées associées
  5. Intégrer ou actualiser les données dans la synthèse

La récupération d'un grand volume de données pré-filtrées selon différentes variables est possible en configurant un export via l'API download du GBIF (ici en json). Le fichier de configuration est transmis à l'API du GBIF, qui met ensuite à disposition un export (fichiers) dans l'espace utilisateur du demandeur, correspondant à la requête configurée. Il est donc nécessaire d'avoir un compte GBIF actif.

Dans le fonctionnement du pôle invertébrés, les données filtrées concernent les données : * disposant de coordonnées géographiques * sans problème géospatial (géométries invalides etc) * situées en Auvergne-Rhône-Alpes * d'un ou certains jeux de données ciblés à l'avance * des groupes (phylum) les mieux connus de la faune invertébrée

Pour connaitre les "PHYLUM_KEY" à filtrer, les correspondances avec taxref sont disponibles par défaut dans les bases de données GeoNature dans taxonomie.taxref_liens. Par exemple pour les invertébrés :

 SELECT DISTINCT t.cd_nom, tl.ct_sp_id 
 FROM taxonomie.taxref t 
 JOIN taxonomie.taxref_liens tl ON tl.cd_nom = t.cd_nom 
 WHERE tl.ct_name ='GBIF'
 AND t.id_rang = 'PH'
 AND t.regne='Animalia'
 AND t.phylum!='Chordata';

La configuration de l'export doit être stockée dans un fichier json. À titre d'exemple pour récupérer les Annélides, Mollusques et Arthropodes du jeu de données iNaturalist, le fichier query.json comporte la requête suivante :

{
 "creator": "USER",
 "notificationAddresses": [
 "EMAIL"
],
"sendNotification": true,
"format": "DWCA",
"predicate": {
"type": "and",
"predicates": [
 {
  "type": "equals",
  "key": "HAS_COORDINATE",
  "value": "True"
 },
 {
  "type": "equals",
  "key": "HAS_GEOSPATIAL_ISSUE",
  "value": "False"
 },
 {
  "type": "equals",
  "key": "GADM_GID",
  "value": "FRA.1_1"
 },
 {
  "type": "in",
  "key": "DATASET_KEY",
  "values": [ "50c9509d-22c7-4a22-a47d-8c48425ef4a7" ]
 },
 {
  "type": "in",
  "key": "PHYLUM_KEY",
  "values": [ "42", "52", "54" ]
 }
]
}
}

Une fois le fichier query.json configuré, la requête est transmise à l'API à l'aide de la commande suivante (installation du package jq pour une meilleure lisibilité des réponses) :

sudo apt install jq
curl —silent --user USER_GBIF:PASS_GBIF --header "Content-Type: application/json" --data @query.json https://api.gbif.org/v1/occurrence/download/request | tail -n 1 | tr -d '\r'

Cette commande retournera la clé de l'export en question, sous une forme telle que : 0015000-260108000000665

On peut ensuite suivre l'état de la requête (elle peut prendre quelques dizaines de minutes) avec la commande suivante :

curl -Ss https://api.gbif.org/v1/occurrence/download/<CLE> | jq -r '.status'
  • procedures/recuperation_et_integration_de_donnees_depuis_le_gbif.1769898407.txt.gz
  • Dernière modification : 2026/01/31 22:26
  • de dmaillard