我想要做的是:--我一直在尝试从OPeNDAP (当前和风气象数据) be.html缓存一个文件,以便给出一个与使用OpenDrift库查询NETCDF4库数据集(be)相同的文件版本
OpenDrift库在他们的读取器档案中的原始代码如下所示:
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错误)
发布于 2020-05-22 23:43:15
THREDDS中的OPeNDAP将允许您在一次访问中下载最大数量的数据,这可能会阻止您使用一个命令下载整个聚合。您可以通过下载子集,然后在本地进行协同连接来解决这一问题。例如,如果安装了NCO公用事业,可以通过使用带有时域子设置选项的ncks将子集下载到本地netCDF文件中,然后使用ncrcat进行连接。
例如,下面将向本地文件subset.nc下载一个时间维索引为2到3(包括在内)的子集。同时,它还会将时间维度变成输出netCDF文件中的无限维度;这将使以后更容易使用ncrcat,因为这需要无限维度。
url=https://thredds.met.no/thredds/dodsC/sea/nordic4km/zdepths1h/aggregate_be
ncks -d time,2,3 --mk_rec_dmn time $url subset.nc然后,您可以使用以下内容进行连接:
ncrcat subset1.nc [subset2.nc ...] whole_series.nc如果不是所有变量都感兴趣,您可以使用例如-v temperature,salinity命令ncks命令下载指定的变量以及相关的坐标变量。
https://stackoverflow.com/questions/59412668
复制相似问题