ERDDAP > Services Web RESTful
ERDDAP c’est à la fois :
- Une application web
– une page Web avec un formulaire que les humains équipés de navigateurs peuvent utiliser (dans ce cas, pour obtenir des données, des graphiques ou des informations sur des ensembles de données).
- Un service Web RESTful
– une URL que les programmes informatiques peuvent utiliser (dans ce cas, pour obtenir des données, des graphiques et des informations sur des ensembles de données).
Pour chaque page Web ERDDAP comportant un formulaire que vous pouvez utiliser en tant qu'être humain disposant d'un navigateur, il existe un service Web ERDDAP correspondant conçu pour être facile à utiliser pour les programmes informatiques et les scripts.
Par exemple, les humains peuvent utiliser cette URL pour effectuer une recherche en texte intégral pour des ensembles de données intéressants :
https://cioosatlantic.ca/erddap/fr/search/index.html?page=1&itemsPerPage=1000&searchFor=temperature
En modifiant l'extension de fichier dans l'URL de .html à .json (ou .csv, ou .htmlTable, ou .jsonlCSV1, ou .xhtml, ...) :
https://cioosatlantic.ca/erddap/fr/search/index.json?page=1&itemsPerPage=1000&searchFor=temperature
nous obtenons une URL qu'un programme informatique ou un script Java Script peut utiliser pour obtenir les mêmes informations dans un format plus convivial pour les programmes informatiques comme
JSON 
.
De nombreuses fonctionnalités d' ERDDAP peuvent être utilisées par des programmes informatiques ou des scripts que vous écrivez.
Vous pouvez les utiliser pour créer d'autres applications Web ou services Web au-dessus d' ERDDAP, permettant ainsi à ERDDAP de faire l'essentiel du travail ! Ainsi, si vous avez une idée pour une meilleure interface avec les données servies par ERDDAP ou une page Web nécessitant un moyen simple d'accéder aux données, nous vous encourageons à créer votre propre application Web, service Web ou page Web et à utiliser ERDDAP comme outil.
fondation.
Votre système peut obtenir des données, des graphiques et d'autres informations à partir de ERDDAP d' ERD ou d'autres installations ERDDAP, ou vous pouvez
configurez votre propre serveur ERDDAP, qui peut être accessible publiquement ou simplement accessible en privé.
Les demandes d'informations sur l'interface utilisateur provenant d' ERDDAP (par exemple, les résultats de recherche) utilisent la norme universelle du Web pour les demandes :
URL 
envoyé via
HTTP GET 
.
Il s'agit du même mécanisme que votre navigateur utilise lorsque vous remplissez un formulaire sur une page Web et cliquez sur
Submit Pour utiliser HTTP GET, vous générez une URL spécialement formée (qui peut inclure une requête) et l'envoyez avec HTTP GET .
Vous pouvez créer ces URL manuellement et les saisir dans le champ de texte d'adresse de votre navigateur (par exemple,
https://cioosatlantic.ca/erddap/fr/search/index.json?page=1&itemsPerPage=1000&searchFor=temperature)
Vous pouvez également écrire un programme informatique ou un script de page Web pour créer une URL, l'envoyer et obtenir la réponse.
Les URL via HTTP GET ont été choisies car
- Ils sont simples à utiliser.
- Ils fonctionnent bien.
- Ils sont universellement pris en charge (dans les navigateurs, les langages informatiques, les outils des systèmes d'exploitation, etc.).
- Ils constituent le fondement du
transfert d'état représentatif (REST )
et
Architecture orientée ressources (ROA )
- Ils facilitent l'utilisation du World Wide Web comme une grande application distribuée, par exemple via
mashups
Applications AJAX
- Ils sont
apatrides
tout comme ERDDAP, ce qui simplifie le système.
- Une URL définit complètement une requête donnée, vous pouvez donc la mettre en favoris dans votre navigateur, l'écrire dans vos notes, l'envoyer par e-mail à un ami, etc.
Dans les URL, certains caractères ne sont pas autorisés (par exemple, les espaces) et d'autres caractères ont une signification particulière (par exemple, « & » sépare les paires clé=valeur dans une requête).
Lorsque vous remplissez un formulaire sur une page Web et cliquez sur Soumettre, votre navigateur
encode automatiquement 
les caractères spéciaux dans l'URL (par exemple, l'espace devient %20), par exemple :
https://cioosatlantic.ca/erddap/fr/search/index.html?page=1&itemsPerPage=1000&searchFor=temperature%20wind%20speed
Mais si votre programme informatique ou votre script génère les URL, il devra probablement effectuer lui-même le codage en pourcentage.
Si tel est le cas, alors probablement tous les caractères autres que A-Za-z0-9_-!.~'()* dans les valeurs de la requête (les parties après les signes '=' ) doivent être codés en %HH, où HH est le Valeur hexadécimale à 2 chiffres du caractère, par exemple, l'espace devient %20.
Les caractères au-dessus de #127 doivent être convertis en octets UTF-8, puis chaque octet UTF-8 doit être codé en pourcentage (demandez de l'aide à un programmeur).
Les langages de programmation disposent d'outils pour ce faire (par exemple, voir
java.net.URLEncoder 
Java et
encodeURIComponent() 
de Java Script) et il existe
des sites Web qui encodent/décodent en pourcentage pour vous
Bien que les humains utilisant des navigateurs souhaitent recevoir les résultats de l'interface utilisateur (par exemple, les résultats de recherche) sous forme de documents HTML, les programmes informatiques préfèrent souvent obtenir des résultats dans des documents simples, faciles à analyser et moins verbeux.
ERDDAP peut renvoyer les résultats de l'interface utilisateur sous forme de tableau de données dans ces types de fichiers courants et conviviaux pour les programmes informatiques :
Dans tous les formats de tableau de résultats (sauf .jsonlKVP, où les noms de colonnes figurent sur chaque ligne) :
- Chaque colonne a un nom de colonne et un type d'information.
- La première ligne du tableau contient les noms des colonnes.
- Les lignes suivantes contiennent les informations que vous avez demandées.
Le contenu de ces types de fichiers simples est également légèrement différent de la réponse .html :
il est intentionnellement simple afin qu'il soit plus facile à utiliser pour un programme informatique.
Une structure de données cohérente pour les réponses
Tous les services d'interface utilisateur décrits sur cette page peuvent renvoyer un tableau de données dans l'un des formats de fichiers courants répertoriés ci-dessus.
J'espère que vous pourrez écrire une seule procédure pour analyser une table de données dans l'un des formats.
Vous pouvez ensuite réutiliser cette procédure pour analyser la réponse de l'un de ces services.
Cela devrait faciliter la gestion de ERDDAP .
Détails
.csv et .tsv
- Si une donnée dans un fichier .csv comporte des guillemets doubles ou des virgules internes, ERDDAP suit strictement la spécification .csv :
il met des guillemets doubles autour de la donnée et double les guillemets doubles internes.
- Les caractères spéciaux dans un fichier .csv ou .tsv sont codés comme
JSON
Caractères codés avec barre oblique inverse :
\n (nouvelle ligne), \\ (barre oblique inverse), \f (saut de page), \t (tabulation), \r (retour chariot) ou avec la syntaxe \u hhhh .
jsonp
Les demandes de fichiers .json peuvent désormais inclure un
jsonp
requête en ajoutant "& .json p= functionName" à la fin de la requête.
Fondamentalement, cela indique ERDDAP d'ajouter "functionName (" au début de la réponse et ")" à la fin de la réponse.
Le premier caractère de functionName doit être une lettre ISO 8859 ou "_".
Chaque caractère suivant facultatif doit être une lettre ISO 8859, "_", un chiffre ou ".".
Si à l'origine il n'y avait pas de requête, laissez le "&" dans votre requête.
Griddap et tabledap proposent différents types de fichiers
Les types de fichiers répertoriés ci-dessus sont des types de fichiers ERDDAP peut utiliser pour répondre aux types de requêtes de l'interface utilisateur (par exemple, les requêtes de recherche).
ERDDAP prend en charge un ensemble différent de types de fichiers pour les demandes de données scientifiques (par exemple, données de satellite et de bouées) (voir la documentation
Griddap et
tabledap).
ERDDAP n'offre pas de résultats stockés dans des fichiers compressés (par exemple, .zip ou .gzip ).
Au lieu de cela, ERDDAP recherche
le codage d'acceptation 
dans l'en-tête de la requête HTTP GET envoyée par le client.
Si un type de compression pris en charge (gzip, x-gzip ou deflate ) est trouvé dans la liste d'acceptation-encodage, ERDDAP inclut « content‑encoding » dans l'en-tête de réponse HTTP et compresse les données au fur et à mesure de leur transmission.
C'est au programme client de rechercher
content-encoding et de décompresser les données en conséquence.
La demande de compression est facultative, mais les réponses compressées sont souvent 3 à 10 fois plus rapides, ce qui représente un gain de temps considérable si vous téléchargez de nombreux fichiers volumineux.
(Notez qu'il n'y a aucun avantage à demander des fichiers .png compressés puisque le contenu des fichiers est déjà compressé.)
- Par défaut, les navigateurs et les clients OPeNDAP demandent toujours des données compressées et décompressent les données renvoyées.
- Avec curl, ajoutez --compressed à la ligne de commande pour indiquer curl de demander une réponse compressée et de la décompresser automatiquement.
- Avec d'autres logiciels clients, vous avez explicitement configuré cela.
Voici un
exemple Java
.
Voici un
exemple Python
(bien que vous deviez soit gérer les réponses deflate 'd, soit ne pas demander deflate).
ERDDAP dispose de ces points d'accès URL pour les programmes informatiques :
- Pour obtenir la liste des principales URL d'accès aux ressources, utilisez
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Pour obtenir la liste actuelle de tous les ensembles de données, utilisez
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Pour obtenir les métadonnées d'un ensemble de données spécifique (la liste des variables et leurs attributs), utilisez
https://cioosatlantic.ca/erddap/fr /info/ datasetID /index .fileType
Par exemple,
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Pour obtenir les résultats des recherches en texte intégral d'ensembles de données (en utilisant "searchFor=wind%20speed" comme exemple), utilisez
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
(Votre programme ou script devra peut-être
encoder en pourcentage
la valeur dans la requête.)
Vous pouvez également utiliser la norme
OpenSearch 1.1 pour effectuer une recherche en texte intégral d’ensembles de données.
- Pour obtenir les résultats de recherches avancées d'ensembles de données (en utilisant "searchFor=wind%20speed" comme exemple), utilisez
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
Mais expérimentez avec
Recherche Avancée dans un navigateur pour comprendre tous les paramètres facultatifs.
(Votre programme ou script devra peut-être
encoder en pourcentage
la valeur dans la requête.)
- Pour obtenir la liste des categoryAttributes (par exemple, institution, long_name, nom_standard), utilisez
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Pour obtenir la liste des catégories pour un attribut de catégorie spécifique (en utilisant "standard_name" comme exemple), utilisez
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Pour obtenir la liste des ensembles de données dans une catégorie spécifique (en utilisant "standard_name=time" comme exemple), utilisez
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Pour obtenir la liste actuelle de tous les ensembles de données disponibles via un protocole spécifique,
- Pour Griddap :
utilisez
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Pour tabledap :
utiliser
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Pour WMS : utilisez
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Griddap et tabledap proposent de nombreux services Web que vous pouvez utiliser.
- Les formulaires d'accès aux données ne sont que de simples pages Web permettant de générer des URL demandant des données (par exemple, des données de satellite et de bouée).
Les données peuvent être dans l'un des nombreux formats de fichiers courants.
Votre programme peut générer ces URL directement.
Pour plus d'informations, consultez la
documentation Griddap et
la documentation tabledap .
- Les pages Make A Graph ne sont que de simples pages Web permettant de générer des URL qui demandent des graphiques d'un sous-ensemble de données.
Les graphiques peuvent être dans l’un des nombreux formats de fichiers courants.
Votre programme peut générer ces URL directement.
Pour plus d'informations, consultez la
documentation Griddap et
la documentation tabledap .
- Pour obtenir la structure d'un ensemble de données, y compris les noms de variables et les types de données, utilisez un fichier OPeNDAP
.dds
demande.
Par exemple,
https://cioosatlantic.ca/erddap/fr/griddap/jplMURSST41 .dds (données quadrillées) ou
https://cioosatlantic.ca/erddap/fr/tabledap/pmelTaoDySst .dds (données tabulaires).
- Pour obtenir les métadonnées d'un ensemble de données, utilisez un OPeNDAP
.das
demande.
Par exemple,
https://cioosatlantic.ca/erddap/fr/griddap/jplMURSST41 .das (données maillées) ou
https://cioosatlantic.ca/erddap/fr/tabledap/pmelTaoDySst .das (données tabulaires).
- ERDDAP dispose d'un ensemble de données tabulaire spécial appelé
allDatasets qui contient des données sur tous les ensembles de données actuellement disponibles dans cet ERDDAP .
Il y a une ligne pour chaque ensemble de données.
Il existe des colonnes avec différents types d'informations (par exemple, datasetID, titre, résumé, institution, licence, URL du formulaire d'accès aux données, URL de création d'un graphique).
Comme il s'agit d'un ensemble de données tabledap, vous pouvez utiliser une requête de données tabledap pour demander des colonnes et des lignes spécifiques qui correspondent aux contraintes, et vous pouvez obtenir la réponse dans le type de fichier de réponses que vous préférez, par exemple .html, .xhtml, .csv., .json, .jsonlCSV1, .jsonlCSV ou .jsonlKVP .
- Les autres protocoles d' ERDDAP disposent également de services Web que vous pouvez utiliser.
Voir
- ERDDAP propose
des abonnements RSS, afin que votre programme informatique puisse savoir si un ensemble de données a changé.
- ERDDAP propose
des abonnements par e-mail/URL, qui informent votre programme informatique chaque fois qu'un ensemble de données change.
- ERDDAP propose plusieurs convertisseurs sous forme de pages Web et de services Web :
- ERDDAP dispose d'un système pour suivre
les ensembles de données obsolètes .
Voir les options au bas de cette page Web.
Si vous avez des suggestions de liens supplémentaires, contactez
erd dot data at noaa dot gov .
Comme décrit ci-dessus, étant donné que les programmes Java peuvent accéder aux données disponibles sur le Web, vous pouvez écrire un programme Java qui accède aux données de n'importe quelle installation ERDDAP accessible au public.
Ou, comme ERDDAP est un programme entièrement open source, vous pouvez également configurer votre propre copie d' ERDDAP sur votre propre serveur (accessible au public ou non) pour servir vos propres données.
Vos programmes Java peuvent obtenir des données à partir de cette copie d' ERDDAP .
Voir
Configurer votre propre ERDDAP .
De nombreuses installations ERDDAP n'ont pas d'authentification activée et ne fournissent donc aucun moyen aux utilisateurs de se connecter, et ne disposent pas non plus d'ensembles de données privés.
Certaines installations ERDDAP ont l'authentification activée.
Actuellement, ERDDAP ne prend en charge que l'authentification via les comptes de messagerie gérés par Google, qui incluent les comptes de messagerie de NOAA et de nombreuses universités.
Si l'authentification est activée sur un ERDDAP, toute personne disposant d'un compte de messagerie géré par Google peut se connecter, mais elle n'aura accès qu'aux ensembles de données privés auxquels l'administrateur ERDDAP l'a explicitement autorisé à accéder.
Pour obtenir des instructions sur la connexion à ERDDAP à partir d'un navigateur ou via un script, voir
Accès aux ensembles de données privés dans ERDDAP .
Si vous souhaitez utiliser une nouvelle fonctionnalité sur un ERDDAP distant, vous pouvez savoir si la nouvelle fonctionnalité est disponible en envoyant une demande pour déterminer le numéro de version de ERDDAP, par exemple :
https://cioosatlantic.ca/erddap/fr/version
ERDDAP enverra une réponse texte avec le numéro de version ERDDAP de cet ERDDAP .
Par exemple:
ERDDAP_version=2.25_1
Si vous recevez un message d'erreur
HTTP 404 Not-Found, traitez l' ERDDAP comme une version 1.22 ou inférieure.
Vous pouvez également demander la version_string, qui peut contenir des informations supplémentaires.
Par exemple,
https://cioosatlantic.ca/erddap/fr/version_string
ERDDAP enverra une réponse texte avec la chaîne de version ERDDAP de cet ERDDAP .
Il s'agira d'un nombre à virgule flottante (le numéro de version) avec un suffixe facultatif « _ » plus du texte ASCII supplémentaire (sans espaces ni caractères de contrôle).
Par exemple:
ERDDAP_version_string=2.25_1_JohnsFork
Si vous recevez un message d'erreur HTTP 404 Not-Found, traitez l' ERDDAP comme une version 1.80 ou inférieure.