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

Xarray裁剪Sentinel-2影像遇KeyError,含NaT值如何解决?

移除Xarray数据集Time维度的NaT值并修复切片错误

问题根源

你的KeyError本质是Time维度存在**NaT(Not a Time)**无效值,即使排序、去重后,NaT仍会干扰基于标签的.loc切片逻辑,导致无法解析索引。

两种有效移除NaT的方法

方法1:使用dropna直接删除无效时间条目

直接沿Time维度过滤掉包含NaT的记录:

da = da.dropna(dim='time', how='any')
  • 参数说明:dim='time'指定检查Time维度,how='any'表示只要该维度坐标为NaT,就删除对应的整个时间切片。

方法2:布尔索引精准筛选有效时间

通过生成布尔掩码筛选非NaT的时间条目:

# 生成非NaT的布尔掩码,再筛选数据
valid_times = da.time.notnull()
da = da.sel(time=valid_times)

验证与后续操作

处理完成后,可通过以下代码确认NaT已移除:

print(da.time.values)

确认Time维度无无效值后,再执行原有的AOI切片代码即可正常运行:

aoi = da.loc[..., y_utm + m_buffer:y_utm - m_buffer, x_utm - m_buffer:x_utm + m_buffer]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 10:42:02