首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从THREDDS读取netCDF数据失败

从THREDDS读取netCDF数据失败
EN

Stack Overflow用户
提问于 2020-05-20 01:13:22
回答 1查看 140关注 0票数 0

我试图从THREDDS服务器加载netcdf,但在某个时间步长后遇到无法识别的错误。

代码语言:javascript
复制
def list_dates(start, end):
    num_days = (end - start).days
    return [start + dt.timedelta(days=x) for x in range(num_days)]

start_date = dt.date(2017, 3, 1)
end_date = dt.date(2017, 3, 31)
date_list = list_dates(start_date, end_date)
window = dt.timedelta(days=5)

url = 'https://www.ncei.noaa.gov/thredds/dodsC/OisstBase/NetCDF/V2.0/AVHRR/{0:%Y%m}/avhrr-only-v2.{0:%Y%m%d}.nc'
#url2=  'https://www.ncei.noaa.gov/thredds/dodsC/Datasets/noaa.oisst.v2.highres/icec.day.mean.{0:%Y}.v2.nc'
data = []
cur_date = start_date
for cur_date in date_list:
    print(cur_date)
    date_window = list_dates(cur_date - window, cur_date + window)
    url_list = [url.format(x) for x in date_window]
    window_data=xr.open_mfdataset(url_list).sst
    data.append(window_data.mean('time'))
    print(data[-1])

dataf=xr.concat(data, dim=pd.DatetimeIndex(date_list, name='time'))
print (dataf)

在3月22日之前,此数据的加载一直很顺利,这是失败的日期。我尝试过更改月份和年份,每次脚本在第22个时间步失败。碰巧有两个错误代码,我将在下面提供。任何关于这里正在发生的事情的信息都将不胜感激。作为参考,我运行的是最新版本的python和netCDF4,以及xarray。

错误:

错误1:KeyError: [<class 'netCDF4._netCDF4.Dataset'>, ('https://www.ncei.noaa.gov/thredds/dodsC/OisstBase/NetCDF/V2.0/AVHRR/201703/avhrr-only-v2.20170322.nc',), 'r', (('clobber', True), ('diskless', False), ('format', 'NETCDF4'), ('persist', False))]

错误2:OSError: [Errno -37] NetCDF: Write to read only: b'https://www.ncei.noaa.gov/thredds/dodsC/OisstBase/NetCDF/V2.0/AVHRR/201703/avhrr-only-v2.20170322.nc'

EN

回答 1

Stack Overflow用户

发布于 2020-08-12 23:13:51

我不能完全确定潜在的问题是什么,但是在xarray netcdf4缓存和netCDF-C库之间似乎有一些不对劲的地方。如果您在for循环之前添加以下内容:

代码语言:javascript
复制
xr.set_options(file_cache_maxsize=10)

这将有助于确保缓存中的任何文件(在本例中是netCDF4.Dataset对象)在您处理完它们时得到清理,并且避免了底层问题(不确定有多长时间,但我将代码从2017-03-01运行到2017-05-31时没有出现错误)。

再说一次,不确定到底发生了什么,但可能值得打开一个github issue with xarray。这在xarray级别上可能不是问题,但它将从那里到达正确的位置。

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

https://stackoverflow.com/questions/61896920

复制
相关文章

相似问题

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