如何下载网格化的SST数据?

时间:2019-03-02 07:06:46

标签: heatmap

我最近被介绍给R并尝试使用heatwaveR软件包。加载erddap数据时出现错误……这是我到目前为止使用的代码:

library(rerddap)
library(ncdf4)
info(datasetid = "ncdc_oisst_v2_avhrr_by_time_zlev_lat_lon", url = "https://www.ncei.noaa.gov/erddap/")

然后出现以下错误:

  

curl :: curl_fetch_memory(x $ url $ url,handle = x $ url $ handle)中的错误:     schannel:下一个InitializeSecurityContext失败:SEC_E_INVALID_TOKEN(0x80090308)-提供给该函数的令牌无效

在这方面需要帮助。我也是这个网站的新手,因此,如果上述问题不是按照标准进行(例如在灰色框中键入的代码,等等),我对此表示歉意。

1 个答案:

答案 0 :(得分:1)

有人在GitHub上的heatwaveR问题页面上引起了我的关注。这是我为他们提供的答案:

我不管理rerddap软件包,因此无法确切说明为什么它会给您这个错误。但是我可以说,我最近注意到,有问题的ERDDAP服务器上经常没有OISST数据。我(每天)尝试下载最新数据,但经常被拒绝,并出现与您发布的错误类似的错误。到了必须在下载脚本中插入一些逻辑门的地步,这样可以告诉我在尝试下载数据之前,当前尚未托管数据。我还应该指出,可以从此服务器下载“最终”数据,该数据距离今天大约有两周的延迟,还有“初步(初步)”数据是接近实时的,但避风港尚未完成所有的质量控制步骤。以下代码说明了这两种产品:

# First download the list of data products on the server
server_data <- rerddap::ed_datasets(which = "griddap", "https://www.ncei.noaa.gov/erddap/")$Dataset.ID

# Check if the "final" data are currently hosted
if(!"ncdc_oisst_v2_avhrr_by_time_zlev_lat_lon" %in% server_data)
  stop("Final data are not currently up on the ERDDAP server")

# Check if the "prelim" data are currently hosted
if(!"ncdc_oisst_v2_avhrr_prelim_by_time_zlev_lat_lon" %in% server_data)
  stop("Prelim data are not currently up on the ERDDAP server")

如果有可用的数据,则通过以下两行检查可用的时间/日期:

# Download final OISST meta-data
final_info <- rerddap::info(datasetid = "ncdc_oisst_v2_avhrr_by_time_zlev_lat_lon", url = "https://www.ncei.noaa.gov/erddap/")

# Download prelim OISST meta-data
prelim_info <- rerddap::info(datasetid = "ncdc_oisst_v2_avhrr_prelim_by_time_zlev_lat_lon", url = "https://www.ncei.noaa.gov/erddap/")

我现在运行了此程序,看起来数据当前可用。您的错误是从今天开始还是从一两天前开始?可用性似乎在一周内循环,但是我还没有完全了解任何模式。还需要注意的是,在数据变暗之前大约一天,它们充满了各种巨大的错误。因此,我还必须在代码中添加错误捕获功能,以在检测到温度超过一定数量的温度后停止数据聚合过程。在这种情况下,它类似于1 ^ 90,但是数字不一致,表示它不是缺少值的占位符。

要手动查看是否托管数据,可以转到此链接并滚动到底部: https://www.ncei.noaa.gov/erddap/griddap/index.html

祝一切顺利,
-罗伯特