API

API

L’utilisation des APIs GDH requiert l’accès à un terminal Shell (comme MobaXterm, Ubuntu for Windows, Git bash…) et l’outil en ligne de commande cUrl.

Optionnel :

  • Si vous utilisez les services de téléchargement, exporter une variable d’environnement APIKEY avec la clé d’API.

export APIKEY= »sSDFSGcxvjqRSDGFDDFGDFGDFGWSDFFSDGDFG »

  • Il peut parfois être nécessaire de configurer un proxy en exportant la variable suivante :

export https_proxy=<proxy>

1. Rechercher via l’API STAC

L’API GDH expose plusieurs points de contact :

  • /api/stac/collections : Permet de rechercher des jeux de données
  • /api/stac/search: Permet de rechercher des produits
  • /api/stac/collections/paginate : Permet de rechercher la page des jeux de données
  • /api/stac/search/paginate: Permet de rechercher la page des produits
  • /api/stac/collections/#collectionId : Permet de rechercher une collection spécifique à partir de son id
  • /api/stac/collections/#collectionId/items:  Permet de rechercher les items d’une une collection spécifique à partir de son id
  • /api/stac/collections/#collectionId/items/#itemId:  Permet de rechercher un item spécifique d’une une collection spécifique à partir de l’id de la collection et de l’id de l’item.

Les APIs de recherche GDH permettent d’utiliser les mots clés suivants :

Mot cléUtilitéStringNombre
eqChercher une valeur exacte« attribut »:{« eq » : « valeur »}« attribut »:{« eq » : valeur}
inChercher plusieurs valeurs« attribut »: {« in »: [« valeur1″, »valeur2 »]}« attribut »: {« in »: [valeur1, valeur2]}
containsContient une valeur« attribut »:{« contains » : « valeur »}« attribut »:{« contains » : valeur}
lteCherche des valeurs inférieures ou égales à« attribut »:{« lte » : valeur1}
gteCherche des valeurs supérieures ou égales à« attribut »:{« lte » : valeur1}

1.1 Rechercher des jeux de données

Il est possible de rechercher des jeux de données du catalogue et leurs métadonnées avec la requête suivante:

curl -k -H "Content-Type: application/json" -X POST -d '{"page":1, "query": { <ATTRIBUTS RECHERCHES> }}' "https://geodes-portal.cnes.fr/api/stac/collections"

Les attributs requêtables sont présentés ci-dessous :

AttributTypeDescriptionValeurs possibles ou exemple ou pattern
dataTypeStringRéférence de la collection« PEPS_S1_L1 » pour Sentinel-1 niveau 1
titleStringTitre de la collectionPEPS Sentinel-1 Level1
keywordsStringMots clés associés à la collection[« s1″, »sentinel-1″, »l1″, »sar », »grd », »slc »]
instrumentsStringCapteurC-SAR
processing:levelStringNiveau de produitLEVEL1
temporal_resolution_hourStringRésolution temporelle en jours144
gsdStringRésolution spatiale le plus fine, en mètres5m
missionStringNom de la missionsentinel-1, sentinel-2, etc…
projectsStringProjets chapeauspécifique Postel (cyclopes, polder, …)
total_itemsNumbernombre de produits dans cette collection10
extent.temporal.intervalInterval de datesIntervalle temporel des produits de la collection[[« 2023-02-09T00:39:19.039Z », »2023-05-16T22:11:16.318Z »]] »

Pour savoir si un attribut est requêtable, il faut vérifier dans le modèle s’il a l’attribut « indexed » à true.

Ainsi par exemple, la requête suivante permet de trouver une collection dont les mots-clés contiennent l’expression « grd » :

curl -k -H "Content-Type: application/json" -X POST -d '{"page":1, "query": {"keywords": {"contains":"grd"}}}' "https://geodes-portal.cnes.fr/api/stac/collections"

La requête peut être également lancer avec un get  pour un résultat rapide:

curl -k -X GET "https://geodes-portal.cnes.fr/api/stac/collections"X POST -d ‘{« page »:1, « query »: {« keywords »: {« contains »: »grd »}}}’ « https://gdh-portal-prod.cnes.fr/api/search/collections »

