0
說我已經在使用xarray.open_dataset(..., decode_times=False)
,看起來像這樣加載一個xarray.Dataset
對象打印時:子集xarray.Dataset相對於多個座標
<xarray.Dataset>
Dimensions: (bnds: 2, lat: 15, lon: 34, plev: 8, time: 3650)
Coordinates:
* time (time) float64 3.322e+04 3.322e+04 3.322e+04 3.322e+04 ...
* plev (plev) float64 1e+05 8.5e+04 7e+04 5e+04 2.5e+04 1e+04 5e+03 ...
* lat (lat) float64 40.46 43.25 46.04 48.84 51.63 54.42 57.21 60.0 ...
* lon (lon) float64 216.6 219.4 222.2 225.0 227.8 230.6 233.4 236.2 ...
Dimensions without coordinates: bnds
Data variables:
time_bnds (time, bnds) float64 3.322e+04 3.322e+04 3.322e+04 3.322e+04 ...
lat_bnds (lat, bnds) float64 39.07 41.86 41.86 44.65 44.65 47.44 47.44 ...
lon_bnds (lon, bnds) float64 215.2 218.0 218.0 220.8 220.8 223.6 223.6 ...
hus (time, plev, lat, lon) float64 0.006508 0.007438 0.008751 ...
什麼將是這個子集給出多個範圍爲lat
的最佳方式,lon
和time
?我試圖鏈接的一系列條件和所用xarray.Dataset.where
,但我得到一個錯誤說:
IndexError: The indexing operation you are attempting to perform is not valid on netCDF4.Variable object. Try loading your data into memory first by calling .load().
我不能將整個數據集加載到內存中,所以這將是做到這一點的典型方式?
感謝您的支持!我結束了使用'.sel()'(沒有意識到它可能由於某種原因需要切片)。我能看到的唯一問題是處理經度的圓柱座標。你會爲此提出什麼建議? '.sel()'之後'也許使用'.where()'子集化經度? – pbreach
看到這個答案的幾個想法:http://gis.stackexchange.com/questions/205871/xarray-slicing-across-the-antimeridian – shoyer
Ahhhh好吧不知道我可以用'.sel()我真的需要更好地閱讀源代碼和文檔。真是太棒了! – pbreach