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