1.2 Rechercher des produits

Il est possible de rechercher des produits du catalogue et leurs métadonnées avec la requête suivante:

curl -k -H "Content-Type: application/json" -X POST -d '{"page":1, "limit":80, "query": { <ATTRIBUTS RECHERCHES> }}' "https://geodes-portal.cnes.fr/api/stac/search"

La limite d’affichage est configurable avec une valeur maximale de 80. Au delà de 80 éléments, paginez en jouant sur la valeur de page pour obtenir la suite.

Pour afficher le nombre d’élément que la recherche avec les critères choisis renvoie, utilisez la commande suivante : 

curl -s -k -H "Content-Type: application/json" -X POST -d '{"limit":2,"page":1,"query":{ <ATTRIBUTS RECHERCHES> }}' https://geodes-portal.cnes.fr/api/stac/search | sed 's/,/\n/g' | grep matched | sed 's/}}//g'

Les attributs requêtables sont présentés ci-dessous (certains sont préfixés, avec le séparateur ‘:’) :

  • Produits de type Sentinel-2
AttributTypeDescriptionValeurs possibles ou exemple ou pattern
dataTypeStringCollection d’appartenance« PEPS_S2_L1C », « PEPS_S2_L2A »
accessService:endpointURLStringURL s3 du produit« S2A_MSIL1C_20230303T071811_N0509_R006_T39UYU_20230303T080614 »
temporal:startDateDatedébut d’acquisition« aaaa-mm-jjThh:mm:ss.000Z »
temporal:endDateDatefin d’acquisition« aaaa-mm-jjThh:mm:ss.000Z »
spaceborne:satelliteSensorStringtype de capteur satellitaire« SAR-C SAR » , »MSI »
spaceborne:satellitePlatformStringtype de plateforme satellitaire« S1A », « S1B », S2A », « S2B »
spaceborne:sensorModeStringmode du capteur« IW », « EW », « SM », « WV », « INS-NOBS », « INS-RAW », « INS-VIC »
spaceborne:cycleIdNumbercycle 321
spaceborne:orbitIDNumberid de l’orbit relatifentre 1 et 175
spaceborne:absoluteOrbitIDNumberid de l’orbite absolu46971
spaceborne:productTypeStringtype du produit« SLC », « GRD », OCN », « S2MSI1C », « S2MSI2A »
spaceborne:swathStringswath du produit« IW », « IW1 IW2 IW3, « EW », « EW1 EW2 EW3 EW4 EW5 », « WV1 WV2 », 
spaceborne:tileStringtuile du produitpar exemple « T31TCG », liste des tuiles disponibles sur le site de l’ESA
spaceborne:cloudCoverNumbercouverture nuageuseentre 0 et 100 avec des décimales possibles exemple 96.2
spaceborne:continentIdStringdeux première lettres du continent « AF » (Afrique) , »NA » (Amerique du Nord) , »OC » (Océanie), »AN » (Antartique) , »AS » (Asie) , »EU » (Europe) , « SA » (Amerique du Sud)
  • Produits de type Sentinel-1
