Google Earth Engine 上是否有叠加或按几何连接选项?
Is there an overlay or join by geometry option on Google Earth Engine?
我有一个 Landsat 图像和一个带一个波段的图像集(3 个图像:时间上是静态的,但每个都与 Landsat 图像部分重叠),我想将这个波段添加到 Landsat 图像中。
在传统的 GIS/python df 中,我会根据几何图形进行内部连接,但我不知道如何在 GEE 上执行此操作。
图像或集合均未共享任何波段以进行简单连接。据我所知,空间连接类似于内部缓冲区,所以不是我在这里需要的。我也尝试过 Filter.contains() 进行连接,但这没有用。我尝试了 addBands() 尽管期望它不起作用并且它导致 TypeError: 'ImageCollection' object is not callable:
#landsat image and image collection
geometry = ee.FeatureCollection("WWF/HydroSHEDS/v1/Basins/hybas_5").filter(ee.Filter.eq('HYBAS_ID', 7050329490))
landsat= ee.ImageCollection('LANDSAT/LT04/C01/T1_TOA').filterBounds(geometry)
landsat= landsat.first()
imagecollection= ee.ImageCollection("projects/sat-io/open-datasets/GRWL/water_mask_v01_01").filterBounds(geometry)
#example of failure at addBands
combined = landsat.addBands(imagecollection('b1')) #b1 is the only band in the ic
如有任何帮助,我们将不胜感激。
编辑:我可以使用 for 循环单独添加每个图像,但即使使用 .unmask() 也无法将这些图像组合成一个波段,因为 ic 中缺少重叠会导致空值
不能 100% 确定这就是您想要的,但您可以简单地将 3 张图像 mosaic()
合并为一张图像,然后将这两个数据集组合成一个新的 ImageCollection。
更新:改为使用 addBands():
// landsat image and image collection
var geometry = ee.FeatureCollection("WWF/HydroSHEDS/v1/Basins/hybas_5").filter(ee.Filter.eq('HYBAS_ID', 7050329490))
var landsat= ee.ImageCollection('LANDSAT/LT04/C01/T1_TOA').filterBounds(geometry)
landsat= landsat.first()
var imagecollection= ee.ImageCollection("projects/sat-io/open-datasets/GRWL/water_mask_v01_01")
.filterBounds(geometry)
.mosaic()
.rename('WaterMask')
print(imagecollection)
// combine both datasets
var combined = landsat.addBands(imagecollection)
print(combined)
我有一个 Landsat 图像和一个带一个波段的图像集(3 个图像:时间上是静态的,但每个都与 Landsat 图像部分重叠),我想将这个波段添加到 Landsat 图像中。
在传统的 GIS/python df 中,我会根据几何图形进行内部连接,但我不知道如何在 GEE 上执行此操作。
图像或集合均未共享任何波段以进行简单连接。据我所知,空间连接类似于内部缓冲区,所以不是我在这里需要的。我也尝试过 Filter.contains() 进行连接,但这没有用。我尝试了 addBands() 尽管期望它不起作用并且它导致 TypeError: 'ImageCollection' object is not callable:
#landsat image and image collection
geometry = ee.FeatureCollection("WWF/HydroSHEDS/v1/Basins/hybas_5").filter(ee.Filter.eq('HYBAS_ID', 7050329490))
landsat= ee.ImageCollection('LANDSAT/LT04/C01/T1_TOA').filterBounds(geometry)
landsat= landsat.first()
imagecollection= ee.ImageCollection("projects/sat-io/open-datasets/GRWL/water_mask_v01_01").filterBounds(geometry)
#example of failure at addBands
combined = landsat.addBands(imagecollection('b1')) #b1 is the only band in the ic
如有任何帮助,我们将不胜感激。 编辑:我可以使用 for 循环单独添加每个图像,但即使使用 .unmask() 也无法将这些图像组合成一个波段,因为 ic 中缺少重叠会导致空值
不能 100% 确定这就是您想要的,但您可以简单地将 3 张图像 mosaic()
合并为一张图像,然后将这两个数据集组合成一个新的 ImageCollection。
更新:改为使用 addBands():
// landsat image and image collection
var geometry = ee.FeatureCollection("WWF/HydroSHEDS/v1/Basins/hybas_5").filter(ee.Filter.eq('HYBAS_ID', 7050329490))
var landsat= ee.ImageCollection('LANDSAT/LT04/C01/T1_TOA').filterBounds(geometry)
landsat= landsat.first()
var imagecollection= ee.ImageCollection("projects/sat-io/open-datasets/GRWL/water_mask_v01_01")
.filterBounds(geometry)
.mosaic()
.rename('WaterMask')
print(imagecollection)
// combine both datasets
var combined = landsat.addBands(imagecollection)
print(combined)