【发布时间】:2022-01-06 16:33:59
【问题描述】:
我想获取一个时间维度为 1 的 xarray 数据集,并简单地复制数据以将时间维度从 1 增加到 N。最有效的方法是什么?我尝试了几种方法,例如 expand_dims 和 stack,但这些方法似乎都没有达到我想要的效果。
最终我希望能够做到 moc10_H11 - moc_ctrl_clim 结果将具有与 moc10_H11 (35) 相同的尺寸。现在,当我这样做时,输出的时间维度只有 1。
为了清楚起见, moc_ctrl_clim :
Dimensions:
time: 1, lat_aux_grid: 395, moc_z: 61
Coordinates: time (time) object 0001-01-01 00:00:00
lat_aux_grid (lat_aux_grid) float32 -79.49 -78.95 -78.42 ... 89.47 90.0
moc_z (moc_z) float32 0.0 1e+03 ... 5.25e+05 5.5e+05
Data variables:
MOC (time, moc_z, lat_aux_grid) float64
dask.array<chunksize=(1, 61, 395), meta=np.ndarray>
而 moc10_H11 有:
Dimensions:
time: 35, lat_aux_grid: 395, moc_z: 61
Coordinates: time (time) object 0001-01-01 00:00:00
lat_aux_grid (lat_aux_grid) float32 -79.49 -78.95 -78.42 ... 89.47 90.0
moc_z (moc_z) float32 0.0 1e+03 ... 5.25e+05 5.5e+05
Data variables:
MOC (time, moc_z, lat_aux_grid) float64
dask.array<chunksize=(1, 61, 395), meta=np.ndarray>
【问题讨论】:
-
您希望新的时间暗淡以什么为索引?例如
pd.date_range(...)?range(10)?你希望 time 值是相同的,还是只是数据? -
我实际上是在尝试从另一个有超过 1 个时间条目的字段中减去一个变量的平均字段(有 1 个时间条目)。它有:``` xarray.Dataset 维度:时间:35,lat_aux_grid:395,moc_z:61 坐标:时间(时间)对象 0001-01-01 00:00:00 ... 1701-01-... lat_aux_grid (lat_aux_grid) float32 -79.49 -78.95 -78.42 ... 89.47 90.0 moc_z (moc_z) float32 0.0 1e+03 ... 5.25e+05 5.5e+05 ``` 我认为复制平均场以匹配相同数量的时间维度是最好的方法,但也许那不是真的......
-
另外,我希望数据相同,而不是时间。
-
我根据您如何描述 cmets 中的潜在问题来回答。您能否将此上下文添加到您的问题中,以明确您希望复制数据的原因?
-
原始帖子已被编辑以阐明我最终想要什么。
标签: python-xarray