Javascript 在Google Earth引擎中计算植被指数时出错

Javascript 在Google Earth引擎中计算植被指数时出错,javascript,google-earth-engine,Javascript,Google Earth Engine,我对吉很陌生。我试图用Sentinel-2A图像计算一年的TSAVI。但是我运行这段代码时出错了。错误为“Image.bitwiseXor:按位操作数只能是整数。” Map.centerObject(AOI); addLayer(AOI,{},'Abshirin'); //选择Sentinel-2图像 变量S2_RAW=ee.ImageCollection(“哥白尼/S2”) .filterBounds(AOI) .filterDate('2019-09-20'、'2020-09-20') .f

我对吉很陌生。我试图用Sentinel-2A图像计算一年的TSAVI。但是我运行这段代码时出错了。错误为“Image.bitwiseXor:按位操作数只能是整数。”

Map.centerObject(AOI);
addLayer(AOI,{},'Abshirin');
//选择Sentinel-2图像
变量S2_RAW=ee.ImageCollection(“哥白尼/S2”)
.filterBounds(AOI)
.filterDate('2019-09-20'、'2020-09-20')
.filterMetadata('浑浊像素百分比','小于',10)
.filterMetadata(“航天器名称”、“等于”、“哨兵-2A”)
打印('S2_原始',S2_原始)
//掩蔽云
函数掩码2云(图){
var qa=image.select('QA60');

var cloudBitMask=1错误在这一部分:

var bands=img.multiply(0.0001).clip(AOI);
var index = bands.expression(
'(1.22*(NIR-1.22*RED-0.03)/(1.22*NIR+RED-1.22*0.03+0.08*(1+1.22^2)))',{
'RED' : bands.select('B4'),
'NIR' : bands.select('B8')});
return index.rename('TSAVI')
.copyProperties(img,['system:time_start','system:time_end']);
});
^
是,而不是指数运算符。指数运算符是
**
。代码应实际读取

var TSAVI=S2.map(function(img){
var bands=img.multiply(0.0001).clip(AOI);
var index = bands.expression(
'(1.22*(NIR-1.22*RED-0.03)/(1.22*NIR+RED-1.22*0.03+0.08*(1+1.22**2)))',{
'RED' : bands.select('B4'),
'NIR' : bands.select('B8')});
return index.rename('TSAVI')
.copyProperties(img,['system:time_start','system:time_end']);
});

正如@blindjesse所强调的,对于指数运算符,使用(**)而不是(^)。更多信息可在()

我已从您的代码中删除该问题。新代码现在可以正常工作:

var TSAVI=S2.map(function(img){
var bands=img.multiply(0.0001).clip(AOI);
var index = bands.expression(
'(1.22*(NIR-1.22*RED-0.03)/(1.22*NIR+RED-1.22*0.03+0.08*(1+1.22**2)))',{
'RED' : bands.select('B4'),
'NIR' : bands.select('B8')});
return index.rename('TSAVI')
.copyProperties(img,['system:time_start','system:time_end']);
});