【问题标题】:How to add aggregation dimensions to netcdf4 file with the Python library Xarray?如何使用 Python 库 Xarray 将聚合维度添加到 netcdf4 文件?
【发布时间】:2021-03-25 18:56:32
【问题描述】:

我正在使用 xarray 根据来自 pandas Dataframe 的数据创建一个 netcdf 文件。数据是一维的,只有时间作为维度。 然后,我使用这个文件的软件使用 libray netcdf4 中的 MFdataset() 打开和加载数据。每次我使用函数to_netcdf() 可用的任何引擎或格式创建一个netcdf 文件(例如称为test3.nc)时,我都会在使用MFDataset('test3.nc') 打开它时收到错误OSError: master dataset test3.nc does not have a aggregation dimension

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

【问题讨论】:

  • 自己找到了解决方案。见下文

标签: python pandas python-xarray netcdf4


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-02
    • 2017-08-27
    • 2016-09-07
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多