ERDDAP > Servicios web RESTful
ERDDAP es ambos:
- Una aplicación web
– una página web con un formulario que los humanos con navegadores pueden usar (en este caso, para obtener datos, gráficos o información sobre conjuntos de datos).
- Un servicio web RESTful
– una URL que los programas informáticos pueden utilizar (en este caso, para obtener datos, gráficos e información sobre conjuntos de datos).
Para cada página web de ERDDAP con un formulario que usted como humano con un navegador puede usar, existe un servicio web de ERDDAP correspondiente que está diseñado para que sea fácil de usar para los programas y scripts de computadora.
Por ejemplo, los humanos pueden usar esta URL para realizar una búsqueda de texto completo de conjuntos de datos interesantes:
https://coastwatch.pfeg.noaa.gov/erddap/es/search/index.html?page=1&itemsPerPage=1000&searchFor=temperature
Cambiando la extensión del archivo en la URL de .html a .json (o .csv, o .htmlTable, o .jsonlCSV1, o .xhtml, ...):
https://coastwatch.pfeg.noaa.gov/erddap/es/search/index.json?page=1&itemsPerPage=1000&searchFor=temperature
obtenemos una URL que un programa de computadora o un script Java Script puede usar para obtener la misma información en un formato más amigable para los programas de computadora como
JSON 
.
Hay muchas funciones en ERDDAP que pueden ser utilizadas por programas de computadora o scripts que usted escriba.
Puede usarlos para crear otras aplicaciones web o servicios web además de ERDDAP, ¡haciendo que ERDDAP haga la mayor parte del trabajo! Entonces, si tiene una idea para una mejor interfaz para los datos que proporciona ERDDAP o una página web que necesita una manera fácil de acceder a los datos, le recomendamos que cree su propia aplicación web, servicio web o página web y utilice ERDDAP como base.
Su sistema puede obtener datos, gráficos y otra información del ERDDAP de ERD o de otras instalaciones ERDDAP, o puede
Configure su propio servidor ERDDAP, que puede ser de acceso público o simplemente de acceso privado.
Las solicitudes de información de la interfaz de usuario de ERDDAP (por ejemplo, resultados de búsqueda) utilizan el estándar universal de la web para solicitudes:
URL 
enviado vía
HTTP GET 
.
Este es el mismo mecanismo que utiliza su navegador cuando completa un formulario en una página web y hace clic en
Submit Para usar HTTP GET, genera una URL especialmente formada (que puede incluir una consulta) y la envía con HTTP GET .
Puede formar estas URL a mano e ingresarlas en el campo de texto de dirección de su navegador (por ejemplo,
https://coastwatch.pfeg.noaa.gov/erddap/es/search/index.json?page=1&itemsPerPage=1000&searchFor=temperature)
O puede escribir un programa de computadora o un script de página web para crear una URL, enviarla y obtener la respuesta.
Se eligieron las URL a través de HTTP GET porque
- Son sencillos de utilizar.
- Funcionan bien.
- Son universalmente compatibles (en navegadores, lenguajes informáticos, herramientas del sistema operativo, etc.).
- Son la base de
la transferencia de estado representacional (REST )
y
Arquitectura Orientada a Recursos (ROA )
- Facilitan el uso de la World Wide Web como una gran aplicación distribuida, por ejemplo mediante
mashups
Aplicaciones AJAX
- Son
apátridas
al igual que ERDDAP, que simplifica el sistema.
- Una URL define completamente una solicitud determinada, por lo que puede marcarla como favorita en su navegador, escribirla en sus notas, enviársela por correo electrónico a un amigo, etc.
En las URL, algunos caracteres no están permitidos (por ejemplo, espacios) y otros caracteres tienen significados especiales (por ejemplo, '&' separa pares clave=valor en una consulta).
Cuando completa un formulario en una página web y hace clic en Enviar, su navegador
codifica automáticamente 
los caracteres especiales en la URL (por ejemplo, el espacio se convierte en %20), por ejemplo,
https://coastwatch.pfeg.noaa.gov/erddap/es/search/index.html?page=1&itemsPerPage=1000&searchFor=temperature%20wind%20speed
Pero si su programa o script de computadora genera las URL, probablemente necesite realizar el porcentaje de codificación por sí mismo.
Si es así, entonces probablemente todos los caracteres distintos de A-Za-z0-9_-!.~'()* en los valores de la consulta (las partes después de los signos '=' ) deben codificarse como %HH, donde HH es el Valor hexadecimal de 2 dígitos del carácter, por ejemplo, el espacio se convierte en %20.
Los caracteres superiores al #127 deben convertirse a bytes UTF-8, luego cada byte UTF-8 debe estar codificado en porcentaje (solicite ayuda a un programador).
Los lenguajes de programación tienen herramientas para hacer esto (por ejemplo, consulte
java.net.URLEncoder 
Java y
encodeURIComponent() 
de Java Script) y hay
sitios web que codifican/decodifican por ciento para usted
Aunque los humanos que utilizan navegadores desean recibir los resultados de la interfaz de usuario (por ejemplo, resultados de búsqueda) como documentos HTML, los programas informáticos a menudo prefieren obtener resultados en documentos simples, fáciles de analizar y menos detallados.
ERDDAP puede devolver resultados de la interfaz de usuario como una tabla de datos en estos tipos de archivos comunes y compatibles con programas de computadora:
En todos los formatos de tabla de resultados (excepto .jsonlKVP, donde los nombres de las columnas están en cada fila):
- Cada columna tiene un nombre de columna y un tipo de información.
- La primera fila de la tabla tiene los nombres de las columnas.
- Las filas siguientes tienen la información que solicitó.
El contenido de estos tipos de archivos simples también es ligeramente diferente de la respuesta .html:
es intencionalmente básico para que sea más fácil trabajar con él para un programa de computadora.
Una estructura de datos coherente para las respuestas
Todos los servicios de interfaz de usuario descritos en esta página pueden devolver una tabla de datos en cualquiera de los formatos de archivo comunes enumerados anteriormente.
Con suerte, podrá escribir solo un procedimiento para analizar una tabla de datos en uno de los formatos.
Luego puede reutilizar ese procedimiento para analizar la respuesta de cualquiera de estos servicios.
Esto debería facilitar la gestión del ERDDAP .
Detalles de
.csv y .tsv
- Si un dato en un archivo .csv tiene comillas dobles internas o comas, ERDDAP sigue estrictamente la especificación .csv:
coloca comillas dobles alrededor del dato y duplica las comillas dobles internas.
- Los caracteres especiales en un archivo .csv o .tsv están codificados como
JSON
caracteres codificados con barra invertida:
\n (nueva línea), \\ (barra invertida), \f (avance de formulario), \t (tabulación), \r (retorno de carro) o con la sintaxis \u hhhh .
jsonp
Las solicitudes de archivos .json ahora pueden incluir un archivo
jsonp
solicite agregando "& .json p= functionName" al final de la consulta.
Básicamente, esto le dice ERDDAP que agregue "nombre de función (" al principio de la respuesta y ")" al final de la respuesta.
El primer carácter de functionName debe ser una letra ISO 8859 o "_".
Cada carácter subsiguiente opcional debe ser una letra ISO 8859, "_", un dígito o ".".
Si originalmente no hubo ninguna consulta, omita el "&" en su consulta.
griddap y tabledap ofrecen diferentes tipos de archivos
Los tipos de archivos enumerados anteriormente son tipos de archivos ERDDAP puede usar para responder a tipos de solicitudes de interfaz de usuario (por ejemplo, solicitudes de búsqueda).
ERDDAP admite un conjunto diferente de tipos de archivos para solicitudes de datos científicos (por ejemplo, datos de satélites y boyas) (consulte la documentación
de griddap y
tabledap).
ERDDAP no ofrece resultados almacenados en archivos comprimidos (por ejemplo, .zip o .gzip ).
En su lugar, ERDDAP busca
codificación de aceptación 
en el encabezado de la solicitud HTTP GET enviada por el cliente.
Si se encuentra un tipo de compresión admitido (gzip, x-gzip o deflate ) en la lista de codificación aceptada, ERDDAP incluye "codificación de contenido" en el encabezado de respuesta HTTP y comprime los datos a medida que los transmite.
Depende del programa cliente buscar
content-encoding y descomprimir los datos en consecuencia.
Solicitar compresión es opcional, pero las respuestas comprimidas suelen ser entre 3 y 10 veces más rápidas, por lo que supone un gran ahorro de tiempo si descarga muchos archivos grandes.
(Tenga en cuenta que no hay ningún beneficio en solicitar archivos .png comprimidos ya que el contenido de los archivos ya está comprimido).
- De forma predeterminada, los navegadores y los clientes OPeNDAP siempre solicitan datos comprimidos y descomprimen los datos devueltos.
- Con curl, agregue --compressed a la línea de comando para indicarle curl que solicite una respuesta comprimida y la descomprima automáticamente.
- Con otro software cliente, esto lo ha configurado explícitamente.
A continuación se muestra un
ejemplo Java
.
A continuación se muestra un
ejemplo Python
(aunque debe manejar las respuestas deflate o no solicitar deflate).
ERDDAP tiene estos puntos de acceso URL para programas informáticos:
- Para obtener la lista de las principales URL de acceso a recursos, utilice
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Para obtener la lista actual de todos los conjuntos de datos, utilice
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Para obtener metadatos para un conjunto de datos específico (la lista de variables y sus atributos), use
https://coastwatch.pfeg.noaa.gov/erddap/es /info/ datasetID /index .fileType
Por ejemplo,
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Para obtener los resultados de búsquedas de texto completo para conjuntos de datos (usando "searchFor=wind%20speed" como ejemplo), use
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
(Es posible que su programa o secuencia de comandos necesite
codificar porcentualmente
el valor de la consulta).
O utilice el estándar
OpenSearch 1.1 para realizar una búsqueda de texto completo de conjuntos de datos.
- Para obtener los resultados de búsquedas avanzadas de conjuntos de datos (usando "searchFor=wind%20speed" como ejemplo), use
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
Pero experimente con
Búsqueda Avanzada en un navegador para descubrir todos los parámetros opcionales.
(Es posible que su programa o secuencia de comandos necesite
codificar porcentualmente
el valor de la consulta).
- Para obtener la lista de categoryAttributes (por ejemplo, institución, long_name, nombre_estándar), utilice
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Para obtener la lista de categorías para un atributo de categoría específico (usando "nombre_estándar" como ejemplo), use
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Para obtener la lista de conjuntos de datos en una categoría específica (usando "standard_name=time" como ejemplo), use
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Para obtener la lista actual de todos los conjuntos de datos disponibles a través de un protocolo específico,
- Para griddap:
utilizar
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Para tabledap :
usar
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Para WMS: utilizar
.csv,
.htmlTable,
.itx,
.json,
.jsonlCSV1,
.jsonlCSV,
.jsonlKVP,
.mat,
.nc,
.nccsv,
.tsv, or
.xhtml.
- Griddap y tabledap tienen muchos servicios web que puedes utilizar.
- Los formularios de acceso a datos son simplemente páginas web simples para generar URL que solicitan datos (por ejemplo, datos de satélites y boyas).
Los datos pueden estar en cualquiera de varios formatos de archivo comunes.
Su programa puede generar estas URL directamente.
Para obtener más información, consulte la
documentación de griddap y
la documentación tabledap .
- Las páginas Make A Graph son simplemente páginas web simples para generar URL que solicitan gráficos de un subconjunto de datos.
Los gráficos pueden estar en cualquiera de varios formatos de archivo comunes.
Su programa puede generar estas URL directamente.
Para obtener más información, consulte la
documentación de griddap y
la documentación tabledap .
- Para obtener la estructura de un conjunto de datos, incluidos los nombres de las variables y los tipos de datos, utilice un OPeNDAP
.dds
solicitud.
Por ejemplo,
https://coastwatch.pfeg.noaa.gov/erddap/es/griddap/jplMURSST41 .dds (datos cuadriculados) o
https://coastwatch.pfeg.noaa.gov/erddap/es/tabledap/pmelTaoDySst .dds (datos tabulares).
- Para obtener los metadatos de un conjunto de datos, utilice un OPeNDAP
.das
solicitud.
Por ejemplo,
https://coastwatch.pfeg.noaa.gov/erddap/es/griddap/jplMURSST41 .das (datos cuadriculados) o
https://coastwatch.pfeg.noaa.gov/erddap/es/tabledap/pmelTaoDySst .das (datos tabulares).
- ERDDAP tiene un conjunto de datos tabular especial llamado
allDatasets que tiene datos sobre todos los conjuntos de datos disponibles actualmente en este ERDDAP .
Hay una fila para cada conjunto de datos.
Hay columnas con diferentes tipos de información (por ejemplo, datasetID, título, resumen, institución, licencia, URL del formulario de acceso a datos, URL de Make A Graph).
Debido a que se trata de un conjunto de datos tabledap, puede utilizar una solicitud de datos tabledap para solicitar columnas y filas específicas que coincidan con las restricciones, y puede obtener la respuesta en el tipo de archivo de respuesta que prefiera, por ejemplo, .html, .xhtml, .csv., .json, .jsonlCSV1, .jsonlCSV o .jsonlKVP .
- Los otros protocolos de ERDDAP también tienen servicios web que puede utilizar.
Ver
- ERDDAP ofrece
suscripciones RSS, para que su programa informático pueda saber si un conjunto de datos ha cambiado.
- ERDDAP ofrece
suscripciones por correo electrónico/URL, que notifican a su programa informático cada vez que cambia un conjunto de datos.
- ERDDAP ofrece varios conversores como páginas web y como servicios web:
- ERDDAP tiene un sistema para realizar un seguimiento de
los conjuntos de datos desactualizados .
Consulte las Opciones en la parte inferior de esa página web.
Si tiene sugerencias de enlaces adicionales, comuníquese con
erd dot data at noaa dot gov .
Como se describió anteriormente, dado que los programas Java pueden acceder a datos disponibles en la web, puede escribir un programa Java que acceda a datos desde cualquier instalación ERDDAP de acceso público.
O, dado que ERDDAP es un programa de código abierto, también puede configurar su propia copia de ERDDAP en su propio servidor (accesible públicamente o no) para servir sus propios datos.
Sus programas Java pueden obtener datos de esa copia de ERDDAP .
Consulte
Configurar su propio ERDDAP .
Muchas instalaciones ERDDAP no tienen habilitada la autenticación y, por lo tanto, no brindan ninguna forma para que los usuarios inicien sesión, ni tienen conjuntos de datos privados.
Algunas instalaciones ERDDAP tienen habilitada la autenticación.
Actualmente, ERDDAP solo admite la autenticación a través de cuentas de correo electrónico administradas por Google, que incluyen cuentas de correo electrónico de NOAA y muchas universidades.
Si un ERDDAP tiene habilitada la autenticación, cualquier persona con una cuenta de correo electrónico administrada por Google puede iniciar sesión, pero solo tendrá acceso a los conjuntos de datos privados a los que el administrador ERDDAP les haya autorizado explícitamente a acceder.
Para obtener instrucciones sobre cómo iniciar sesión en ERDDAP desde un navegador o mediante un script, consulte
Acceso a conjuntos de datos privados en ERDDAP .
Si desea utilizar una nueva función en un ERDDAP remoto, puede averiguar si la nueva función está disponible enviando una solicitud para determinar el número de versión del ERDDAP, por ejemplo,
https://coastwatch.pfeg.noaa.gov/erddap/es/version
ERDDAP enviará una respuesta de texto con el número de versión ERDDAP de ese ERDDAP .
Por ejemplo:
ERDDAP_version=2.30.0
Si recibe un mensaje de error
HTTP 404 Not-Found, trate el ERDDAP como la versión 1.22 o inferior.
O puede solicitar la cadena_versión, que puede tener información adicional.
Por ejemplo,
https://coastwatch.pfeg.noaa.gov/erddap/es/version_string
ERDDAP enviará una respuesta de texto con la cadena de versión ERDDAP de ese ERDDAP .
Será un número de punto flotante (el número de versión) con un sufijo opcional de '_' más texto ASCII adicional (sin espacios ni caracteres de control).
Por ejemplo:
ERDDAP_version_string=2.30.0_JohnsFork
Si recibe un mensaje de error HTTP 404 Not-Found, trate el ERDDAP como la versión 1.80 o inferior.