L’utilisation des APIs GEODES requiert l’accĂšs Ă un terminal Shell (comme MobaXterm, Ubuntu for Windows, Git bash…) et l’outil en ligne de commande Curl.
Optionnel :
- 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 GEODES expose plusieurs points de contact :
- /api/stac : Permet d’accĂ©der Ă la landing page stac
- /api/stac/conformance : Permet d’accĂ©der Ă la liste des conformitĂ©s
- /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 GEODES permettent d’utiliser les mots clĂ©s suivants :
Mot clé | Utilité | String | Nombre |
---|---|---|---|
eq | Chercher une valeur exacte | « attribut »:{« eq » : « valeur »} | « attribut »:{« eq » : valeur} |
in | Chercher plusieurs valeurs | « attribut »: {« in »: [« valeur1″, »valeur2 »]} | « attribut »: {« in »: [valeur1, valeur2]} |
contains | Contient une valeur | « attribut »:{« contains » : « valeur »} | « attribut »:{« contains » : valeur} |
lte | Cherche des valeurs inférieures ou égales à | « attribut »:{« lte » : valeur1} | |
gte | Cherche des valeurs supérieures ou égales à | « attribut »:{« lte » : valeur1} |
1.1 Accéder à la landing page stac
Il est possible d’accĂ©der Ă la landing page stac avec la requĂȘte suivante:
curl -k -X GET "https://geodes-portal.cnes.fr/api/stac"
1.2 Accéder à la page des conformités
Il est possible d’accĂ©der Ă la page de conformitĂ©s avec la requĂȘte suivante:
curl -k -X GET "https://geodes-portal.cnes.fr/api/stac/conformance"
1.3 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 de niveau collection requĂȘtables sont prĂ©sentĂ©s ci-dessous :
Attribut ancien nom | Attribut nouveau nom | Type | Recherche | Description | Valeurs possibles ou exemple ou pattern |
---|---|---|---|---|---|
dataType | dataset | String | oui | Référence de la collection | « PEPS_S1_L1 » pour Sentinel-1 niveau 1 |
dcs.spatialResolutionInMeters | gsd | String | Résolution spatiale le plus fine, en mÚtres | 5 | |
dcs:platform | platform | String | oui | Plateformes d’acquisition des donnĂ©es | sentinel-2, multisat |
dcs:processingLevel | processing:level | String | oui | Niveau de produit | LEVEL1 |
dcs:satellite | constellation | String | Nom de la mission | sentinel-1, sentinel-2, etc… | |
dcs:sensor | instruments | String | Capteur | C-SAR | |
dcs:temporalResolutionInHours | temporal_resolution | String | Résolution temporelle en jours | 144 | |
extent.temporal.interval | Interval de dates | Intervalle temporel des produits de la collection | [[« 2023-02-09T00:39:19.039Z », »2023-05-16T22:11:16.318Z »]] » | ||
items | total_items | Number | nombre de produits dans cette collection | 10 | |
keyword | keywords | String | oui | Mots clĂ©s associĂ©s Ă la collection | [« s1″, »sentinel-1″, »l1″, »sar », »grd », »slc »] |
projects | missions | String | Projets chapeau | spĂ©cifique Postel (cyclopes, polder, …) | |
title | String | oui | Titre de la collection | PEPS Sentinel-1 Level1 |
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.4 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
Attribut ancien nom | Attribut nouveau nom | Type | Recherche | Description | Valeurs possibles ou exemple ou pattern |
---|---|---|---|---|---|
dataType | dataset | String | oui | Collection d’appartenance | « PEPS_S2_L1C », « PEPS_S2_L2A » |
providerId | identifier | String | Id du produit | par exemple « S2A_MSIL1C_20230303T071811_N0509_R006_T39UYU_20230303T080614 » | |
accessService:endpointURL | endpoint_url | String | URL s3 du produit | l’url contient aussi l’identifier du produit par exemple « S2A_MSIL1C_20230303T071811_N0509_R006_T39UYU_20230303T080614 » | |
temporal:startDate | start_datetime | Date | oui | dĂ©but d’acquisition | « aaaa-mm-jjThh:mm:ss.000Z » |
temporal:endDate | end_datetime | Date | oui | fin d’acquisition | « aaaa-mm-jjThh:mm:ss.000Z » |
spaceborne:satelliteSensor | instrument | String | oui | type de capteur satellitaire | « MSI » |
spaceborne:satellitePlatform | platform | String | oui | type de plateforme satellitaire | S2A », « S2B » |
spaceborne:sensorMode | sar:instrument_mode | String | mode du capteur | « INS-NOBS », « INS-RAW », « INS-VIC » | |
spaceborne:cycleID | sat:orbit_cycle | Number | oui | cycle | 321 |
spaceborne:orbitID | sat:relative_orbit | Number | oui | id de l’orbite relative | entre 1 et 143 |
spaceborne:absoluteOrbitID | sat:absolute_orbit | Number | oui | id de l’orbite absolue | 46971 |
spaceborne:productType | product:type | String | oui | type du produit | « S2MSI1C », « S2MSI2A » |
spaceborne:tile | grid:code | String | oui | tuile du produit | par exemple « T31TCG », liste des tuiles disponibles sur le site de l’ESA |
spaceborne:cloudCover | eo:cloud_cover | Number | oui | couverture nuageuse | entre 0 et 100 avec des décimales possibles exemple 96.2 |
spaceborne:continentId | continent_code | String | oui | deux 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:area | area | Nulber | superficie au sol |
- Produits de type Sentinel-1
Attribut ancien nom | Attribut nouveau nom | Type | Recherche | Description | Valeurs possibles ou exemple ou pattern |
---|---|---|---|---|---|
dataType | dataset | String | Collection d’appartenance | « PEPS_S1_L1 », « PEPS_S1_L2 » | |
providerId | identifier | String | Id du produit | par exemple « S1A_IW_GRDH_1SDV_20241212T060834_20241212T060859_056955_06FF1C_F554 » | |
accessService:endpointURL | endpoint_url | String | URL s3 du produit | ||
temporal:startDate | start_datetime | Date | oui | dĂ©but d’acquisition | « aaaa-mm-jjThh:mm:ss.000Z » |
temporal:endDate | end_datetime | Date | oui | fin d’acquisition | « aaaa-mm-jjThh:mm:ss.000Z » |
spaceborne:satelliteSensor | instrument | String | oui | type de capteur satellitaire | « SAR-C SAR » |
spaceborne:satellitePlatform | platform | String | oui | type de plateforme satellitaire | « S1A », « S1B » |
spaceborne:sensorMode | sar:instrument_mode | String | oui | mode du capteur | « IW », « EW », « SM », « WV » |
spaceborne:cycleID | sat:orbit_cycle | Number | oui | cycle | 321 |
spaceborne:orbitID | sat:relative_orbit | Number | oui | id de l’orbite relative | entre 1 et 175 |
spaceborne:absoluteOrbitID | sat:absolute_orbit | Number | oui | id de l’orbite absolue | 46971 |
spaceborne:orbitDirection | sat:orbit_state | String | oui | Direction de l’orbite | « Descending » ou « Ascending » |
spaceborne:productType | product:type | String | oui | type du produit | « SLC » ou « GRD » pour dataType « PEPS_S1_L1 » « OCN » pour dataType « PEPS_S1_L2 » |
spaceborne:swath spaceborne.subSwath | swath sar:beam_ids | String | swath du produit | « IW », « IW1 IW2 IW3, « EW », « EW1 EW2 EW3 EW4 EW5 », « WV1 WV2 », | |
spaceborne:continentId | continent_code | String | oui | deux 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:polarization | sar:polarizations | String | oui | Polarisations | « HH », « VV », « DH », « DV » |
spaceborne:resolution | resolution | String | Mode de résolution | Full, High, Medium, Low, Reduced | |
spaceborne:productTimeliness | product:timeliness | String | oui | Délai de production | « Fast24h » |
date | datetime | Date | Date 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": {"dataset": {"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": {"endpoint_url":{"contains":"S2A_MSIL1C_20230303T071811_N0509_R006_T39UYU_20230303T080614"}}' "https://geodes-portal.cnes.fr/api/stac/search"
ou bien
curl -k -H "Content-Type: application/json" -X POST -d '{ "page":1,"limit":10, "bbox":[148,-30,153,-28], "query": {"identifier":{"eq":"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": {"dataset": {"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 GEODES 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":{"dataset":{"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 GEODES 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.5 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.6 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 GEODES 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.7 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 GEODES 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.8 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«Â
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. GĂ©nĂ©rer une clĂ© d’API
2.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 :
- Ouvrir votre navigateur internet
- Accéder au portail GEODES en utilisant le lien suivant : https://geodes-portal.cnes.fr
- 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« .
2.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.
2.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 « 2.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.
3. TĂ©lĂ©charger un produit via l’API
Optionnel :
- Si vous utilisez les services de tĂ©lĂ©chargement depuis un terminal, il peut ĂȘtre pratique d’exporter une variable d’environnement APIKEY avec la clĂ© d’API.
export APIKEY="Copier_ici_votre_clé_API"
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 zip | sed 's/assets\":{/\n/g' | grep href | 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 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
4. Consulter la disponibilitĂ© d’un produit
Certains produits diffusĂ©s par GEODES sont stockĂ©s sur bande (Tier3) tandis que d’autres sont stockĂ©s sur disque (Tier2). Les APIs suivantes permettent de consulter le mode de stockage afin d’anticiper un tĂ©lĂ©chargement direct ou un tĂ©lĂ©chargement aprĂšs restauration sur disque.
4.1. DisponibilitĂ© d’un produit
L’endpoint pour connaitre disponibilitĂ© d’un produit est : /availability/{NOM_DU_PRODUIT}
Il s’agit d’une requĂȘte GET.
curl -XGET -k -H "Content-Type:application/json" -H "X-API-Key: $APIKEY" -H "Prefer:respond-async" "<URL_DU_PORTAIL>/availability/{NOM_DU_PRODUIT}" |
un exemple de requĂȘte
curl -XGET -k -H "Content-Type:application/json" -H "X-API-Key: $APIKEY" -H "Prefer:respond-async" "https://geodes-portal.cnes.fr/availability/S2A_MSIL1C_20161106T094202_N0500_R036_T32NNM_20230926T184801" |
4.2. DisponibilitĂ© d’une liste de produits
Pour connaĂźtre le mode de stockage d’une liste de produits, utiliser une requĂȘte POST sur l’endpoint : /availability avec un body pouvant prendre la forme suivante :
{ "product_ids": [ "URN_DU_PRODUIT_1", "URN_DU_PRODUIT_2" ] } |
La requĂȘte retourne une rĂ©ponse sous la forme :
|
Ci-dessous un exemple de requĂȘte
curl -XPOST -k --data "@body.json" -H "Content-Type:application/json" -H "X-API-Key: $APIKEY" -H "Prefer:respond-async" "https://geodes-portal.cnes.fr/availability" |
avec body.json :
|
La réponse retournée est de la forme suivante :
|
5. Pour les utilisateurs Python
PyGEODES est un outil de recherche et téléchargement des produits catalogués dans GEODES.

Lâensemble des informations pour installer et utiliser cet outil est disponible sur Github : pygeodes â pygeodes v0.1.0 Manual
Vous trouverez également dans cette documentation des exemples pour vous accompagner dans sa prise en main.
En cas de questions/remarques sur lâoutil PyGEODES, merci de nous contacter via le formulaire de contact.