1
我想在一个THREDDS服务器上使用xarray.open_mfdataset()
在OpenDAP上托管多个NetCDF文件,但出现错误。如果我只打开一个文件(但仍然使用open_mfdataset()
),它会起作用,如果我打开两个文件,则不会。如何通过OpenDAP使用xarray打开多个NetCDF文件?
例如,这工作得很好:
import xarray as xr
chunks = {'time' : 1, 'depth' : 1}
paths = [
'http://thredds.met.no/thredds/dodsC/fou-hi/norkyst800m-1h/NorKyst-800m_ZDEPTHS_his.an.2017022000.nc',
]
d = xr.open_mfdataset(paths, chunks = chunks)
虽然这并不:
import xarray as xr
chunks = {'time' : 1, 'depth' : 1}
paths = [
'http://thredds.met.no/thredds/dodsC/fou-hi/norkyst800m-1h/NorKyst-800m_ZDEPTHS_his.an.2017022000.nc',
'http://thredds.met.no/thredds/dodsC/fou-hi/norkyst800m-1h/NorKyst-800m_ZDEPTHS_his.an.2017022100.nc',
]
d = xr.open_mfdataset(paths, chunks = chunks)
我在一家jupyter笔记本上运行这一点,我没有得到任何输出在笔记本中,它只是继续运行,而在终端上打印以下内容:
CURL Error: Failed initialization
curl error details:
CURL Error: Failed initialization
CURL Error: Failed initialization
CURL Error: Failed initialization
syntax error, unexpected WORD_WORD, expecting SCAN_ATTR or SCAN_DATASET or SCAN_ERROR
context: !�zF^@L������@L�Ы�J�@L�[email protected]�G`[email protected]�X�ڭ@L�/��[email protected]���@L��{�:@@L�Hl�[email protected]���[email protected]�f���@L�>����@L�x��[email protected]��DA�[email protected]�����@L��ڭ�[email protected]�u���@M
CURL Error: Failed initialization
curl error details:
CURL Error: Failed initialization
CURL Error: Failed initialization
syntax error, unexpected WORD_WORD, expecting $end
context: Dataset { Structure { Float64 lon[Y = 902][X = 2602]; } lon;} fou-hi/norkyst800m-1h/NorKyst-800m_ZDEPTHS_his.an.2017022100.nc;Data^:
CURL Error: Failed initialization
CURL Error: Failed initialization
CURL Error: Failed initialization
syntax error, unexpected WORD_WORD, expecting SCAN_ATTR or SCAN_DATASET or SCAN_ERROR
context: �@��&��D^@�h�N�{@��I$�@B�
而从那里开始,陷入印刷更多垃圾。
这不应该工作得很好吗?
编辑:
我没有意识到这一点之前,但事实证明,在netCDF4库还支持打开多个路径为一个数据集。我不确定这是否相关,因为我不知道xarray和netCDF4是否使用相同的后端,但在任何情况下,以下工作都很好。至少这表明问题不在服务器端。
import netCDF4 as nc
d = nc.MFDataset([
'http://thredds.met.no/thredds/dodsC/fou-hi/norkyst800m-1h/NorKyst-800m_ZDEPTHS_his.an.2017022000.nc',
'http://thredds.met.no/thredds/dodsC/fou-hi/norkyst800m-1h/NorKyst-800m_ZDEPTHS_his.an.2017022100.nc',
])
我在发布之前并没有意识到这一点,但我刚刚发现python的netCDF4库有一个名为'MFDataset()'的函数。用这种方式打开相同的两条路径就好了(我将编辑我的问题以包含此信息)。 – Tor
很难有一个对话框来调试StackOverflow上的某些东西。你能否在xarray github页面上打开一个问题呢? – shoyer
当然。谢谢。 – Tor