我想根据已知的比例因子缩放卫星图像的波段。在Google Earth Engine中,我可以执行以下代码行:
image.select(nir).multiply(0.0000275).add(-0.2);
在这些函数的文档中,我不清楚乘法和加法是否修改了原始图像。
但是,如果我尝试下面的行,我会得到一个右值错误,因为该属性是只读的:
image.select(nir) = image.select(nir).multiply(0.0000275).add(-0.2);
当然,我可以将第一个语句分配给一个全新的图像,但这样我将错过所有其他波段。
那么,第一个语句的实际效果是什么呢?
1条答案
按热度按时间z9smfwbn1#
在这些函数的文档中,我不清楚乘法和加法是否修改了原始图像。
在地球引擎中,你几乎不能做任何事情来修改现有的东西。很少有例外,比如创建或删除资源的函数。
那么,第一个语句的实际效果是什么呢?
Earth Engine客户端根据您的指示构造一个表达式,然后丢弃它,因为您没有对它执行任何操作。
达到这种效果的方法是
注意,这仍然不是修改图像,当地球引擎执行这个命令时,它会创建一个具有不同波段的新图像;在JavaScript(客户端)中,效果是用一个包含更多算术运算的表达式替换
image
中尚未执行的EE表达式。"
overwrite
"也不意味着就地修改;其简单地表示"即使在输入图像中已经存在名为nir
的波段,也让输出图像中的波段取名称nir
",而默认行为将是新图像具有两个波段,新的波段命名为nir_1
。