如何在Google Earth Engine中修改栅格图层波段?操作疑问解析
关于Google Earth Engine中影像波段缩放操作的说明
核心结论
image.select(nir).multiply(0.0000275).add(-0.2); 这个语句不会修改原始影像,它仅生成一个包含处理后nir波段的新影像对象,但如果不将结果赋值给变量,该对象会被直接丢弃,不会产生任何实际作用。
详细解释
- GEE的不可变性设计:GEE中所有影像、集合对象都是不可变的,
multiply()、add()这类方法不会修改原始对象,只会返回一个应用操作后的新对象。执行该语句时,原始image完全不受影响。 - 直接赋值报错的原因:
image.select(nir)返回的是临时影像对象,并非原始影像的可修改属性,GEE不允许对这类临时对象直接赋值,因此会提示“属性只读”错误。 - 保留其他波段的正确做法:若要仅处理
nir波段同时保留其他波段,需用image.addBands()方法替换原有nir波段,示例代码如下:
第三个参数// 处理目标nir波段 var processedNir = image.select('nir').multiply(0.0000275).add(-0.2); // 替换原始影像中的nir波段,保留其余波段 var updatedImage = image.addBands(processedNir, ['nir'], true);true表示覆盖同名原有波段,最终updatedImage将包含处理后的nir波段和未修改的其他波段。
内容的提问来源于stack exchange,提问作者Marcel Gangwisch
相关产品推荐
相关产品推荐