AttributTypeDescriptionValeurs possibles ou exemple ou pattern
dataTypeStringCollection d’appartenance« PEPS_S1_L1 », « PEPS_S1_L2 »
accessService:endpointURLStringURL s3 du produit« S2A_MSIL1C_20230303T071811_N0509_R006_T39UYU_20230303T080614 »
temporal:startDateDatedébut d’acquisition« aaaa-mm-jjThh:mm:ss.000Z »
temporal:endDateDatefin d’acquisition« aaaa-mm-jjThh:mm:ss.000Z »
spaceborne:satelliteSensorStringtype de capteur satellitaire« SAR-C SAR », « MSI »
spaceborne:satellitePlatformStringtype de plateforme satellitaire« S1A », « S1B », S2A », « S2B »
spaceborne:sensorModeStringmode du capteur« IW », « EW », « SM », « WV », « INS-NOBS », « INS-RAW », « INS-VIC »
spaceborne:cycleIdNumbercycle 321
spaceborne:orbitIDNumberid de l’orbit relatifentre 1 et 175
spaceborne:absoluteOrbitIDNumberid de l’orbite absolu46971
spaceborne:productTypeStringtype du produit« SLC », « GRD », OCN », « S2MSI1C », « S2MSI2A »
spaceborne:swathStringswath du produit« IW », « IW1 IW2 IW3, « EW », « EW1 EW2 EW3 EW4 EW5 », « WV1 WV2 », 
spaceborne:tileStringtuile du produitpar exemple « T31TCG », liste des tuiles disponibles sur le site de l’ESA
spaceborne:cloudCoverNumbercouverture nuageuseentre 0 et 100 avec des décimales possibles exemple 96.2
spaceborne:continentIdStringdeux première lettres du continent « AF » (Afrique) , »NA » (Amerique du Nord) , »OC » (Océanie), »AN » (Antartique) , »AS » (Asie) , »EU » (Europe) , « SA » (Amerique du Sud)
spaceborne:areaNumber
sat:relative_orbitNumberOrbite relative 50
sat:absolute_orbitNumberOrbite absolue 30972
sat:orbit_stateStringDirection de l’orbite« Descending » ou « Ascending »
sar:polarizationsStringPolarisations« HH », « VV », « DH », « DV »
product:typeStringType de produit« SLC » ou « GRD » pour dataType « PEPS_S1_L1 »
« OCN » pour dataType « PEPS_S1_L2 »
sar:instrument_modeStringMode d’acquisition« IW », « EW », « SM », « EW »
resolution_modeStringMode de résolutionFull, High, Medium, Low, Reduced
product:timelinessStringDélai de production« Fast24h »
continent_codeStringcode continentAF, NA, OC, AN, AS, EU, SA, SS
datetimeDateDate de publication (date à laquelle la donnée a été cataloguée)« aaaa-mm-jjThh:mm:ss.000Z »

Exemples

Ainsi par exemple, la requête suivante permet de trouver des produits de type S1A SLC dont la date de début d’acquisition est entre le 20 Juin 2023 à 4h21m51s et le 28 Juin 2023 à  4h21m51s et dont la polarisation est VV et le mode de capteur est soit IW soit EW :

curl -k -H "Content-Type: application/json" -X POST -d '{"page":1,"query":{"start_datetime":{"lte":"2023-06-28T04:21:51.000Z","gte":"2023-06-20T04:21:51.000Z"},"sar:polarizations" : {"in": ["VV"]}, "platform": {"in": ["S1A"]},"product:type": {"in": ["SLC"]},"sar:instrument_mode": {"in": ["IW","EW"]}}}' "https://geodes-portal.cnes.fr/api/stac/search"

La requête suivante permet de trouver 10 produits SENTINEL2 L1C dont la couverture nuageuse est inférieure à 50% et dont l’emprise intersecte une bbox donnée :

curl -k -H "Content-Type: application/json" -X POST -d '{ "page":1,"limit":10, "bbox":[148,-30,153,-28], "query": {"dataType": {"in":["PEPS_S2_L1C"]}, "eo:cloud_cover": {"lte":50}}}' "https://geodes-portal.cnes.fr/api/stac/search"

La requête suivante permet de trouver le produit dont le nom est S2A_MSIL1C_20230303T071811_N0509_R006_T39UYU_20230303T080614:

curl -k -H "Content-Type: application/json" -X POST -d '{ "page":1,"limit":10, "bbox":[148,-30,153,-28], "query": {"accessService:endpointURL":{"contains":"S2A_MSIL1C_20230303T071811_N0509_R006_T39UYU_20230303T080614"}}' "https://geodes-portal.cnes.fr/api/stac/search"

Chaque requête retourne une liste de produits et leurs métadonnées au format JSON.

Pour trier les résultats par un certains critère, il faut rajouter sortBy à la commande de la manière suivante : 

curl -s -k -H "Content-Type: application/json" -X POST -d '{sortBy: [{ direction: " <SENS> ", field: " <ATTRIBUT DE TRI> " }],"page":1,"query":{ <ATTRIBUTS RECHERCHES> }}' https://geodes-portal.cnes.fr/api/stac/search

« direction » correspond au sens choisi pour le tri. Il y a 2 valeurs possibles : « asc » pour ascendant et « dsc » pour descendant. 

