使用 xarray 访问 netCDF 变量值
Accessing netCDF variable value using xarray
hndl_nc['name_variable'][:, :, :, var]
我正在使用 xarray 打开一个 netCDF 文件并想要访问上面给出的图层。 netCDF文件的形状是(25 * 360 * 720 * 5)
.
有没有办法重写 hndl_nc['name_variable'][:, :, :, var]
,这样我就不必指定 :, :, :, var
?如果可能的话,我想让变量访问独立于 netCDF 的结构。
基于,我也希望解决方案在hndl_nc['name_variable'][:, :, :, var]
的情况下工作
省略号 ...
应该有效:
hndl_nc['name_variable'][..., var]
鉴于您正在使用 xarray (xarray),我想您正在做如下事情:
import xarray as xr
ds = xr.open_dataset(path_file)
根据文档 (http://xarray.pydata.org/en/stable/indexing.html),您有几个选项:
- 按名称查找维度,按整数查找索引
- 按名称查找维度,按标签查找索引
按名称查找维度,按整数查找索引
要使用整数进行索引,您可以
ds['new_var'] = ds.isel(var=0)
或
ds['new_var'] = ds[dict(var=0)]
我假设其中一个维度称为 var
。为了简单起见,我只选择了var
中的第一个元素,所以请根据您的需要进行调整。
您可以 select 一个值或 select var
的一个切片。请在我上面链接的文档中查看更多信息。
按名称查找维度,按标签查找索引
要使用标签查看其中一个维度,可以这样做:
ds['new_var'] = ds.sel(var='IA')
或
ds['new_var'] = ds.loc[dict(var='IA')]
我不确定它是否适合你的情况,或者这就是你要找的,因为我不太了解你的情况。
hndl_nc['name_variable'][:, :, :, var]
我正在使用 xarray 打开一个 netCDF 文件并想要访问上面给出的图层。 netCDF文件的形状是(25 * 360 * 720 * 5)
.
有没有办法重写 hndl_nc['name_variable'][:, :, :, var]
,这样我就不必指定 :, :, :, var
?如果可能的话,我想让变量访问独立于 netCDF 的结构。
基于hndl_nc['name_variable'][:, :, :, var]
省略号 ...
应该有效:
hndl_nc['name_variable'][..., var]
鉴于您正在使用 xarray (xarray),我想您正在做如下事情:
import xarray as xr
ds = xr.open_dataset(path_file)
根据文档 (http://xarray.pydata.org/en/stable/indexing.html),您有几个选项:
- 按名称查找维度,按整数查找索引
- 按名称查找维度,按标签查找索引
按名称查找维度,按整数查找索引
要使用整数进行索引,您可以
ds['new_var'] = ds.isel(var=0)
或
ds['new_var'] = ds[dict(var=0)]
我假设其中一个维度称为 var
。为了简单起见,我只选择了var
中的第一个元素,所以请根据您的需要进行调整。
您可以 select 一个值或 select var
的一个切片。请在我上面链接的文档中查看更多信息。
按名称查找维度,按标签查找索引
要使用标签查看其中一个维度,可以这样做:
ds['new_var'] = ds.sel(var='IA')
或
ds['new_var'] = ds.loc[dict(var='IA')]
我不确定它是否适合你的情况,或者这就是你要找的,因为我不太了解你的情况。