-1
hndl_nc['name_variable'][:, :, :, var]

我正在使用 xarray 打开一个 netCDF 文件,并希望访问上面给出的层。netCDF 文件的形状是(25 * 360 * 720 * 5).

有没有办法重写hndl_nc['name_variable'][:, :, :, var],所以我不必指定:, :, :, var?如果可能的话,我想让变量访问独立于 netCDF 的结构。

基于这个答案,我还希望解决方案能够在以下情况下工作hndl_nc['name_variable'][:, :, :, var]

4

2 回答 2

2

鉴于您使用的是xarrayxarray),我想您正在执行以下操作:

import xarray as xr
ds = xr.open_dataset(path_file)

根据文档(http://xarray.pydata.org/en/stable/indexing.html),您有几个选项:

  1. 按名称查找维度,按整数查找索引
  2. 按名称查找维度,按标签查找索引

按名称查找维度,按整数查找索引

要使用整数索引,您可以

ds['new_var'] = ds.isel(var=0)

或者

ds['new_var'] = ds[dict(var=0)]

我假设其中一个维度被称为var. 为了简单起见,我只选择了 中的第一个元素var,因此请适应您的需要。
您可以为 选择一个值或选择一个切片var。请在我上面链接的文档中查看更多信息。

按名称查找维度,按标签查找索引
要使用标签查看其中一个维度,可以执行以下操作:

ds['new_var'] = ds.sel(var='IA')

或者

ds['new_var'] = ds.loc[dict(var='IA')]

我不确定它是否适合您的情况,或者这就是您正在寻找的,因为我不太了解您的情况。

于 2017-01-23T01:59:25.357 回答
1

省略号...应该有效:

hndl_nc['name_variable'][..., var]
于 2017-01-23T00:02:03.187 回答