首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何下载整个netcdf-4文件?

如何下载整个netcdf-4文件?
EN

Stack Overflow用户
提问于 2019-12-19 15:27:03
回答 1查看 866关注 0票数 1

我想要做的是:--我一直在尝试从OPeNDAP (当前和风气象数据) be.html缓存一个文件,以便给出一个与使用OpenDrift库查询NETCDF4库数据集(be)相同的文件版本

OpenDrift库在他们的读取器档案中的原始代码如下所示:

代码语言:javascript
复制
if ('*' in filestr) or ('?' in filestr) or ('[' in filestr):
                self.logger.info('Opening files with MFDataset')
                if has_xarray:
                    self.Dataset = xr.open_mfdataset(filename)
                else:
                    self.Dataset = MFDataset(filename)
            else:
                self.logger.info('Opening file with Dataset')
                if has_xarray:
                    self.Dataset = xr.open_dataset(filename)
                else:
                    self.Dataset = Dataset(filename, 'r')

文件名为url,例如"be

迄今尝试过的方法:

1.过滤数据以下载dataset nccopy http://thredds.met.no/thredds/dodsC/sea/norkyst800m/1h/aggregate_be?Cs_r[0:1:34],Cs_w[0:1:35],X[0:1:2601],Y[0:1:901],angle[0:1:0][0:1:0],depth[0:1:15],forecast_reference_time,h[0:1:0][0:1:0],hc,lat[0:1:0][0:1:0],lon[0:1:0][0:1:0],projection_stere,AKs[0:1:0][0:1:0][0:1:0][0:1:0],Uwind[0:1:0][0:1:0][0:1:0],Vwind[0:1:0][0:1:0][0:1:0],salinity[0:1:0][0:1:0][0:1:0][0:1:0],temperature[0:1:0][0:1:0][0:1:0][0:1:0],time[0:1:21690],tke[0:1:0][0:1:0][0:1:0][0:1:0],u[0:1:0][0:1:0][0:1:0][0:1:0],u_eastward[0:1:0][0:1:0][0:1:0][0:1:0],ubar[0:1:0][0:1:0][0:1:0],v[0:1:0][0:1:0][0:1:0][0:1:0],v_northward[0:1:0][0:1:0][0:1:0][0:1:0],vbar[0:1:0][0:1:0][0:1:0],w[0:1:0][0:1:0][0:1:0][0:1:0],zeta[0:1:0][0:1:0][0:1:0] norkyst.nc的一个子集,该子集为我提供了一个丢失了大量数据的小文件(可以作为读取器读取,但使用ncdump显示缺少ubar等数据)

2.尝试下载整个dataset nccopy -4 http://thredds.met.no/thredds/dodsC/sea/norkyst800m/1h/aggregate_be norkystFull.nc,这将导致33 at文件停止下载。(给出HDF错误)

EN

回答 1

Stack Overflow用户

发布于 2020-05-22 23:43:15

THREDDS中的OPeNDAP将允许您在一次访问中下载最大数量的数据,这可能会阻止您使用一个命令下载整个聚合。您可以通过下载子集,然后在本地进行协同连接来解决这一问题。例如,如果安装了NCO公用事业,可以通过使用带有时域子设置选项的ncks将子集下载到本地netCDF文件中,然后使用ncrcat进行连接。

例如,下面将向本地文件subset.nc下载一个时间维索引为2到3(包括在内)的子集。同时,它还会将时间维度变成输出netCDF文件中的无限维度;这将使以后更容易使用ncrcat,因为这需要无限维度。

代码语言:javascript
复制
url=https://thredds.met.no/thredds/dodsC/sea/nordic4km/zdepths1h/aggregate_be

ncks -d time,2,3 --mk_rec_dmn time $url subset.nc

然后,您可以使用以下内容进行连接:

代码语言:javascript
复制
ncrcat subset1.nc [subset2.nc ...] whole_series.nc

如果不是所有变量都感兴趣,您可以使用例如-v temperature,salinity命令ncks命令下载指定的变量以及相关的坐标变量。

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

https://stackoverflow.com/questions/59412668

复制
相关文章

相似问题

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