[英]Slicing longitude coordinate in xarray which crosses the 0
我有經度坐標從 0.5 到 359.5 的 xarray 數據集,如下所示:
Dimensions: (bnds: 2, lat: 40, lev: 35, lon: 31, member_id: 1)
Coordinates:
lev_bnds (lev, bnds) float64 ...
lon_bnds (lon, bnds) float64 ...
lat_bnds (lat, bnds) float64 ...
* lon (lon) float64 0.5 1.5 2.5 3.5 4.5 ... 359.5
* lev (lev) float64 2.5 10.0 20.0 32.5 ... 5e+03 5.5e+03 6e+03 6.5e+03
* lat (lat) float64 -89.5 -88.5 -87.5 -86.5 ... -53.5 -52.5 -51.5 -50.5
* member_id (member_id) object 'r1i1p1f1'
Dimensions without coordinates: bnds
Data variables:
so (member_id, lev, lat, lon) float32 nan nan nan ...
我感興趣的區域在60W到30E之間,大概對應經度300.5到30.5。 有沒有辦法在這些坐標之間對數據集進行切片? 我嘗試使用isel(slice(-60,30)
但在 slice 函數中不可能有負數到正數。我知道我可以將數據分成兩個小部分(300.5-359.5 和 0.5-30.5),但我想知道是否有更好的方法。
謝謝!
正如您正確指出的那樣,目前isel
無法在一次傳遞中從維度的開始和結束處進行選擇。
如果結合roll
http://xarray.pydata.org/en/stable/generated/xarray.DataArray.roll.html ,您可以將您想要的點移動到一個連續的區域中,然后選擇您需要的點。
注意:我無法從您的示例中確定,但看起來您可能想要sel
而不是isel
,因為您可能是按索引值而不是位置進行選擇
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.