';无效索引错误';使用python xarray将netCDF文件连接为数据集时
我想使用pythonxarray“open\mfdataset”将目录中的50个netCDF文件连接起来。它适用于一小部分netCDF文件,但不适用于连接所有50个文件。在脚本“demo.py”中从“toolbox.py”调用函数时出现此错误: 文件“”,第1行,在 运行文件('data_dir/demo.py',wdir='') 文件 “anaconda3/lib/python3.6/site packages/spyder_kernels/customize/spyderrcustomize.py”, 第827行,在runfile中 execfile(文件名、命名空间) 文件 “anaconda3/lib/python3.6/site packages/spyder_kernels/customize/spyderrcustomize.py”, 第110行,在execfile中 exec(编译(f.read(),文件名,'exec'),命名空间) 文件“data_dir/demo.py”,第15行,在 数据文件=concat(数据目录、数据块、文件名) 文件“Python/toolbox.py”,第53行,在 海螺 数据_vars='minimal',parallel=False).chunk(块) 文件 “anaconda3/lib/python3.6/site packages/xarray/backends/api.py”, 第719行,在open_mfdataset中 ids=ids) 文件 “anaconda3/lib/python3.6/site packages/xarray/core/combine.py”, 第553行,自动联合收割机 数据变量=数据变量,坐标=坐标) 文件 “anaconda3/lib/python3.6/site packages/xarray/core/combine.py”, 第475行,输入联合收割机 compat=compat) 文件 “anaconda3/lib/python3.6/site packages/xarray/core/combine.py”, 第493行,沿第一个尺寸自动合并 数据(变量、坐标) 文件 “anaconda3/lib/python3.6/site packages/xarray/core/combine.py”, 第514行,在自动联合收割机1d中 合并=合并(连接,兼容=兼容) 文件 “anaconda3/lib/python3.6/site packages/xarray/core/merge.py”, 第532行,合并中 变量,坐标名称,dims=merge\u core(dict\u like\u对象,compat,join) 文件 “anaconda3/lib/python3.6/site packages/xarray/core/merge.py”, 第445行,在merge_core中 对齐=深度对齐(强制,连接=连接,复制=假,索引=索引) 文件 “anaconda3/lib/python3.6/site packages/xarray/core/alignment.py”, 第217行,深对齐 排除=排除) 文件 “anaconda3/lib/python3.6/site packages/xarray/core/alignment.py”, 第133行,对齐 索引=接合器(匹配索引) 文件 “anaconda3/lib/python3.6/site packages/pandas/core/index/base.py”, 第2223行,在或 返回自我联合(其他) 文件 “anaconda3/lib/python3.6/site packages/pandas/core/index/datetimes.py”, 第493行,联合体 结果=Index.union(此,其他) 文件 “anaconda3/lib/python3.6/site packages/pandas/core/index/base.py”, 第2332行,联合体 indexer=self.get\u索引器(其他) 文件 “anaconda3/lib/python3.6/site packages/pandas/core/index/base.py”, 第2740行,在get_索引器中 raise INVALIDIDEXERROR('重新索引仅对唯一有效' InvalidIndexError:重新索引仅对唯一值索引有效 物体 我尝试查看单个netCDF文件,并尝试选择不同的netCDF文件进行连接。我认为这可能是因为有多个索引对象是相同的,但我并不真正理解';无效索引错误';使用python xarray将netCDF文件连接为数据集时,python,database,dataframe,concatenation,python-xarray,Python,Database,Dataframe,Concatenation,Python Xarray,我想使用pythonxarray“open\mfdataset”将目录中的50个netCDF文件连接起来。它适用于一小部分netCDF文件,但不适用于连接所有50个文件。在脚本“demo.py”中从“toolbox.py”调用函数时出现此错误: 文件“”,第1行,在 运行文件('data_dir/demo.py',wdir='') 文件 “anaconda3/lib/python3.6/site packages/spyder_kernels/customize/spyderrcustomize
def concat(data_dir,chunks,file_name):
# data_dir = directory where IMOS glider .nc files exist
# chunks = output variable 'chunks' from function 'find_chunks' - this is a single value
# file_name = specify string for name of file (not including extension e.g. '.zarr')
# concatenate IMOS glider netCDF files in data_dir
data_files = xr.open_mfdataset(data_dir + '*.nc', concat_dim='TIME',data_vars='minimal',parallel=False).chunk(chunks)
print('Data concatenated..')
# I then save the concatenated dataset as a netCDF and .zarr. This only works for smaller slections of netCDF files.
return data_files
我需要一个连接的数据集,可以从函数返回并另存为netCDF和.zarr文件。亲爱的UpperEastSide,我通常使用与您相同的代码来连接Python中的netCDF。唯一的区别是“chunks”参数在“xr.open\mfdataset”中函数。此外,chunks参数应该是一个字典,具体包含每个标签的每个维度的大小。如果可能的话,尝试这种修改,让我们知道什么最有效。Philipedar UpperEastSide,我通常使用与您相同的代码在Python中连接NetCDF。唯一的区别是“chunks”参数位于“xr.open_mfdataset”函数中。此外,chunks参数应该是一个字典,其中包含每个标签的每个维度的大小。如果可能,请尝试更改,并让我们知道什么最有效。Philipe