使用 xarray.quantile 时有没有办法保留坐标?
我正在获取带有纬度、经度和时间坐标的数据集的(第 90 个百分位数)分位数。 我想要数据值处于这个分位数的时间。
我运行命令 Data.quantile([.90],dim='time') 删除“时间”坐标并将其替换为“分位数” 有没有办法保留坐标信息并执行分位数运算?
有一个参数“keep_attrs”,但我还没有找到任何关于保留坐标的内容。 我想要像 xarray.DataArray.argmax 这样的东西
您可以使用
.where()
根据.quantile()
进行过滤:
给定一个 xarray DataArray
da
:
>>> da
<xarray.DataArray (time: 100)>
array([-1.11006507e+00, -4.41380179e-01, 1.10087254e+00, 2.18218427e-01,
...-5.51287030e-01])
Coordinates:
* time (time) datetime64[ns] 2000-01-01 2000-01-02 ... 2000-04-09
>>> da.where(da > da.quantile(0.9, "time"), drop=True)
<xarray.DataArray (time: 10)>
array([1.84009741, 2.25750906, 1.62780955, 1.55448247, 2.11139034,
2.17723193, 3.11637597, 1.26926648, 1.49876131, 1.55716718])
Coordinates:
* time (time) datetime64[ns] 2000-01-12 2000-01-17 ... 2000-04-03
quantile float64 0.9