2017-02-08 315 views
2

我有一个带有foll的netCDF文件。结构:使用xarray从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年1月10日)?这可能是准确的纬度/经度值不是在这种情况下,我们希望最近的经/纬度值

我能为这样一个特定的经度获取价值坐标:

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

然而,由于-20不在经度坐标中,所以这不起作用。

回答

3

你说的很接近,虽然你没有很正确的语法尚未:

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

还看到: Read multiple coordinates with xarray

+0

哇!这只是真棒 – user308827

+0

这是超级有用的!保存必须执行经典的argmin()行才能获得最接近的像素列/行。 –