如何修改GEE代码筛选获取相差1天内的近重合影像集?
筛选Google Earth Engine中时间差±1天内的影像集
可以直接修改原有代码中的过滤器逻辑,替换成时间差范围匹配的方式,无需额外处理日期字段(直接用影像自带的system:time_start时间戳即可,精度更高),具体修改如下:
- 移除原有的
datefunc映射逻辑:不需要将时间转成字符串格式的日期,直接使用原始的毫秒级时间戳进行差值计算 - 替换时间过滤器:用
ee.Filter.maxDifference替代ee.Filter.equals,指定最大时间差为1天对应的毫秒数(86400000毫秒)
修改后的完整代码:
col1 = ee.ImageCollection('LANDSAT/LE07/C02/T1_L2') \ .filter(ee.Filter.calendarRange(1998, 2013,'year')) \ .filterBounds(pts) col2 = ee.ImageCollection('LANDSAT/LT05/C02/T1_L2') \ .filter(ee.Filter.calendarRange(1998, 2012,'year')) \ .filterBounds(pts) # 替换为时间差过滤器:匹配时间差在±1天内的影像对 filterTimeNear = ee.Filter.maxDifference( millis=86400000, # 1天对应的毫秒数 leftField='system:time_start', rightField='system:time_start' ) simpleJoin = ee.Join.simple() # 执行连接,得到时间差1天内的影像集合 col_new = ee.ImageCollection(simpleJoin.apply(col1, col2, filterTimeNear))
代码说明
ee.Filter.maxDifference会计算左右两个字段(两个影像集的system:time_start时间戳)的差值绝对值,只要小于等于指定的millis值(86400000),就会被判定为匹配- 保留了原有的集合筛选条件(年份、边界范围),仅修改了时间匹配逻辑
- 最终的
col_new会包含所有满足:来自col1和col2、空间范围覆盖pts、年份符合要求、时间戳差值≤1天的影像对
内容的提问来源于stack exchange,提问作者Feesh
相关产品推荐
相关产品推荐

