因此,根据Sentinel 5 P图像集,我创建了3年的3个不同图像(2019年、2020年和2021年的平均值)。然后,我使用几何图形裁剪这3张图像,然后再次生成3张图像。现在,我想将这3张图像合并为一张图像,以便在从该合并图像提取数据时,我能够获得3年的数据(2019年、2020年、2021年)。我尝试过这种方法--
var simpleJoin = ee.Join.simple();
var mod1join = ee.ImageCollection(simpleJoin.apply(img1clip, img2clip, img3clip));
Map.addLayer(mod1join, band_viz);
但是在加载图层时,它给了我一个错误-
层1:层错误:联接。应用,参数“次要”:类型无效。类型应为:特征集合。实际类型:图像〈[SO2色谱柱编号密度]〉。
我试着搜索这个错误,但没有找到任何解决方案。什么将是解决方案,以合并3个图像的不同年份,保持数据的那些特定年份以及?
下面我附上我所做的和尝试的代码-
var img1 = ee.ImageCollection(imageCollection
.select('SO2_column_number_density')
.filterBounds(geometry)
.filterDate('2019-01-01', '2019-12-31'))
//remove the negative values from the band
//.map(function(image){return image.updateMask(image.gte(0))});
print('no. of img1', img1.size());
var img2 = ee.ImageCollection(imageCollection
.select('SO2_column_number_density')
.filterBounds(geometry)
.filterDate('2020-01-01', '2020-12-31'))
print('no. of img2', img2.size());
var img3 = ee.ImageCollection(imageCollection
.select('SO2_column_number_density')
.filterBounds(geometry)
.filterDate('2021-01-01', '2021-12-31'))
print('no. of img3', img3.size());
var band_viz = {
min: 0.0,
max: 0.0005,
palette: ['black', 'blue', 'purple', 'cyan', 'green', 'yellow', 'red']
};
var img1map = img1.mean();
var img2map = img2.mean();
var img3map = img3.mean();
//Map.addLayer (SP5map, band_viz);
var img1clip = img1map.clip(geometry);
var img2clip = img2map.clip(geometry);
var img3clip = img3map.clip(geometry);
//print(img1clip);
var simpleJoin = ee.Join.simple();
var mod1join = ee.ImageCollection(simpleJoin.apply(img1clip, img2clip, img3clip));
Map.addLayer(mod1join, band_viz);
仅供参考:所有3个剪切图像仅包含1个条带。
2条答案
按热度按时间eagi6jfj1#
在official documentation中,
ee.Join.apply()
的第一个和第二个参数都是FeatureCollection
,而第三个参数是Filter
,示例是here。img1
是应用.filterDate()
后的Collection
img1clip
是应用.mean()
函数后的Image
1.在应用了
.clip()
之后,img1clip
也是Image
,而不是FeatureCollection
。因此出现错误(无效类型)。
您必须检查代码并确保
ee.Join.apply()
的三个参数正确。1cklez4t2#
如果您正在处理图像,请将其添加为“波段”:
使用“inspector”,您将看到来自三个波段的信息。