![]() |
ERDDAP
更轻松地获取科学数据 |
登录 | ![]() 提供方: NOAA NMFS SWFSC ERD |
ERDDAP具有将数字时间与字符串时间相互转换的实用程序。
有关更多详细信息,请参阅ERDDAP如何处理时间。
由于经度、纬度、海拔和时间变量是经过专门识别的,因此ERDDAP能够识别每个数据集的地理/时间特征。这在制作带有地图或时间序列的图像时以及在将数据保存为地理参考文件类型(例如 .esriAscii、.geoJson 和.kml )时非常有用。
书写计量单位的两个常见标准是:
电子邮件/URL订阅(某些ERDDAP安装中不可用)每当数据集发生变化时,电子邮件/URL 订阅系统都会立即向您发送电子邮件或联系您指定的 URL。某些ERDDAP安装中不提供电子邮件/URL 订阅。要设置电子邮件/URL 订阅,请单击其中一个信封图标如果此ERDDAP安装支持电子邮件/URL 订阅,则这些内容将显示在包含数据集列表的ERDDAP网页的最右侧(示例),以及单个数据集的数据访问表单和制作图表网页(示例)。(计算机程序员:如果您编写 Web 服务,则可以使用 URL 系统让ERDDAP在数据集发生变化时立即通知您的 Web 服务。)
RSS 订阅RSS是网站内容发生变化时通知用户的标准系统。现代网络浏览器内置有RSS客户端,或者您可以使用单独的RSS阅读器
ERDDAP为每个数据集提供单独的RSS 2.01 源,以便您可以了解有趣的数据集何时发生变化。要订阅数据集的RSS源,请单击其中一个RSS图标
它出现在ERDDAP网页最右侧,包含数据集列表(示例),或出现在数据访问表单和单个数据集的制作图表网页上(示例)。
比较RSS服务可能正是您在寻找的。这是一个很好的标准。但如果您需要尽快知道数据集何时发生变化,请使用电子邮件/URL 系统,而不是RSS 。RSS 客户端定期(每小时?)请求并读取RSS XML 文档以查找更改。因此通常情况下, RSS客户RSS不会快速检测到数据集的变化(平均 30 分钟?)。相反,只要ERDDAP检测到数据集的变化,电子邮件/URL 订阅系统就会立即采取行动。电子邮件/URL 系统更主动的方法也更高效:您可以将RSS客户端设置为每分钟检查一次更改(不要这样做!),但这只会导致向ERDDAP服务器发出大量不必要的请求,而且它仍然不会立即检测到更改。
这种架构让每个ERDDAP管理员负责确定其ERDDAP的数据来源。其他ERDDAP管理员也可以这样做。管理员之间无需协调。如果许多ERDDAP管理员链接到彼此的ERDDAP ,则形成了一个数据分发网络。数据将快速、高效、自动地从数据源( ERDDAP和其他服务器)传播到网络中任何位置的数据重新分发站点( ERDDAP )。给定的ERDDAP既可以是某些数据集的数据源,也可以是其他数据集的重新分发站点。由此产生的网络大致类似于使用Unidata的 IDD/IDM等程序设置的数据分发网络 ,但结构不太严格。
DAP ? OPeNDAP ? DODS ? ERDDAP ?有什么区别?我的理解是:
DODS (分布式海洋数据系统)创建于 20 世纪 90 年代,当时还没有 http: (!)。 DODS系统在互联网上创建并使用了 dods: 协议。当 HTTP 出现并大获成功时,他们就将 dods: 改为了 http:。
后来,他们意识到该系统的作用不仅限于海洋数据。因此,他们放弃了DODS这个名称(尽管它在某些代码中仍然存在),成立了一个名为OPeNDAP的小组织并编写了DAP (数据访问协议)规范
,它标准化了对元数据和/或数据的请求以及对元数据和/或数据的响应的格式OPeNDAP (该组织)仍然负责指导DAP (规范),并且是Hyrax (数据服务器,经常被误称为OPeNDAP )的作者。
Hyrax 、THREDDS、GRADS、 ERDDAP和其他都是实现DAP的数据服务器(软件)。它们各自实现了DAP的一个子集,但其他方面却大不相同。
ERDDAP使用代码(在“dods”目录中)(实际上由 NASA JPL 的 Jake Hamby 编写)来实现从外部DAP服务器读取数据的一些功能ERDDAP使用自己的代码来写出DAP响应。
ERDDAP能解决每个人的数据分发/数据访问问题吗?
不是ERDDAP试图找到一个最佳点,它可以很好地解决我们面临的大多数数据分发问题。ERDDAP 采用中间件方法:它可以从许多不同类型的远程数据服务器获取数据,然后将这些数据以许多不同的文件格式提供给客户端。它旨在成为一种中立的解决方案,旨在使其他数据服务器( ERDDAP 、 SOS 、OBIS、 WMS等)可互操作。是否存在一个可以完美满足所有人需求的完美数据服务器?我们认为没有。而且,即使您认为有或将会有,每个人切换到它还需要很长时间OPeNDAP如果有的话)。在此之前, ERDDAP现在即可使其他数据服务器可互操作并立即提供数据。
ERDDAP可以按原样处理许多/大多数数据集,但不是全部。这并不是说剩余的数据集(例如,使用立方球体投影的模型数据)不重要。只是ERDDAP的目标是以常见的文件格式(其中一些非常简单)返回数据,这排除了更复杂的内部数据结构。处理更复杂数据结构的研究人员小组通常已经拥有根据其社区需求定制的专门数据服务器和专门客户端软件。作为通用数据服务器, ERDDAP并不会试图与这些专门数据服务器竞争。他们根据其社区的需求进行了定制,并且表现出色。但是,这些数据集通常只有该社区的专门软件才能“理解”。
复杂数据集的解决方法 - ERDDAP有办法处理它无法直接处理的复杂数据集。就像关系数据库一样可以使用一个简单的数据结构(表)来存储复杂的数据集,而ERDDAP可以通过将源数据集拆分为几个ERDDAP数据集(每个数据集都具有类似的简单数据结构)来提供来自更复杂数据集的数据。例如,一些网格化环境模型数据集可以通过将海面变量([时间][纬度][经度])放在一个ERDDAP ERDDAP集中,将高度变量([时间][高度][纬度][经度])放在另一个ERDDAP数据集中来存储在 ERDDAP 中。我们知道这不是理想的,但有必要让ERDDAP以常见的文件格式(其中一些非常简单)返回数据。
处理复杂数据集(例如,使用立方球体投影的模型数据)的另一种方法是提供数据集的重新投影版本([时间][高度][纬度][经度]), ERDDAP可以轻松处理该版本。这些更简单的数据结构并非旨在取代原始数据结构,但它们可以成为将数据分发给更广泛受众的有效方式。
ERDDAP项目的可持续性如何?
ERDDAP非常可持续。
有些人听说ERDDAP主要由一个人开发(原先是 Bob Simons,现在是 Chris John),感到惊讶和失望。[顺便说一句,本网页上的观点是我的个人观点,不一定反映政府ERDDAP National Oceanic and Atmospheric Administration的任何立场。] 他们担心,如果我出了什么事, ERDDAP就完了。这根本不是事实。ERDDAP 对长期可持续性的定位非常出色,接近最佳水平。
是的,我是ERDDAP的主要开发者。我是一名获得全额资助的联邦雇员。我的资金不是“软”钱,所以我不接受或依赖补助金。我花了一半以上的时间来开发ERDDAP 。其余时间则用于管理数据集。这项工作对ERDDAP很有用,因为我需要处理真实数据集才能详细了解ERDDAP需要做什么。我的老板全力支持我在ERDDAP上的工作,因为它实现了我被雇用的使命:让渔业科学家(主要是,但实际上是每个人)更容易从各种来源获取科学数据。
软件的神奇之处在于复制它不需要任何成本。因此,为了完成我的工作,我编写了ERDDAP供ERD使用。我认为这是我完成工作的最佳方式。仅凭这个原因就值得花费大量资金开发ERDDAP 。(我认为可以证明ERDDAP为NOAA科学家节省的时间比我花在开发ERDDAP上的时间还要多。时间=金钱。)但附带的好处是,任何其他组织都可以免费下载、安装和使用ERDDAP来分发他们的科学数据。
至少有 14 个国家的 90 多个组织使用ERDDAP 。也许真的有免费的午餐。
ERDDAP是一个Java程序。每个版本的源代码都在GitHub上 ,这是协作软件项目中最常用的系统。致谢ERDDAP致谢现已在单独的页面上提供。
我希望其他人将来能贡献代码。
如果我发生意外,我的老板会雇一个替代者,目的是让他/她继续开发ERDDAP 。
此外,我尝试编写非常干净的代码。
我编写Java Doc 注释。
我在代码中编写注释。
我仔细选择变量名。
我遵循Java格式指南。
所有这些都是为了使代码更具可读性,以便其他想要理解和/或更改代码的程序员可以阅读,也为了我自己,因为在一两年内,我就会忘记代码是如何以及为什么这样编写的细节。
带有良好注释的干净代码使我正在进行的ERDDAP工作更加轻松,因此我有很大动力编写带有良好注释的干净代码。
但到目前为止,我的所有答案都不是很重要。只有一件事真正重要。只有一件事可以保证ERDDAP或任何软件项目的可持续性: ERDDAP是免费开源软件 (FOSS) 。具体来说, ERDDAP使用与Apache 兼容的软件许可证
,因此任何人都可以用代码做任何想做的事情。
为什么这很重要?人们可能认为软件将来会可靠地可用,因为有大公司支持它。但例如,谷歌已经停止了许多项目(
以下是列表)。我不想挑谷歌的毛病,因为我真的很喜欢谷歌,他们资助了大量优秀的开源项目。微软已经停止了一些项目。苹果也停止了一些项目。……关键是,仅仅得到大公司的支持并不能保证项目会继续下去。除非软件是(因此,永远是)自由开源软件(FOSS),否则该软件的用户就没那么幸运了。然后,只要有哪怕一个开发人员感兴趣,该项目就可以并且将继续发展。FOSS 是一种保险政策。事实上,FOSS 是唯一重要的保险政策,也是唯一的保证。FOSS 确保软件始终有前进的道路。这是一项任何人都永远不能剥夺的权利。
人们可能还会认为,拥有大型开发团队的软件比只有一个主要开发人员的软件更具可持续性。但许多开发人员通常需要大量资金。我知道一个著名的、相当大的项目,有 10 名开发人员(我不会说出他们的名字让他们难堪),由于资金不足,该项目一直处于严重停止的危险之中。他们依靠补助金。他们总是亏损。他们的赞助人总是在最后一刻救助他们,但他们真的厌倦了救助他们。因此,如果他们每年无法筹集一百万美元的补助金(或者赞助人太厌倦救助他们),他们就会停止。而且该小组无法想象少于 10 名开发人员。每个开发人员在他们的小组中都扮演着一个角色。鉴于此,在我看来,这是一个很好的迹象,即ERDDAP可以并且确实由一名主要开发人员(获得全额资助)在其他几个人的非正式协助下积极开发。事实上,如果ERDDAP需要多名开发人员,那将是一个坏兆头。ERDDAP 只有一名主要开发人员ERDDAP这意味着它不是一项需要大量持续资金的庞大任务;它是一项相对较小的任务,需要最少的努力和资金。这更具可持续性,而不是更少。
有人可能会认为,雇佣一家承包公司来编写软件是一个好主意。他们会收取一定费用,提供开发人员并承诺连续性(除非他们破产,否则这很好)。但他们也让你陷入困境:你必须按照他们的要求支付费用,否则就无法再进行开发,除非该软件是 FOSS,而你只是付钱让他们编写代码。有了 FOSS,你总是可以选择如何继续前进。因为ERDDAP是 FOSS,所以对于你或任何与ERDDAP相关的人来说,承包商始终是一个不错的选择:如果我(一个主要开发人员)发生任何事情,或者如果我没有时间进行你想要的更改,或者我退休了,而你不喜欢我的继任者的工作,你总是可以雇佣一家承包公司来做你想要的更改(或者自己做)。
如何在论文中引用数据集
让读者知道你如何获得论文中使用的数据非常重要。对于你使用的每个数据集,请查看数据集 .html 页面底部的数据集属性结构部分中的数据集元数据,例如,
https://coastwatch.pfeg.noaa.gov/erddap/griddap/jplMU RSS T41.html 。元数据有时包括数据集的必需或建议的引用格式。“许可证”元数据有时会列出对数据使用的限制。
要生成数据集的引用:
如果您将数据集视为科学文章,则可以根据作者(参见“creator_name”或"institution"元数据)、下载数据的日期、标题(参见"title"数据)和出版商(参见“publisher_name”元数据)生成引文。如果可能,请包含用于下载数据的特定 URL。如果数据集的元数据包含数字对象标识符 (DOI ) ,请将其包含在您创建的引用中。
如何在论文中引用ERDDAP
如果你想在科学论文中引用ERDDAP本身,请使用类似
Simons, RA 和 Chris John。2022 年ERDDAP ://coastwatch.pfeg.noaa.gov/erddap。加利福尼亚州蒙特雷: NOAA / NMFS / SWFSC / ERD 。
首字母缩略词“ ERDDAP ”代表什么?
“ ERDDAP ” 曾是一个缩写,但其含义已不再适用。现在,请将其视为一个名称,而不是缩写。
数据分发系统指南
鲍勃对数据分发系统设计和评估的看法可以在这里找到。
您可以设置自己的ERDDAP服务器并提供您自己的数据。
免责声明:本网页上的观点为鲍勃·西蒙斯的个人观点,并不一定反映政府或National Oceanic and Atmospheric Administration的任何立场。