0

我正在尝试使用 R 中的raster包从 NASA OPenDAP 服务器获取 TRMM 数据。最初我在身份验证方面遇到了一些困难,但该问题已解决

NASA OPenDAP 服务器将 TRMM 3B42_daily 数据发布为单独的文件,每天一个,一个汇总的年度数据(使用 ncml)。所以,我现在的问题是,使用 Rraster包和身份验证文件.dodsrc.netrc我可以下载单个 NetCDF 文件,但我无法下载聚合数据。

所以,这有效:

library(raster)
single_date_opendap <- 'https://disc2.gesdisc.eosdis.nasa.gov:443/opendap/TRMM_L3/TRMM_3B42_Daily.7/2002/04/3B42_Daily.20020405.7.nc4'
test <- stack(single_date_opendap, varname = 'precipitation')

这不会:

library(raster)
url_opendap_no_brkt <- 'https://disc2.gesdisc.eosdis.nasa.gov:443/opendap/ncml/aggregation/TRMM_3B42_Daily.7/TRMM_3B42_daily.7_Aggregation_2001.ncml'
test <- stack(url_opendap_no_brkt, varname = 'precipitation')

并给我错误信息:

Error in .local(.Object, ...) :
An error occurred while creating a virtual connection to the DAP server:
Error while reading the URL: https://disc2.gesdisc.eosdis.nasa.gov:443/openda
p/ncml/aggregation/TRMM_3B42_Daily.7/TRMM_3B42_daily.7_Aggregation_2001.ncml.
ver.
The OPeNDAP server returned the following message:
Unauthorized: Contact the server administrator.
Error in .rasterObjectFromFile(x, band = band, objecttype = "RasterLayer",
Cannot create a RasterLayer object from this file. (file does not exist)

是否可以从发布聚合数据的 OPenDAP 服务器获取数据?

4

1 回答 1

0

在与 NASA 支持和 Antonio 的提示进行了一些交流后,发现 Rraster包不适用于聚合数据集。但是ncdf4::nc_open能够应付。奇怪,因为据我了解,包在后台raster调用。nc_open

无论如何,这有效:

library(ncdf4)
url_opendap <- 'https://disc2.gesdisc.eosdis.nasa.gov:443/opendap/ncml/aggregation/TRMM_3B42_Daily.7/TRMM_3B42_daily.7_Aggregation_2001.ncml'
trmm <- nc_open(url_opendap)

而这并没有

library(raster)
url_opendap <- 'https://disc2.gesdisc.eosdis.nasa.gov:443/opendap/ncml/aggregation/TRMM_3B42_Daily.7/TRMM_3B42_daily.7_Aggregation_2001.ncml'
trmm <- stack(url_opendap, varname = "precipitation")
于 2019-02-05T15:57:58.450 回答