You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Xarray获取三维云数据中符合阈值的最高层对应值?

用Xarray无循环提取云顶高度对应数据值

最优一步法

无需单独计算索引,直接结合where和max即可得到目标结果。先用where过滤掉低于阈值(0.6)的数值,再沿海拔维度(c)取最大值——max会自动忽略nan,且对应最高海拔层(假设c索引越大海拔越高)的有效数据:

# 直接生成目标2D数据数组
top_cloud = cloud.where(cloud > 0.6).max(dim='c')

运行结果完全符合期望:

>>> top_cloud
<xarray.DataArray (a: 2, b: 2)>
array([[0.6108219 , 0.84218767],
       [       nan, 0.82793776]])
Dimensions without coordinates: a, b

基于已有索引的方法

如果已经得到符合条件的最高层索引index,可通过以下步骤提取对应值:

  1. 将索引转为整数类型(用-1占位nan的位置)
  2. 用isel按索引提取数据,再用where将无效位置(原索引为nan)恢复为nan
# 处理索引类型并保留无效标记
index_int = index.where(index.notnull(), -1).astype(int)
# 提取对应数据并恢复nan
top_cloud = cloud.isel(c=index_int).where(index.notnull())

该方法适配已提前计算好索引的场景,同样能得到目标结果。


内容的提问来源于stack exchange,提问作者Guimeteo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 02:10:50