如何下载网格化 sst 数据?

How do I download gridded sst data?

我最近被介绍给 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/")

我收到以下错误:

Error in curl::curl_fetch_memory(x$url$url, handle = x$url$handle) : schannel: next InitializeSecurityContext failed: SEC_E_INVALID_TOKEN (0x80090308) - The token supplied to the function is invalid

在这方面需要一些帮助。我也是这个网站的新手所以如果上述问题不符合标准(代码在灰色框中输入等),我深表歉意

有人通过 GitHub 上的 heatwaveR 问题页面将此 post 引起了我的注意。这是我为他们提供的答案:

我不管理 rerddap 包,所以不能确切地说出为什么它可能会给你这个错误。但我可以说我最近注意到 OISST 数据在有问题的 ERDDAP 服务器上通常不可用。我(尝试)每天下载新数据,但经常被拒绝,并出现类似于您 posted 的错误。它已经到了我不得不在我的下载脚本中插入一些逻辑门的地步,所以它告诉我在尝试下载数据之前当前没有托管数据。我还应该指出,可以从该服务器下载 "final" 数据,从今天开始大约有两周的延迟,以及 "preliminary (prelim)" 数据,这些数据几乎是实时的但尚未完成所有 QC 步骤。这两个产品在以下代码中占:

# 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")

如果数据可用,我会用这两行检查 times/dates 是否可用:

# 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,但数字不一致意味着它不是缺失值占位符。

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

祝一切顺利,
-罗伯特