« field » correspond à l’attribut choisi pour le tri. Il doit faire partie de la liste d’attribut donnée précédemment.  

La requête suivante permet de trouver 10 produits SENTINEL2 L1C dont la couverture nuageuse est inférieure à 10% et ordonné selon le taux de couverture nuageuse :

curl -k -H "Content-Type: application/json" -X POST -d '{ "page":1,"limit":10, sortBy: [{ direction: "asc", field: "eo:cloud_cover" }] ,"query": {"dataType": {"in":["PEPS_S2_L1C"]}, "eo:cloud_cover": {"lte":10}}}' "https://geodes-portal.cnes.fr/api/stac/search"

Enfin, dans une logique de moissonnage, du catalogue GDH par des catalogues externes, une requête par date de publication (date à laquelle la donnée a été cataloguée) est utilisée. Il s’agit du paramètre datetime. En donnant un intervalle, on récupère toutes les données cataloguées dans la période.

curl -k -H "Content-Type: application/json" -X POST -d '{"page":1,"query":{"dataType":{"in":["PEPS_S2_L1C"]}, "datetime":{"lte":"2022-01-31T23:59:59.999Z"}, "datetime":{"gte":"2022-01-01CT00:00:00.000Z"}}}' https://geodes-portal.cnes.fr/api/stac/search

On peut utiliser aussi les paginations, sort by… pour récupérer plusieurs pages et moissonner.

Aujourd’hui, le catalogue GDH est compatible avec le standard STAC 1.0.0-beta.1 mais certaines extensions et opérateurs du standard ne sont pas encore supportés (filter par exemple), ce qui doit évoluer dans le futur.

De la même manière toutes les requêtes sont également accessibles en get mais sans body soit la commande:

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/search« 

1.3 Rechercher une page d’une recherche de collections ou d’une recherche de produits

A la fin d’une recherche de collections ou de produits  il y a un attribut links qui permet d’accéder à la page courante , à la page suivante (si existante) et à la page precédente (si existante).

On peut alors accéder à une page spécifique avec la commande curl en GET (uniquement) :

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/search/paginate » pour les produits

ou 

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/collections/paginate » pour les collections

Par défaut la page recherchée est la première. On peut accéder à d’autres pages en ajoute un paramètre page à la requête soit la commande:

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/search/paginate?page=#pageNumber » pour les produits

ou 

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/collections/paginate?page=#pageNumber » pour les collections

L’attribut pageNumber doit être un entier qui référence une page existante.

Par exemple pour accéder à la deuxième page (si elle existe) d’une collection on peut lancer la requête:

 curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/search/paginate?page=2 » pour les produits

