首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从需要使用R进行身份验证的OpenDap服务器获取数据

从需要使用R进行身份验证的OpenDap服务器获取数据
EN

Stack Overflow用户
提问于 2018-08-30 13:52:27
回答 2查看 845关注 0票数 1

我试图使用R和OPeNDAP包从ncdf4服务器获取数据。然而,nasa eosdis服务器需要用户名/密码。如何使用R传递这些信息?

以下是我要做的事:

代码语言:javascript
复制
require(ncdf4)
f1 <- nc_open('https://disc2.gesdisc.eosdis.nasa.gov/opendap/TRMM_L3/TRMM_3B42.7/2018/020/3B42.20180120.15.7.HDF')

以及错误消息:

Rsx_nc4_get_vara_double: NetCDF中的错误:授权失败语法错误,意外的WORD_WORD,期望SCAN_ATTR或SCAN_DATASET或SCAN_ERROR上下文: HTTP^ Basic:访问被拒绝。Var: nlat Ndims: 1 开始:0计数:ncvar_get_inner中的400个错误(d$dimvarid$group_id,d$dimvarid,default_missval_ncdf4(),:C函数R_nc4_get_vara_double返回错误

我试过url https://username:password@disc2..。但这也不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-31 19:43:02

丹尼尔,

您正在访问的服务使用第三方重定向对用户进行身份验证。因此,在URL中提供凭据的简单方法不起作用。

您需要创建2个文件。

  1. 具有以下内容的.dodsrc文件( netcdf-c库的RC文件) HTTP.COOKIEFILE=.cookies HTTP.NETRC=.netrc
  2. 带有凭据的.netrc文件,位于.dodsrc中引用的位置: 机器urs.earthdata.nasa.gov 登录YOURUSERNAMEHERE 密码YOURPASWORDHERE

您可以在auth.html上找到更多详细信息

问候

安东尼奥

票数 1
EN

Stack Overflow用户

发布于 2020-08-17 11:52:16

不幸的是,即使在定义了凭据及其位置之后

代码语言:javascript
复制
ncdf4::nc_open("https://gpm1.gesdisc.eosdis.nasa.gov/opendap/GPM_L3/GPM_3IMERGDE.06/2020/08/3B-DAY-E.MS.MRG.3IMERG.20200814-S000000-E235959.V06.nc4")

仍在返回

Rsx_nc4_get_vara_double中的错误: NetCDF:授权失败

在从终端使用ncdump时也会发生相同的情况:

代码语言:javascript
复制
$ ncdump https://gpm1.gesdisc.eosdis.nasa.gov/opendap/GPM_L3/GPM_3IMERGDE.06/2020/08/3B-DAY-E.MS.MRG.3IMERG.20200814-S000000-E235959.V06.nc4

返回

语法错误,意外的WORD_WORD,期望SCAN_ATTR或SCAN_DATASET或SCAN_ERROR上下文: HTTP^ Basic:访问被拒绝。授权失败位置:文件/build/netcdf-KQb2aQ/netcdf-4.6.0/ncdump/vardata.c;第473行

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52098781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档