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

Posted

技术标签:

【中文标题】使用xarray从netcdf中提取最近的经纬度和时间值【英文标题】:Extracting nearest lat-lon and time value from netcdf using xarray 【发布时间】:2017-06-26 19:27:18 【问题描述】:

我有一个带有 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,因此这不起作用。

【问题讨论】:

【参考方案1】:

虽然你还没有完全正确的语法,但你已经很接近了:

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

另见: Read multiple coordinates with xarray

【讨论】:

以上是关于使用xarray从netcdf中提取最近的经纬度和时间值的主要内容,如果未能解决你的问题,请参考以下文章

通过python从netCDF中提取数据

如何使用 R 中的纬度/经度边界从 netCDF 文件中获取子集

经纬度子集的 netcdf4 提取

将 70 个 netCDF 文件与 xarray 合并

使用xarray加入/合并多个NetCDF文件

从 R 中的 netCDF 提取点的时间序列(lon,lat)