【发布时间】:2020-09-30 10:41:10
【问题描述】:
我有给定年份的一月、二月、三月、四月、十月、十一月和十二月的数据数组 (361x361)。
到目前为止,我一直将它们存储在一年中每个月的单独 netcdfs 中(例如 03.nc、10.nc)
我想将所有月份合并为一个 netcdf,以便我可以执行以下操作:
march_data = data.sel(month='03')
或者data.sel(month=3))
到目前为止,我只能将每月数据堆叠在一个 361x361x7 数组中,并且它的索引没有帮助,因此要获取 3 月份的数据,您需要执行 data[:,:,2] 并获取 10 月份的数据 [: ,:,4]。显然 2 和 4 并不直观地对应于 3 月和 10 月。这部分是因为 python 从零开始索引,部分是因为我错过了夏季月份。我可以将 nan 字段放入缺少的月份,但这并不能解决 index-0 问题。
到目前为止我的尝试:
data = xarray.Dataset( data_vars={'ice_type':(['x','y','time'],year_array),},
coords={'lon':(['x','y'],lon_target),
'lat':(['x','y'],lat_target),
'month_number':(['time'],month_int)})
这里 year_array 是一个 361x361x7 的 numpy 数组,month_int 是将year_array 的第三个索引映射到月份编号的列表:[1,2,3,4,10,11,12]。
当我尝试使用 oct = data.sel(month_number=10) 获取 Oct 数据时,它会引发错误。
顺便说一句,我知道here 可能有解决方案,但老实说,我不明白它是如何工作的。我的困惑主要是基于他们如何同时使用“时间”作为字典键和时间列表。
【问题讨论】:
标签: python netcdf python-xarray netcdf4