【发布时间】:2018-09-12 04:38:42
【问题描述】:
我有一个时间维度的 netCDF 文件,其中包含 2 年的每小时数据。我想对其进行平均以获得每个月一天中每个小时的小时平均值。我试过这个:
import xarray as xr
ds = xr.open_mfdataset('ecmwf_usa_2015.nc')
ds.groupby(['time.month', 'time.hour']).mean('time')
但我收到此错误:
*** TypeError: `group` must be an xarray.DataArray or the name of an xarray variable or dimension
我该如何解决这个问题?如果我这样做:
ds.groupby('time.month', 'time.hour').mean('time')
我没有收到错误,但结果的时间维度为 12(每个月一个值),而我想要每个月的小时平均值,即 12 个月的每个月有 24 个值。数据在这里:https://www.dropbox.com/s/yqgg80wn8bjdksy/ecmwf_usa_2015.nc?dl=0
【问题讨论】:
-
我相信
ds是xarray.Dataset 而不是netCDF4.Dataset,对吗? -
请提供一些示例数据,并说明在没有数据的情况下会发生什么。如果要考虑丢失的数据,也需要
resample -
@SiggyF,你说得对,ds 是通过读取 netCDF 文件生成的 xarray.Dataset
-
@MaartenFabré,我将尝试获取一个示例数据集(完整的数据集大小为几个 GB)。您可以假设没有丢失数据
-
一个带有虚拟(例如随机)数据的最小示例通常效果最好。虽然专注于 Pandas,但这个问题/答案可能对此有所帮助:stackoverflow.com/questions/20109391/…