On peut également récupérer la page de notre requête avec la commande:

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/search »  | sed ‘s/{/\n/g’ | grep self | grep paginate | sed ‘s/,/\n/g’| grep href | sed ‘s/ »href »://g’ 
   pour les produits

ou 

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/collections » | sed ‘s/{/\n/g’ | grep self | grep paginate | sed ‘s/,/\n/g’| grep href | sed ‘s/ »href »://g’ 
   pour les collections

1.4 Rechercher une collection spécifique

Il est possible de rechercher une collection spécifique du catalogue et leurs métadonnées avec la requête suivante:

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/collections/#collectionId« 


CollectionId représente l’id d’une collection qui peut être récupérer avec une requête sur les collections.

L’API GDH de recherche renvoie un JSON contenant des informations sur les relations entre les objets (collections et items) sous forme de lien dans l’attribut links. Il est donc possible via un simple ensemble d’instructions Shell d’extraire les urls de recherche d’une collection  en utilisant la commande suivante :

<COMMANDE CURL sur l’url https://geodes-portal.cnes.fr/api/stac/search> | sed ‘s/,/\n/g’  | grep collections | grep -v URN | sed ‘s/{« href »://g’

ou

<COMMANDE CURL sur l’url https://geodes-portal.cnes.fr/api/stac/collections> | sed ‘s/,/\n/g’ | grep collections | grep -v URN | sed ‘s/{« href »://g’


Par exemple en lançant la commande suivante :

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/search » | sed ‘s/,/\n/g’ | grep collections | grep -v URN | sed ‘s/{« href »://g’


on peut obtenir ces résultats:

« https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1« 
« https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1« 


On peut alors lancer une requête:

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1 » 

1.5 Rechercher des items une collection spécifique

Il est possible de rechercher une collection spécifique du catalogue et leurs métadonnées avec la requête suivante:

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/collections/#collectionId« 


CollectionId représente l’id d’une collection qui peut être récupérer avec une requête sur les collections.

L’API GDH de recherche renvoie un JSON contenant des informations sur les relations entre les objets (collections et items) sous forme de lien dans l’attribut links. Il est donc possible via un simple ensemble d’instructions Shell d’extraire les urls de recherche d’une collection  en utilisant la commande suivante :

<COMMANDE CURL sur l’url https://geodes-portal.cnes.fr/api/stac/search> | sed ‘s/,/\n/g’  | grep collections | grep -v URN | sed ‘s/{« href »://g’

ou

<COMMANDE CURL sur l’url https://geodes-portal.cnes.fr/api/stac/collections> | sed ‘s/,/\n/g’ | grep collections | grep -v URN | sed ‘s/{« href »://g’


Par exemple en lançant la commande suivante :

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/search » | sed ‘s/,/\n/g’ | grep collections | grep -v URN | sed ‘s/{« href »://g’


on peut obtenir ces résultats:

« https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1« 
« https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1« 


On peut alors lancer une requête:

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1/items » 

1.6 Rechercher un item spécifique

Il est possible de rechercher un item spécifique du catalogue et leurs métadonnées avec la requête suivante:

curl -k -X GET https://geodes-portal.cnes.fr/api/stac/collections/#collectionId/items/#itemId

itemId représente l’id d’un item, il est de la forme URN:…


<COMMANDE CURL sur l’url https://geodes-portal.cnes.fr/api/stac/search> | sed ‘s/,/\n/g’ | grep collections | grep URN | sed ‘s/{« href »://g’

Par exemple :

Par exemple en lançant la commande suivante :

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/search » | sed ‘s/,/\n/g’ | grep collections | grep URN | sed ‘s/{« href »://g’

on peut obtenir ces résultats:

« https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1/items/URN:FEATURE:DATA:gdh:d0264bba-0719-35da-8d48-d65a72cfa58e:V1« 
« https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1/items/URN:FEATURE:DATA:gdh:50a00222-bcc0-3b8b-b49d-c0303bd4b3e0:V1« 

« https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1/items/URN:FEATURE:DATA:gdh:159d546e-fa33-392d-bcd4-6219495943e0:V1« 


On peut alors lancer une requête sur un des produits par exemple:

curl -k -X GET « https://geodes-portal.cnes.fr/api/stac/collections/PEPS_S1_L1/items/URN:FEATURE:DATA:gdh:d0264bba-0719-35da-8d48-d65a72cfa58e:V1 » 

2. Rechercher via l’API OPENSEARCH

L’API Opensearch de GDH expose plusieurs points de contact :

  • /api/opensearch/datasets : Permet de rechercher des jeux de données
  • /api/opensearch/entities : Permet de rechercher des produits

Contrairement à l’API STAC, les requêtes Opensearch sont des requêtes de type GET, avec des réponses par défaut au format JSON.

Actuellement une anomalie oblige le paramétrage d’une APIKey pour utiliser l’API Opensearch. Cette anomalie sera corrigée dans la prochaine version mais d’ici là, il faut rajouter votre clé API  -H « X-API-Key: $APIKEY »  dans les paramètres de l’url.

2.1 Rechercher des jeux de données

Il est possible de rechercher des jeux de données du catalogue et leurs métadonnées avec la requête suivante :

curl -k -X GET -H « X-API-Key: $APIKEY » « https://geodes-portal.cnes.fr/api/opensearch/datasets/search« 

Cette requête remonte l’ensemble des jeux de données du catalogue. L’attribut « dataType » présent dans la réponse est l’identifiant unique de chaque collection.

2.1.1 Recherche sur dataType

Pour rechercher une collection identifiée par son « dataType » : 

curl -k -X GET -H « X-API-Key: $APIKEY » « https://geodes-portal.cnes.fr/api/opensearch/datasets/search?collection=<dataTypeValue>« 

avec <dataTypeValue> à remplacer par la valeur adéquate. ex: PEPS_S2_L1C

2.1.2 Recherche libre

Pour effectuer une recherche « full text » avec un mot clé, on utilise le paramètre 

curl -k -X GET -H « X-API-Key: $APIKEY » « https://geodes-portal.cnes.fr/api/opensearch/datasets/search?q=ocn« 

2.1.3 Autres critères de recherche

Le tableau suivant récapitule les critères utilisables pour la recherche de jeux de données :

AttributTypeDescriptionValeurs possibles ou exemple ou pattern
sensorStringCapteur embarqué MSI, VSCC, etc..
platformStringSatelliteSentinel-1, Sentinel-2, Venus, etc…
processingLevelStringNiveau produitsl1c, l2a, etc ..

2.2 Rechercher des produits

2.2.1 Rechercher les produits d’une collection

Il est possible de rechercher les produits du catalogue pour la collection « PEPS_S2_L1C » et leurs métadonnées avec une requête du type :

curl -k -X GET -H « X-API-Key: $APIKEY » « https://geodes-portal.cnes.fr/api/opensearch/entities/search?collection=PEPS_S2_L1C« 

2.2.2 Recherche par emprise

Pour rechercher les produits contenus dans une emprise fournie :

curl -k -X GET -H « X-API-Key: $APIKEY » « https://geodes-portal.cnes.fr/api/opensearch/entities/search?collection=PEPS_S2_L1C&box=-40,-30,100,60« 

2.2.3 Ajout d’un mot clé

curl -k -X GET -H « X-API-Key: $APIKEY » « https://geodes-portal.cnes.fr/api/opensearch/entities/search?q=Iceland&collection=PEPS_S2_L1C&box=-40,-30,100,60 »

2.2.4 Recherche géotemporelle

Pour rechercher les produits dans un intervalle de date et une emprise fournie : 

curl -k -X GET -H « X-API-Key: $APIKEY » « https://geodes-portal.cnes.fr/api/opensearch/entities/search?startDate=2023-07-28T00:00:00.000Z&endDate=2023-08-05T00:00:00.000Z&box=-40,-30,100,60″

2.2.5 Recherche par date de catalogage

Pour rechercher les produits par date de catalogage, il faut utiliser cette requête : 

curl -k -X GET -H « X-API-Key: $APIKEY » « https://geodes-portal.cnes.fr/api/opensearch/entities/search?date=2023-07-28T00:00:00.00Z« 

Note importante : telle que décrite ici, la requêtte effectue une recherche sur le champ date entre la date donnée (28/07/2023) et maintenant. Le champ de la date de publication étant une valeur unique, il n’est pas possible en opensearch de spécifier un intervalle de recherche pour cette requête. Pour donner un intervalle de recherche sur la date de publication, nous recommandons d’utiliser une recherche STAC telle que donnée ici.

2.2.6 Limitation des résultats

Le paramètre de requête maxRecords peut être utilisé pour limiter les résultats retournés 

2.2.7 Critères de recherche

Le tableau suivant récapitule les critères utilisables pour la recherche de produits :

AttributTypeDescriptionValeurs possibles ou exemple ou pattern
collectionStringCollection d’appartenanceex : PEPS_S2_L1C
startDateStringDate de début d’acquisitionex : 2023-07-28T00:00:00.000Z
endDateStringDate de fin d’acquisitionex : 2023-08-28T00:00:00.000Z
orbitNumbernombre entierOrbite relative ex : 50
orbitDirectionStringDirection de l’orbite« Descending » ou « Ascending »
cloudCoverNombreCouverture nuageuse[0,30]
tileStringTuile (Sentinel-2 ou Landsat) ex : T01UGT
productTypeStringType de produitSLC, GRD ou OCN (Sentinel-1)
sensorModeStringConfiguration capteurIW, EW, SM ou WV (Sentinel-1)
polarisationStringMode de polarisationHH, VV, HH HV ou VV VH
dateStringDate de publication (date de catalogage)ex : 2023-07-28T00:00:00.000Z

3. Générer une clé d’API

3.1. S’authentifier sur le portail GEODES

Dans un premier temps, vous devez vous connecter au portail GEODES afin de générer une clé d’API.

Voici les étapes à suivre :

  1. Ouvrir votre navigateur internet
  2. Accéder au portail GEODES en utilisant le lien suivant :  https://geodes-portal.cnes.fr
  3. S’authentifier via le bouton Log In en haut à droite :

Une fois redirigé sur la page de connexion, veuillez saisir votre adresse e-mail, votre mot de passe, puis cliquer sur le bouton « Login » :

Si vous possédez déjà un compte GEODES, passez directement à l’étape « 3.3 Générer une clé d’API« .

3.2. Créer un compte

Afin de créer un compte, veuillez cliquer sur le bouton « Create account »,

Puis, renseignez les informations ci-dessous :

Attention, tous les champs sont obligatoires. Le mot de passe doit contenir au moins une majuscule, un chiffre et un caractère spécial et atteindre une longueur d’au moins 8 caractères.

Un email de vérification vous sera envoyé avec un lien de validation de compte. Dès réception du mail, veuillez cliquer sur le lien afin de valider votre compte.

3.3. Générer une clé d’API

Veuillez cliquer sur votre nom en haut à droite et choisir l’option « My information » :

Vous pouvez désormais choisir de générer une clé d’API en cliquant sur le bouton « Generate » :

Ensuite, la clé d’API sera générée et apparaîtra dans l’IHM.

Vous pouvez alors le copier dans le presse papier en cliquant sur l’icône dédiée.

Ensuite, vous devrez exporter une variable d’environnement APIKEY avec la clé d’API générée à l’étape « 3.3 Générer une clé d’API« .

Voici un exemple :

export APIKEY="sSDFSGcxvjqRSDGFDDFGDFGDFGWSDFFSDGDFG"

Pour modifier votre clé d’API, cliquez sur l’icône de régénération. Votre clé d’API sera régénérée et remplacera l’ancienne clé dans l’IHM.

4. Télécharger un produit via l’API

4.1 Télécharger un produit

L’API GEODES de recherche renvoie un JSON contenant des informations sur les produits correspondant à la recherche et notamment le lien de téléchargement des produits. Il est possible via un simple ensemble d’instructions Shell d’extraire le nom de l’archive du produit (contenant son identifiant) ainsi que son lien de téléchargement, en utilisant la commande suivante :

<COMMANDE CURL> | sed 's/,/\n/g' | grep quicklook | grep files | sed 's/{"href"://g'

Par exemple : 

curl -k -H "Content-Type: application/json" -X POST -d '{ "page":1,"limit":10, "query": {"dataType": {"in":["PEPS_S2_L1C"]}}}' "https://geodes-portal.cnes.fr/api/stac/search" | sed 's/,/\n/g' | grep assets | grep zip| sed 's/assets\":{/\n/g' | grep href  | sed 's/{"href"://g'

Cela permet d’obtenir un résultat sous la forme :

« archive1″: »lien1 »
« archive2″: »lien2 »
« archive3″: »lien3 »
« archive4″: »lien4 »
« archive5″: »lien5 »
« archive6″: »lien6 »
« archive7″: »lien7 »
« archive8″: »lien8 »
« archive9″: »lien9 »
« archive10″: »lien10 »

en prenant en compte le « limit »: 10 de la requête.

Il suffit ensuite pour télécharger le produit de récupérer le lien désiré et de l’incorporer à la requête de la forme suivante :

curl -vvv -k -L -H "X-API-Key: $APIKEY" -XGET "<LIEN TELECHARGEMENT>" --output <chemin vers fichier sortie>

Par exemple : 

curl -vvv -k -L -H "X-API-Key: $APIKEY" -XGET "https://geodes-portal.cnes.fr/api/quicklook/URN:FEATURE:DATA:gdh:b2140343-085f-33d4-b923-52d3ae9d9dd6:V1/files/ef869eed3ad7b5e0617261e6328408c5" --output S2B_MSIL1C_20230303T080809_N0509_R078_T37UGT_20230303T111244.zip

Important : dans les scripts, bien penser à échapper le caractère ':' avec %3A  

Rechercher