问题描述
我是 GEE 和 Javascript 的新手。我正在尝试执行一个简单的任务:从 2015 年到 2021 年计算并导出 Sentinel 2 的 ndvi,。这是我的代码:
var s2 = ee.ImageCollection("copERNICUS/S2_SR"),s2_cloud = ee.ImageCollection("copERNICUS/S2_CLOUD_PROBABILITY"),point = /* color: #98ff00 */ee.Geometry.Point([117.34081098192927,23.95611396961109]);
/**
*
* remove cloud by probability bands
*
* */
function rmCloudByProbability(image,thread) {
var prob = image.select("probability");
return image.updateMask(prob.lte(thread));
}
/**
*
* scale image
*
* */
function scaleImage(image) {
var time_start = image.get("system:time_start");
image = image.divide(10000);
image = image.set("system:time_start",time_start);
return image;
}
function getMergeImages(primary,secondary) {
var join = ee.Join.inner();
var filter = ee.Filter.equals({
leftField: 'system:index',rightField: 'system:index'
});
var joinCol = join.apply(primary,secondary,filter);
joinCol = joinCol.map(function(image) {
var img1 = ee.Image(image.get("primary"));
var img2 = ee.Image(image.get("secondary"));
return img1.addBands(img2);
});
return ee.ImageCollection(joinCol);
}
function main() {
var startDate = "2017-03-28";
var endDate = "2021-04-08";
Map.centerObject(point,8);
var s2Imgs1 = s2.filterDate(startDate,endDate)
.filterBounds(point)
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',80))
.map(scaleImage);
var s2Imgs2 = s2_cloud.filterDate(startDate,endDate)
.filterBounds(point);
var s2Imgs = getMergeImages(s2Imgs1,s2Imgs2);
s2Imgs = s2Imgs.map(function(image) {
return rmCloudByProbability(image,50);
});
print("s2Imgs",s2Imgs);
Map.addLayer(s2Imgs.first(),{min:0,max:0.3,bands:["B4","B3","B2"]},"cloud");
}
main(); (The prevIoUs code here is correct)
function NDVI_V1(s2Imgs) {
var nir =s2Imgs.select("B8");
var red =s2Imgs.select("B4");
var ndvi = nir.subtract(red).divide(nir.add(red));
return ndvi;
}
print(" ndvi",ndvi);
错误消息显示“NDVI 未在此范围内定义。在,第 58 行,第 34 行”。 另外,我有一个小问题,我应该如何在右侧的任务栏上显示所需的数据?这是我之前说的正确代码。 有人可以向我解释我做错了什么吗?提前致谢! 另外,我有一个小问题,我应该如何在右侧的任务栏上显示所需的数据?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)