使用openDap访问数据

2024-06-10 00:58:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用python通过openDap访问网站上的数据。此操作所需的库是pydap和open_url。现在的主要问题是,当我尝试运行脚本以获取特定深度值的数据时,我会出现以下错误:

Error {
    code = 5;
    message = "Range last index less than first index";

我试图获取信息的网站是以https://tds.hycom.org/thredds/dodsC/datasets/GLBv0.08/expt_93.0/data/forecasts/hycom_glbv_930_2019101512_t024_uv3z.nc.html为基础的

下面是我的代码片段:

for h in ['1', '4']:
    h=convert_depth(depth)
    depthstr=str(depth)
    hstr=str(h)

    h2=h
    h1=h-1

    dataset = open_url('http://tds.hycom.org/thredds/dodsC/datasets/GLBv0.08/expt_93.0/data/forecasts/hycom_glbv_930_'+sys.argv[1]+'12_t'+sys.argv[2]+'_uv3z.nc?time[0:1:0],depth['+hstr+':1:'+hstr+'],lat[0:1:3000],lon[0:1:4499],water_u[0:1:0]['+hstr+':1:'+hstr+'][0:1:3000][0:1:4499],water_v[0:1:0]['+hstr+':1:'+hstr+'][0:1:3000][0:1:4499]')
    dataset2 = open_url('http://tds.hycom.org/thredds/dodsC/datasets/GLBv0.08/expt_93.0/data/forecasts/hycom_glbv_930_'+sys.argv[1]+'12_t'+sys.argv[2]+'_ts3z.nc?time[0:1:0],depth['+hstr+':1:'+hstr+'],lat[0:1:3000],lon[0:1:4499],water_temp[0:1:0]['+hstr+':1:'+hstr+'][0:1:3000][0:1:4499]')

    u = dataset['water_u']
    v = dataset['water_v']
    tmp = dataset2['water_temp']

    uu=u.water_u[0,h1:h2]/float(1000)
    vv=v.water_v[0,h1:h2]/float(1000)
    tt=tmp.water_temp[0,h1:h2]/float(1000)+20

我如何调整这段代码,使我不再得到这个奇怪的错误信息,并可以获得特定深度1和4的所有纬度和长线的数据?我使用的是Python2.7和Pydap==3.2.2


Tags: 数据orgurlsysh2openh1thredds