前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Google Earth Engine(GEE)——当你无法进行两个图像相减的时候发生错误lst2020.subtract is not a function

Google Earth Engine(GEE)——当你无法进行两个图像相减的时候发生错误lst2020.subtract is not a function

作者头像
此星光明
发布2024-02-02 14:13:42
1210
发布2024-02-02 14:13:42
举报

我在减去两个图像时遇到问题。任何人都可以更正我的代码吗? 我想从一幅图像中减去另一幅图像,然后打印减去的图像。但我收到这个错误: lst2020.subtract 不是函数

解析:

这里主要的问题是影像集合而不是影像,所以我们无法进行直接相减,我们这里需要注意的一个问题是要么单景影像,或者我们可以用镶嵌后的应先该选择相同的而波段进行相减分析或者其它四则运算。否则还会出现其它错误。

原始代码:

注意哦这里面的研究区需要自己替换下,所以你要加入研究区进去,也就是把下面代码中的US换成自己的研究区去尝试代码,避免其它的错误。

代码语言:javascript
复制
var modis = ee.ImageCollection("MODIS/061/MOD11A2")
/// Temperature Changes
/// Year 2011-2020
// Add Study area map outline to the Map as a layer.
Map.centerObject(US,4);
// Map.addLayer(US);

var lst2001 = modis
.filterDate('2001-01-01','2001-12-31')
.filterBounds(US)
// .select(['LST_Night_1km','LST_Day_1km'])
.map(function(img){
var bands = img.select(['LST_Night_1km'])
.multiply(0.02)
.subtract(273.15)
.clip(US)
return bands
.copyProperties(img,['system:time_start','system:time_end']);
});

// print (lst)
 
Map.addLayer(lst2001.select('LST_Night_1km').mean(),{palette: ['blue','limegreen','yellow','darkorange','red']},'LST Night 2020', false);

var lst2020 = modis
.filterDate('2020-01-01','2020-12-31')
.filterBounds(US)
// .select(['LST_Night_1km','LST_Day_1km'])
.map(function(img){
var bands = img.select(['LST_Night_1km'])
.multiply(0.02)
.subtract(273.15)
.clip(US)
return bands
.copyProperties(img,['system:time_start','system:time_end']);
});

// print (lst)
 
Map.addLayer(lst2020.select('LST_Night_1km').mean(),{palette: ['blue','limegreen','yellow','darkorange','red']},'LST Night 2001', false);

/// Subtraction
var diff =  lst2020.subtract(lst2001);
print('diff', diff);

修改后的 代码:

代码语言:javascript
复制
var modis = ee.ImageCollection("MODIS/061/MOD11A2")
/// Temperature Changes
/// Year 2011-2020
// Add Study area map outline to the Map as a layer.
//Map.centerObject(US,4);
// Map.addLayer(US);

var lst2001 = modis
.filterDate('2001-01-01','2001-12-31')
.filterBounds(US)
// .select(['LST_Night_1km','LST_Day_1km'])
.map(function(img){
var bands = img.select(['LST_Night_1km'])
.multiply(0.02)
.subtract(273.15)
.clip(US)
return bands
.copyProperties(img,['system:time_start','system:time_end']);
});

// print (lst)
 
Map.addLayer(lst2001.select('LST_Night_1km').mean(),{palette: ['blue','limegreen','yellow','darkorange','red']},'LST Night 2020', false);

var lst2020 = modis
.filterDate('2020-01-01','2020-12-31')
.filterBounds(US)
// .select(['LST_Night_1km','LST_Day_1km'])
.map(function(img){
var bands = img.select(['LST_Night_1km'])
.multiply(0.02)
.subtract(273.15)
.clip(US)
return bands
.copyProperties(img,['system:time_start','system:time_end']);
});

// print (lst)
 
Map.addLayer(lst2020.select('LST_Night_1km').mean(),{palette: ['blue','limegreen','yellow','darkorange','red']},'LST Night 2001', false);

/// Subtraction
var diff1 =  lst2020.select(['LST_Night_1km']).first()
var diff2 =lst2001.select(['LST_Night_1km']).first();
var diff =diff1.subtract(diff2)
print('diff', diff);


//或者下面的方法
/// Subtraction
var diff =  lst2020.mosaic().subtract(lst2001.mosaic());
print('diff', diff);

修改后的结果:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档