使用xarray从netcdf提取最近的经度和时间值

我有一个带foll的netCDF文件.结构体:

<xarray.Dataset>
Dimensions:    (latitude: 94, longitude: 192, time: 366)
Coordinates:
  * longitude  (longitude) float32 -180.0 -178.125 -176.25 -174.375 -172.5 ...
  * latitude   (latitude) float32 88.5419 86.6532 84.7532 82.8508 80.9474 ...
  * time       (time) datetime64[ns] 2016-01-01 2016-01-02 2016-01-03 ...
Data variables:
    m2t      (time, latitude, longitude) float64 246.5 246.4 246.4 246.4
    pre      (time, latitude, longitude) float64 9.988e-08 9.988e-08 ...
Attributes:
    Conventions: CF-1.0

如何为特定经度和纬度(例如86.45,-156.25)和时间(例如2016-01-10)提取网格单元的值?确切的纬度/经度值可能不在坐标中,在这种情况下,我们需要最接近的纬度/经度值

我可以像这样提取特定经度的值:

_hndl_nc.sel(longitude=(_hndl_nc.longitude == -20))

但是,由于经度坐标中不存在-20,因此此方法无效.

解决方法:

尽管语法尚不正确,但您非常接近:

_hndl_nc.sel(time='2016-01-10', longitude=-170.0, latitude=-20.0, method='nearest')

也可以看看:
Read multiple coordinates with xarray

上一篇:python – 将netCDF文件导入Pandas数据帧


下一篇:Python:使用netCDF4替换netcdf文件中的值