如何使用Python库Xarray向netcdf4文件添加聚合维度?

时间:2019-02-17 16:57:57

标签: python pandas python-xarray netcdf4

我正在基于来自xarray的熊猫数据框的数据创建一个netcdf文件。数据是一维的,仅以时间为维。  然后,我使用此文件的软件使用libray netcdf4中的MFdataset()打开和加载数据。每当我使用功能test3.nc可用的任何引擎或格式创建netcdf文件(例如称为to_netcdf())时,当我用OSError: master dataset test3.nc does not have a aggregation dimension打开它时,我都会得到错误MFDataset('test3.nc') < / p>

import pandas as pd
import xarray as xr
from netcdf4 import MFDataset

# create a dataframe
df = pd.Dataframe()
# [logic to add data with one column as time]

# convert dataframe to Dataset
fo = xr.Dataset.from_dataframe(df.set_index('time'))

# add variable attributes here

# convert xarray Dataset to a netcdf file:
fo.to_netcdf('test3.nc', mode='w',format='NETCDF4_CLASSIC')

MFDataset('test3.nc')

然后,尽管时间是一个维度,但控制台中出现以下错误:

MFDataset('test3.nc')
Traceback (most recent call last):
  File "/home/arcticsnow/anaconda3/envs/dataAna/lib/python3.7/site-packages/IPython/core/interactiveshell.py", line 3267, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-26-94430718f30a>", line 1, in <module>
    MFDataset('test3.nc')
  File "netCDF4/_netCDF4.pyx", line 5917, in netCDF4._netCDF4.MFDataset.__init__
OSError: master dataset test3.nc does not have a aggregation dimension

1 个答案:

答案 0 :(得分:0)

答案是在to_netcdf()函数中使用以下参数:

fo.to_netcdf('test.nc',  unlimited_dims={'time':True}, format='NETCDF4_CLASSIC')