Ceci est une ancienne révision du document !
Récupération et intégration de lots de données depuis le GBIF
Fonctionnement global
- Configurer et déclencher un export ciblé via l'API du GBIF
- Récupérer le fichier généré sur le serveur
- Préparer les données et les stocker dans la base de données
- Préparer les métadonnées associées
- Intégrer ou actualiser les données dans la synthèse
Scripts
Configurer l'export GBIF
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'