如何在不下载全量数据时获取openEO DataCube的时间戳或全局时间极值?
解决openEO DataCube时间戳提取问题
1. 获取所有实际时间戳列表
直接调用客户端内置的list_timestamps()方法,无需下载数据,就能从后端查询到DataCube实际包含的时间戳:
timestamps = cube.list_timestamps() print(timestamps)
返回结果是datetime对象或ISO格式字符串的列表,对应DataCube中真实存在的时间点。
2. 获取最早/最晚日期
基于上面的时间戳列表,直接取极值即可:
if timestamps: earliest = min(timestamps) latest = max(timestamps) print(f"最早日期: {earliest}") print(f"最晚日期: {latest}")
之前方法无效的原因
min_time()/max_time():这两个方法是对每个空间像素计算数值的时间维度极值(比如植被指数的最小/最大值),不是提取时间本身的早晚,所以会出现和时间顺序不符的结果。cube.metadata.extent["temporal"]:返回的是数据集的初始声明时间范围,不是经过过滤、裁剪等操作后DataCube实际包含的时间戳,因此无法反映真实数据的时间边界。
内容的提问来源于stack exchange,提问作者NinaBel
相关产品推荐
相关产品推荐

