![]() |
ERDDAP
Acceso más fácil a los datos científicos |
acceso |
Traído a usted por NOAA NMFS SWFSC ERD |
video .
(5 minutos)
,
XML
,
SOAP+XML
,
OPeNDAP
,
WCS
,
WFS
,
SOS
, o un formulario HTML) .
video
. (5 minutos)
(¡en 5 minutos!).
Este vídeo muestra:
Protocolo de acceso a datos (DAP )
es una de
las recomendaciones técnicas de acceso a datos de NOAA
y un
estándar del Sistema de información y datos de ciencias de la Tierra (ESDIS) de la NASA
.
(OPeNDAP es genial!) ERDDAP traduce su solicitud del formato OPeNDAP, WMS o SOS al formato de solicitud de la fuente de datos y convierte la respuesta a una de las estructuras de datos internas de ERDDAP .
Luego, ERDDAP reformatea los datos en el formato de archivo común de su elección (por ejemplo, como una tabla .html, ESRI .asc, Google Earth .kml, .mat, .nc, ODV .txt, .csv, .tsv, .json )., .xhtml, .png, .pdf) y le envía el archivo.
Consulte la lista de
tipos de archivos griddap y la lista de
tipos de archivos tabledap .
Otros protocolos para solicitar los datos (por ejemplo,
WCS
) puede agregarse en el futuro.
ERDDAP está estructurado para estas incorporaciones y no parece haber impedimentos.
,
XML
,
SOAP+XML
,
OPeNDAP
,
WCS
,
WFS
,
SOS
, o un formulario HTML), en lugar de solo el formato original o solo el formato de transferencia OPeNDAP (que no tiene una manifestación de archivo estándar).
Estos archivos se crean sobre la marcha.
Dado que hay pocas estructuras de datos internas, es fácil agregar controladores de tipos de archivos adicionales.
Consulte la lista completa de
tipos de archivos de cuadrícula y
tipos de archivos de tablas .
o segundos de época, que sonUDUNITS
-compatible) y, cuando está formateado como una cadena, está formateado de acuerdo con el
formato"extended"ISO 8601:2004
estándar (yyyy-MM-ddTHH:mm:ssZ, por ejemplo, "1985-01-02T00:00:00Z"). (Puede convertir horas numéricas a/desde cadenas ISO con
el conversor de hora de ERDDAP ).
Además, para evitar confusión entre zona horaria y horario de verano, los valores de hora siempre se convierten a la zona horaria Zulu (UTC, GMT).
ERDDAP tiene una utilidad para
convertir una hora numérica a/desde una hora de cadena .
Para obtener más detalles, consulte
Cómo maneja ERDDAP el tiempo .
Debido a que las variables de longitud, latitud, altitud y tiempo se reconocen específicamente, ERDDAP conoce las características geo/temporales de cada conjunto de datos. Esto es útil al crear imágenes con mapas o series temporales y al guardar datos en tipos de archivos georreferenciados (por ejemplo, .esriAscii, .geoJson y .kml ).
Dos estándares comunes para escribir unidades de medida son:
, que se utiliza en
COARDS
,
CF
y
NetCDF
archivos de información.
Por ejemplo, UDUNITS tiene muchas opciones para grados Celsius, incluidos degree_C y degC .
- el Código Unificado de Unidades de Medida.
OGC
servicios como
SOS
,
WCS
y
WMS
A menudo nos referimos a UCUM como UOM (Unidades de medida).
Por ejemplo, UCUM tiene solo una opción que distingue entre mayúsculas y minúsculas para grados Celsius:
"Cel" .
(por ejemplo,
metadatos CF
) describiendo los datos.
ERDDAP permite (y alienta) al administrador a describir los metadatos que se agregarán a los conjuntos de datos y sus variables sobre la marcha.
Consulte la
sección addAttributes de las
instrucciones para administradores .
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 content-encoding 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.
Las respuestas comprimidas suelen ser entre 3 y 10 veces más rápidas, aunque no resulta beneficioso solicitar archivos .png comprimidos, ya que el contenido de los archivos ya está comprimido.
Los navegadores y los clientes OPeNDAP hacen esto de forma predeterminada.
Solicitan datos comprimidos y descomprimen los datos devueltos automáticamente.
Otros clientes (por ejemplo, programas Java ) tienen que hacer esto explícitamente.
Con curl, agregue --compressed a la línea de comando para indicarle curl que solicite una respuesta comprimida y la descomprima automáticamente.
programas).
servicios de suscripción, para que pueda recibir notificaciones cada vez que cambie un conjunto de datos.
Suscripciones
por correo electrónico/URL (no disponible en algunas instalaciones ERDDAP ) Cada vez que cambia un conjunto de datos, el sistema de suscripción por correo electrónico/URL le enviará inmediatamente un correo electrónico o se pondrá en contacto con una URL que usted especifique.
Las suscripciones por correo electrónico/URL no están disponibles en algunas instalaciones ERDDAP .
Para configurar una suscripción por correo electrónico/URL, haga clic en uno de los íconos del sobre
que aparecen en el extremo derecho de las páginas web ERDDAP con listas de conjuntos de datos (ejemplo) y en las páginas web Formularios de acceso a datos y Crear un gráfico para conjuntos de datos individuales (ejemplo) si esta instalación ERDDAP admite suscripciones por correo electrónico/URL.
(Programadores informáticos:
si escribe servicios web, puede utilizar el sistema de URL para que ERDDAP notifique a su servicio web inmediatamente cada vez que cambie un conjunto de datos).
RSS
Suscripciones RSS es un sistema estándar para notificar a los usuarios cuando el contenido de un sitio web ha cambiado.
Los navegadores web modernos tienen un cliente RSS integrado o puede utilizar un
lector RSS independiente
.
ERDDAP ofrece una fuente RSS 2.01 separada para cada conjunto de datos para que pueda saber cuándo han cambiado conjuntos de datos interesantes.
Para suscribirse a la fuente RSS de un conjunto de datos, haga clic en uno de los íconos RSS
que aparecen en el extremo derecho de las páginas web ERDDAP con listas de conjuntos de datos (ejemplo) o en las páginas web Formularios de acceso a datos y Crear un gráfico para conjuntos de datos individuales (ejemplo).
Comparativa El servicio RSS puede ser justo lo que estás buscando.
Es un buen estándar.
Pero si necesita saber lo antes posible cuándo cambia un conjunto de datos, utilice el sistema de correo electrónico/URL, no RSS .
Los clientes RSS periódicamente (¿cada hora?) solicitan y leen el documento RSS XML para buscar cambios.
Por lo general, un cliente RSS no detectará un cambio en un conjunto de datos rápidamente (¿un promedio de 30 minutos?).
Por el contrario, el sistema de suscripción por correo electrónico/URL actúa inmediatamente cada vez que ERDDAP detecta un cambio en un conjunto de datos.
El enfoque más proactivo del sistema de correo electrónico/URL también es mucho más eficiente:
es posible que puedas configurar tu cliente RSS para que compruebe los cambios cada minuto (¡no lo hagas!), pero eso sólo generaría muchas solicitudes innecesarias.
al servidor ERDDAP y todavía no detecta cambios inmediatamente.
(páginas web con formularios para humanos que usan navegadores)
(con
servicios para programas informáticos).
- y
ROA
Enlaces de estilo para poner sus servicios a disposición de programas informáticos.
), y enviándolo al cliente.
Para muchas fuentes de datos, esto significa que el primer fragmento de datos (por ejemplo, del primer sensor) llega al cliente en segundos en lugar de minutos (por ejemplo, después de que se hayan recuperado los datos del último sensor), lo que le asegura al cliente que Los datos están llegando.
Desde el punto de vista de la memoria, esto permite manejar simultáneamente numerosas solicitudes grandes (cada una mayor que la memoria disponible).
:
Pero ERDDAP también tiene la capacidad de obtener activamente todos los datos disponibles de una fuente de datos remota y
almacenar una copia local de los datos .
Tecnología Push
:
Al utilizar
los servicios de suscripción de ERDDAP, se puede notificar a otros servidores de datos tan pronto como haya nuevos datos disponibles para que puedan solicitarlos (extrayendo los datos).
EDDGrid FromErddap y
EDDTableFromErddap de ERDDAP utilizan los servicios de suscripción y
el sistema de indicadores de ERDDAP para que se les notifique inmediatamente cuando haya nuevos datos disponibles.
Puede combinarlos con gran efecto:
si envuelve una copia EDDGrid alrededor de un conjunto de datos EDDGrid FromErddap (o envuelve una EDDTableCopy alrededor de un conjunto de datos EDDTableFromErddap), ERDDAP creará y mantendrá automáticamente una copia local del conjunto de datos de otro ERDDAP .
Debido a que los servicios de suscripción funcionan tan pronto como hay nuevos datos disponibles, la tecnología push difunde los datos muy rápidamente (en cuestión de segundos).
Esta arquitectura pone a cada administrador ERDDAP a cargo de determinar de dónde provienen los datos de su ERDDAP .
Otros administradores ERDDAP pueden hacer lo mismo.
No hay necesidad de coordinación entre administradores.
Si muchos administradores ERDDAP ERDDAP vinculan entre sí, se forma una red de distribución de datos.
Los datos se difundirán de forma rápida, eficiente y automática desde las fuentes de datos (ERDDAP y otros servidores) a los sitios de redistribución de datos (ERDDAP ) en cualquier lugar de la red.
Un ERDDAP determinado puede ser tanto una fuente de datos para algunos conjuntos de datos como un sitio de redistribución para otros conjuntos de datos.
La red resultante es más o menos similar a las redes de distribución de datos configuradas con programas como
IDD/IDM de Unidata
, pero con una estructura menos rígida.
DAP ? ¿ OPeNDAP ? DODS ? ERDDAP ? ¿Cual es la diferencia? Mi entendimiento (el de Bob) es:
DODS (Sistema de Datos Oceanográficos Distribuidos) se creó en la década de 1990, antes de que existiera http: (!). El sistema DODS creó y utilizó el protocolo DODS: en Internet. Cuando apareció HTTP y tuvo tanto éxito, cambiaron de dods: a http:.
En algún momento, se dieron cuenta de que el sistema era útil para algo más que datos oceanográficos.
Entonces abandonaron ese nombre DODS (aunque sigue vivo en algún código) y formaron una pequeña organización llamada
OPeNDAP
y escribió la
especificación DAP (Protocolo de acceso a datos)
, que estandariza el formato de las solicitudes de metadatos y/o datos, y las respuestas con los metadatos y/o datos.
OPeNDAP (la organización) todavía administra DAP (la especificación) y es el autor de Hyrax (el servidor de datos al que a menudo se hace referencia erróneamente como OPeNDAP ).
Hyrax, THREDDS, GRADS, ERDDAP y otros son servidores de datos (software) que implementan DAP . Cada uno de ellos implementa un subconjunto de DAP pero hace otras cosas de manera muy diferente.
ERDDAP utiliza código (en el directorio "dods") (en realidad escrito por Jake Hamby en NASA JPL) para algunas funciones de lectura de datos de servidores DAP externos.
ERDDAP utiliza su propio código para escribir respuestas DAP .
¿Es ERDDAP una solución a los problemas de distribución y acceso a datos de todos?
No.
ERDDAP intenta encontrar un punto óptimo que sea una solución realmente buena para la mayoría de los problemas de distribución de datos que enfrentamos.
ERDDAP adopta un enfoque de middleware:
puede obtener datos de muchos tipos diferentes de servidores de datos remotos y puede proporcionarlos a los clientes en muchos formatos de archivos diferentes.
Está diseñado para ser una solución agnóstica que busca hacer interoperables otros servidores de datos (OPeNDAP, SOS, OBIS, WMS, ...).
¿Existe un servidor de datos perfecto que satisfaga perfectamente las necesidades de todos?
No lo creemos.
E incluso si cree que lo hay o lo habrá, pasará mucho tiempo antes de que todos cambien a él, si es que alguna vez lo hacen.
Hasta entonces, ERDDAP está disponible ahora mismo para hacer que otros servidores de datos sean interoperables y para servir datos ahora mismo.
ERDDAP puede manejar muchos o la mayoría de los conjuntos de datos tal como están, pero no todos. No es que los conjuntos de datos restantes (por ejemplo, los datos del modelo que utilizan una proyección de esfera cúbica) no sean importantes. Es sólo que el objetivo de ERDDAP de devolver datos en formatos de archivo comunes (algunos de los cuales son bastante simples) excluye una estructura de datos interna más compleja. Los grupos de investigadores que trabajan con estructuras de datos más complejas a menudo ya cuentan con servidores de datos especializados y software de cliente especializado que se adaptan a las necesidades de su comunidad. ERDDAP, como servidor de datos de propósito general, no intenta competir con estos servidores de datos especializados. Están personalizados según las necesidades de su comunidad y hacen un gran trabajo. Sin embargo, esos conjuntos de datos a menudo sólo son "comprendidos" por el software especializado de esa comunidad.
Una solución alternativa para conjuntos de datos complejos:
ERDDAP tiene una manera de manejar conjuntos de datos complejos que no puede manejar directamente.
Como una
base de datos relacional
puede almacenar un conjunto de datos complejo utilizando solo una estructura de datos simple (una tabla), ERDDAP puede servir los datos de conjuntos de datos más complejos dividiendo el conjunto de datos de origen en unos pocos conjuntos de datos ERDDAP, cada uno con estructuras de datos simples y similares.
Por ejemplo, algunos conjuntos de datos de modelos ambientales cuadriculados se pueden almacenar en ERDDAP colocando las variables de la superficie del mar ([tiempo][latitud][longitud]) en un conjunto de datos ERDDAP y colocando las variables con altitud ([tiempo][altitud][ latitud][longitud]) en otro conjunto de datos ERDDAP .
Sabemos que esto no es ideal, pero es necesario permitir que ERDDAP devuelva datos en formatos de archivo comunes (algunos de los cuales son bastante simples).
Otro enfoque para tratar con conjuntos de datos complejos (por ejemplo, para datos de modelos que utilizan una proyección de esfera cúbica) es ofrecer también una versión reproyectada del conjunto de datos ([tiempo][altitud][latitud][longitud]) con la que ERDDAP pueda trabajar fácilmente.
Estas estructuras de datos más simples no están destinadas a reemplazar las estructuras de datos originales, pero pueden ser una forma útil de distribuir los datos a una audiencia más amplia.
¿Qué tan sostenible es el proyecto ERDDAP ?
ERDDAP es muy sostenible.
Algunas personas se sorprenden y decepcionan al saber que ERDDAP es desarrollado principalmente por una sola persona (era Bob Simons, ahora Chris John).
[Por cierto, las opiniones en esta página web son mis opiniones personales y no reflejan necesariamente ninguna posición del Gobierno o de la National Oceanic and Atmospheric Administration .] Temen que si me pasa algo, será el fin de ERDDAP .
Eso simplemente no es cierto.
El posicionamiento de ERDDAP para la sostenibilidad a largo plazo es excelente y cercano a lo mejor que podría ser.
Sí, soy el desarrollador principal de ERDDAP . Soy un empleado federal totalmente financiado. Mi financiación no es dinero "blando", por lo que no recibo ni dependo de subvenciones. Dedico más de la mitad de mi tiempo a desarrollar ERDDAP . El resto de mi tiempo lo dedico a gestionar conjuntos de datos. Ese trabajo es útil para ERDDAP porque necesito trabajar con conjuntos de datos reales para saber en detalle qué debe hacer ERDDAP . Mis jefes apoyan plenamente mi trabajo en ERDDAP porque hace aquello para lo que me contrataron: facilitar que los científicos pesqueros (principalmente, pero en realidad todos) obtengan datos científicos de diversas fuentes.
Lo milagroso del software es que duplicarlo no cuesta nada. Entonces, para hacer mi trabajo, escribo ERDDAP para usarlo en ERD . Creo que es la mejor manera posible de hacer mi trabajo. Esa sola razón justifica el gasto de desarrollar ERDDAP . (Creo que se podría demostrar que ERDDAP ha ahorrado más tiempo a los científicos NOAA que el que yo he dedicado a desarrollar ERDDAP . Tiempo = Dinero). Pero el beneficio adicional es que cualquier otra organización puede descargar, instalar y usar ERDDAP de forma gratuita para distribuir sus Datos científicos.
Más de 90 organizaciones en al menos 14 países utilizan ERDDAP . Quizás exista algo llamado un almuerzo gratis.
ERDDAP es un programa Java .
El código fuente de cada versión está en
GitHub.
, el sistema más utilizado para proyectos de software colaborativo.
Créditos Los créditos ERDDAP ahora están disponibles en una
página separada .
Espero que otros contribuyan con código en el futuro.
Si me pasa algo, mis jefes contratarán un reemplazo con el objetivo específico de que continúe con el desarrollo de ERDDAP .
Además, intento escribir código muy limpio.
Escribo comentarios Java Doc.
Escribo comentarios en el código.
Elegí los nombres de las variables con cuidado.
Sigo las pautas de formato Java .
Todo esto es un esfuerzo por hacer el código más legible, para otros programadores que quieran entenderlo y/o cambiarlo, y para mí, porque, en uno o dos años, habré olvidado los detalles de cómo y por qué se creó el código.
fue escrito como estaba.
Un código limpio con buenos comentarios facilita mi trabajo continuo en ERDDAP, por lo que tengo un gran incentivo para escribir código limpio con buenos comentarios.
Pero todas mis respuestas hasta ahora no son muy importantes. Sólo una cosa es realmente importante.
Sólo una cosa garantiza la sostenibilidad de ERDDAP o de cualquier proyecto de software:
que ERDDAP sea
Software Libre y de Código Abierto (FOSS)
.
Específicamente, ERDDAP utiliza
licencias de software compatibles con Apache.
, para que cualquiera pueda hacer lo que quiera con el código.
¿Por qué es eso importante?
Se podría pensar que el software estará disponible de forma fiable en el futuro porque lo respalda una gran empresa.
Pero Google, por ejemplo, ha interrumpido numerosos proyectos (aquí hay una lista
).
No quiero elegir a Google porque realmente me gusta y ellos financian una gran cantidad de excelentes proyectos de código abierto.
Microsoft ha descontinuado proyectos.
Apple ha descontinuado proyectos.
...
La cuestión es que el simple hecho de contar con el respaldo de una gran empresa no garantiza que el proyecto continúe.
Los usuarios de ese software no tienen suerte, a menos que el software sea (y por lo tanto siempre sea) software gratuito y de código abierto (FOSS).
Luego, siempre que haya interés por parte de un solo desarrollador, el proyecto puede y seguirá evolucionando.
FOSS es una póliza de seguro.
De hecho, FOSS es la única póliza de seguro, la única garantía que importa.
FOSS garantiza que siempre haya un camino a seguir para el software.
Ese es un derecho que nadie podrá quitarnos jamás.
También se podría pensar que el software que cuenta con un gran equipo de desarrolladores será más sostenible que el software con un desarrollador principal. Pero muchos desarrolladores suelen necesitar mucha financiación. Conozco un proyecto famoso, razonablemente grande, con 10 desarrolladores (no los avergonzaré nombrándolos) que está en constante peligro de detener el proyecto porque no tienen suficiente financiación. Dependen de subvenciones. Siempre tienen déficit. Su patrón siempre los ha rescatado en el último momento, pero se está cansando mucho de rescatarlos. Entonces, si no pueden recaudar un millón de dólares al año en subvenciones (o el patrocinador se cansa demasiado de rescatarlos), dejarán de hacerlo. Y el grupo no concibe tener menos de 10 desarrolladores. Cada desarrollador tiene un papel que desempeñar en su grupo. A la luz de esto, me parece que es una gran señal de que ERDDAP puede ser, y es, desarrollado activamente por un solo desarrollador principal (que está totalmente financiado) con la asistencia no oficial de algunos otros. De hecho, sería una mala señal si ERDDAP requiriera varios desarrolladores. El hecho de que ERDDAP tenga un solo desarrollador principal significa que no es una tarea enorme que requiera una financiación masiva y continua; es una tarea relativamente pequeña que requiere mínimo esfuerzo y financiación. Eso es más sostenible, no menos.
Se podría pensar que contratar una empresa contratista para escribir software es una buena idea. Por una tarifa, proporcionarán desarrolladores y prometerán continuidad (lo cual es bueno a menos o hasta que cierren el negocio). Pero también te tienen en un aprieto: debes pagarles lo que te piden o no habrá más desarrollo, a menos que el software sea FOSS y sólo les pagues por trabajar en el código. Con FOSS, siempre tienes opciones sobre cómo seguir adelante. Debido a que ERDDAP es FOSS, los contratistas siempre son una buena opción para usted o cualquier persona con respecto a ERDDAP : si algo me sucede a mí (el único desarrollador principal), o si no tengo tiempo para hacer algún cambio que usted desee, o yo te jubilas y no te gusta el trabajo de mi sustituto, siempre puedes contratar una empresa contratista para que haga los cambios que quieras (o hacerlos tú mismo).
En resumen, ERDDAP tiene las dos características de sostenibilidad que más importan:
Cómo citar un conjunto de datos en un artículo
Es importante que los lectores sepan cómo obtuvo los datos que utilizó en su artículo.
Para cada conjunto de datos que utilizó, consulte los metadatos del conjunto de datos en la sección Estructura de atributos del conjunto de datos en la parte inferior de la página .html del conjunto de datos, por ejemplo,
https://coastwatch.pfeg.noaa.gov/erddap/griddap/jplMU RSS T41.html .
Los metadatos a veces incluyen un formato de cita requerido o sugerido para el conjunto de datos.
Los metadatos de la "licencia" a veces enumeran restricciones sobre el uso de los datos.
Para generar una cita para un conjunto de datos:
Si piensa en el conjunto de datos como un artículo científico, puede generar una cita basada en el autor (consulte los metadatos "nombre_creador" o "institution" ), la fecha en que descargó los datos, el título (consulte los metadatos "title" ) y el editor (consulte los metadatos "nombre_editor").
Si es posible, incluya las URL específicas utilizadas para descargar los datos.
Si los metadatos del conjunto de datos incluyen un
Identificador de objeto digital (DOI )
, inclúyalo en la cita que cree.
Cómo citar ERDDAP en un artículo
Si desea citar el propio ERDDAP en un artículo científico, utilice algo como
Simons, RA y Chris John.
2022.
ERDDAP .
https://coastwatch.pfeg.noaa.gov/erddap.
Monterey, CA:
NOAA / NMFS / SWFSC / ERD .
¿Qué significan las siglas "ERDDAP"?
"ERDDAP" solía ser un acrónimo, pero superó esa descripción original.
Ahora, piense en ello como un nombre, no como un acrónimo.
Directrices para sistemas de distribución de datos
Las opiniones de Bob sobre el diseño y evaluación de sistemas de distribución de datos se pueden encontrar
aquí .
Puede configurar su propio servidor ERDDAP y servir sus propios datos.
y haciendo clic en "Solicitar membresía".
Una vez que sea miembro, puede publicar su pregunta allí o buscar para ver si la pregunta ya ha sido formulada y respondida.
DESCARGO DE RESPONSABILIDAD: Las opiniones contenidas en esta página web son opiniones personales de Bob Simons y no reflejan necesariamente ninguna posición del Gobierno o de la National Oceanic and Atmospheric Administration .