GEE(6):设置计算数值/影像保留小数位数

对于数字和影像有时需要对结果保留N位小数,数字和影像保留小数位数的方法不同,下面分别对其介绍。

在GEE中ee.Number的API,其中有一个方法 format(),它就是设置数字格式的。
比如上面的需求就是 ee.Number(10.123456789).format('%.3f’)。需要注意的是这里返回的是一个字符串,如果后续还有其他计算需要使用ee.Number.parse()来转换。
1. 数字:

//假设计算结果为a为小数
var a = 1.23456789;
//想要对计算结果保留三位小数,此时转换结果为字符串类型
var b = ee.Number(a).format('%.3f');
print(b);
//可以用ee.Number.parse()将其转换为Number类型
var c = ee.Number.parse(b);
var d = c.add(3);
print(c,d);

.
.
2. 影像
如果是对影像计算,想要将其保留n位小数的计算结果,比如计算得到的NDVI,想要对结果保留5位小数,可以采取将其想扩大一定的倍数,再转化为整数,再除以该倍数。
示例

//影像保留5位小数
//比如原始影像计算结果为img 
var img = ee.Image.constant(1.23456789); 
Map.addLayer(img, {}, "img"); 
//1.23456789×100000=123456.789,转为整数型为:123456
//123456÷100000=1.23456
var newImg = img.multiply(100000).toInt().divide(100000); 
Map.addLayer(newImg, {}, "newImg");

这里先对影像扩大100000倍,将其转为INT型,再除以100000,从而得到想要的结果。

你可能感兴趣的:(GEE,GEE,保留小数位数,影像,数值计算)