ERDDAP > Services Web RESTful
ERDDAP c'est à la fois :
- Une application Web – une page Web avec un formulaire que les humains avec des navigateurs peuvent utiliser (dans ce cas, pour obtenir des données, des graphiques ou des informations sur les 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 les ensembles de données).
Pour chaque page Web ERDDAP avec un formulaire que vous, en tant qu'humain avec un navigateur, pouvez utiliser, il y a un
le 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://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.ca/erddap/fr/search/index.html?page=1&itemsPerPage=1000&searchFor=temperature
En changeant l'extension de fichier dans l'URL de .html en .json (ou .csv, ou .htmlTable, ou .jsonlCSV1, ou .xhtml, ...) :
https://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.ca/erddap/fr/search/index.json?page=1&itemsPerPage=1000&searchFor=temperature
nous obtenons une URL qu'un programme informatique ou un script JavaScript peut utiliser pour obtenir les mêmes informations dans un format plus convivial pour les programmes informatiques, comme
JSON .
Il existe de nombreuses fonctionnalités dans ERDDAP qui peuvent être utilisées par les programmes informatiques ou les scripts que vous écrivez.
Vous pouvez les utiliser pour créer d'autres applications Web ou services Web en plus d' ERDDAP, ce qui permet à ERDDAP de faire l'essentiel du travail ! Donc, si vous avez une idée pour une meilleure interface avec les données servies par ERDDAP ou une page Web qui a besoin d'un moyen facile d'accéder aux données, nous vous encourageons à créer votre propre application Web, service Web ou page Web et à utiliser ERDDAP comme fondation.
Votre système peut obtenir des données, des graphiques et d'autres informations de l' ERDDAP d' ERD ou d'autres installations ERDDAP, ou vous pouvez
configurez votre propre serveur ERDDAP, qui peut être accessible publiquement ou simplement accessible de manière privée.
Les demandes d'informations d'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 .
C'est le 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 former ces URL à la main et les saisir dans le champ de texte d'adresse de votre navigateur (par exemple,
https://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.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 du système d'exploitation, etc.).
- Ils constituent la base du
transfert d'état représentationnel (REST ) et
architecture orientée ressources (ROA )
- Ils facilitent l'utilisation du World Wide Web comme une grande application distribuée, par exemple via
des mashups
Applications AJAX
- Ils sont
sans état tout comme ERDDAP, qui simplifie le système.
- Une URL définit complètement une demande donnée, vous pouvez donc la marquer dans votre navigateur, l'écrire dans vos notes, l'envoyer par courrier électronique à 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 spéciale (par exemple, '&' sépare les paires clé=valeur dans une requête).
Lorsque vous remplissez un formulaire sur une page Web et que vous cliquez sur Soumettre, votre navigateur
encode automatiquement en pourcentage les caractères spéciaux dans l'URL (par exemple, l'espace devient %20), par exemple,
https://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.ca/erddap/fr/search/index.html?page=1&itemsPerPage=1000&searchFor=temperature%20wind%20speed
Mais si votre programme ou script informatique génère les URL, il doit probablement effectuer lui-même le codage en pourcentage.
Si c'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 tant que %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 ont des outils pour le faire (par exemple, voir
java.net.URLEncoder de Java et
encodeURIComponent() de JavaScript ) 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 détaillés.
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 chaque format 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'informations.
- La première ligne du tableau contient les noms de 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 simplifié afin qu'il soit plus facile pour un programme informatique de travailler avec.
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.
Heureusement, vous pouvez é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 le traitement de ERDDAP .
Détails
.csv et .tsv
- Si une donnée dans un fichier .csv a des guillemets ou des virgules internes, ERDDAP suit strictement la spécification .csv :
il met des guillemets autour de la donnée et double les guillemets internes.
- Les caractères spéciaux dans un fichier .csv ou .tsv sont encodés comme
JSON Caractères codés par 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 demande 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 facultatif suivant doit être une lettre ISO 8859, "_", un chiffre ou ".".
S'il n'y avait pas de requête à l'origine, laissez le "&" dans votre requête.
griddap et tabledap offrent 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 demandes d'interface utilisateur (par exemple, les demandes de recherche).
ERDDAP prend en charge un ensemble différent de types de fichiers pour les demandes de données scientifiques (par exemple, des données de satellites 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 requête HTTP GET envoyé par le client.
Si un type de compression pris en charge (gzip, x-gzip ou deflate ) est trouvé dans la liste d'encodages acceptés, ERDDAP inclut « content‑encoding » dans l'en-tête de réponse HTTP et compresse les données au fur et à mesure qu'il les transmet.
Il appartient 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 dire à curl de demander une réponse compressée et la décompresser automatiquement.
- Avec d'autres logiciels clients, vous l'avez explicitement configuré.
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://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.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 pour les 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 peut avoir besoin d'
encoder en pourcentage la valeur dans la requête.)
Ou utilisez la norme
OpenSearch 1.1 pour effectuer une recherche en texte intégral des ensembles de données.
- Pour obtenir les résultats des 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 peut avoir besoin d'
encoder en pourcentage la valeur dans la requête.)
- Pour obtenir la liste des attributs de categoryAttributes (par exemple, institution, long_name, standard_name), 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 jeux 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 ont de nombreux services Web que vous pouvez utiliser.
- Les formulaires d'accès aux données ne sont que de simples pages Web pour générer des URL qui demandent 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 pour 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 OPeNDAP standard
.dds demande.
Par exemple,
https://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.ca/erddap/fr/griddap/jplMURSST41 .dds (données maillées) ou
https://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.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://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.ca/erddap/fr/griddap/jplMURSST41 .das (données maillées) ou
https://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.ca/erddap/fr/tabledap/pmelTaoDySst .das (données tabulaires).
- ERDDAP possède 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, title, summary, institution, license, Data Access Form URL, Make A Graph URL).
Comme il s'agit d'un ensemble de données tabledap, vous pouvez utiliser une demande 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éponse 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 jeu de données a changé.
- ERDDAP propose plusieurs convertisseurs sous forme de pages web et de web services :
(Le système "convert" a été désactivé sur cet ERDDAP.)
- ERDDAP dispose d'un système de suivi des
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 à partir de n'importe quelle installation ERDDAP accessible au public.
Ou, puisque 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 pour les utilisateurs de se connecter, ni 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 la NOAA et de nombreuses universités.
Si l'authentification d'un ERDDAP est activée, 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 a explicitement autorisé l'accès.
Pour obtenir des instructions sur la connexion à ERDDAP à partir d'un navigateur ou via un script, consultez
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 requête pour connaître le numéro de version de l' ERDDAP, par exemple,
https://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.ca/erddap/fr/version
ERDDAP enverra une réponse textuelle avec le numéro de version ERDDAP de cet ERDDAP .
Par exemple:
ERDDAP_version=2.23
Si vous obtenez un message d'erreur
HTTP 404 Not-Found, traitez l' ERDDAP comme la version 1.22 ou inférieure.
Ou, vous pouvez demander la version_string, qui peut contenir des informations supplémentaires.
Par exemple,
https://cnodc-cndoc.azure.cloud-nuage.dfo-mpo.gc.ca/erddap/fr/version_string
ERDDAP enverra une réponse textuelle avec la chaîne de version ERDDAP de cet ERDDAP .
Ce sera un nombre à virgule flottante (le numéro de version) avec un suffixe facultatif de '_' plus du texte ASCII supplémentaire (pas d'espaces ni de caractères de contrôle).
Par exemple:
ERDDAP_version_string=2.23_JohnsFork
Si vous obtenez un message d'erreur HTTP 404 Not-Found, traitez l' ERDDAP comme la version 1.80 ou inférieure.