使用xarray访问netCDF变量值

时间:2017-01-22 23:41:35

标签: python netcdf python-xarray

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

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

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

基于this answer,我还希望soln能够在hndl_nc['name_variable'][:, :, :, var]

的情况下工作

2 个答案:

答案 0 :(得分:2)

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

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

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

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

    要使用整数进行索引,您可以

    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')]
    

    我不确定它是否适合您的情况,或者这是您正在寻找的内容,因为我无法理解您的情况。

答案 1 :(得分:1)

省略号...应该有效:

hndl_nc['name_variable'][..., var]