使用 xarray 创建的 DataArray 中的 select 个部分 (python)

select parts out of a DataArray created with xarray (python)

    ds = xr.open_dataset(f)
    hlos = ds.rayleigh_hloswind_windresult_rayleigh_wind_velocity.data
    lats = ds.rayleigh_geolocation_windresult_geolocation_latitude_cog.data 

>>> hlos
array([  419., -1013.,  -584., ..., -6791., 32767., 32767.], dtype=float32)
>>> lats
array([84.36244 , 84.359972, 84.371422, ..., 83.43806 , 83.672662,
       83.513285])

f 是一个 netcdf 文件,其中变量 hlos 是风速,而 lats 是纬度。我创建了一个 DataArray:

da_lat = xr.DataArray(hlos, dims=['lat'], coords = {'lat': lats})
>>> da_lat
<xarray.DataArray (lat: 19703)>
array([  419., -1013.,  -584., ..., -6791., 32767., 32767.],
      dtype=float32)
Coordinates:
  * lat      (lat) float64 84.36 84.36 84.37 ... 83.67 83.51

现在我想 select 喜欢:da_lat.sel(lat = 84.36).values,但这给了我 KeyError:84.36 有谁知道这种情况下的问题是什么?

KeyError 是纬度坐标中纬度 84.36 没有 精确 匹配的结果。完全匹配看起来像是 84.36244(或者可能是 84.359972)。 Xarray 提供了一种解决此问题的好方法,因为您可以在 sel 方法中指定一个 method 来控制它如何处理不精确匹配。

在这种情况下,您可能需要 method='nearest':

da_lat.sel(lat=84.36, method='nearest')

有关详细信息,请参阅 documentation for Dataset.sel