问题描述
我正在尝试在 Google Earth Engine 中生成图像,但我无法以正确的方式编写它。这个想法是选择一整年的所有 MOdis - SNow 图像,迭代每个图像并将其重新分类为两个类别(如果高于 50 的阈值则为 1,如果低于阈值则为 0),然后将所有图像相加年,获得最终图像。在此图像中,值 365 表示每天的值都高于 50;同样,零值意味着一年中的任何时候都没有超过 50 的值。
我编写的代码按日期(1 年 - 2018 年)进行迭代,选择波段 (NDSI_SNow_Cover),重新分类 var th1 = sNow.gte(threshold).rename('thres1')
并尝试将全年的相加。
var palettes = require('users/gena/packages:palettes');
var palette = palettes.colorbrewer.RdYlGn[9];
var geometry = /* color: #d63000 */ee.Geometry.polygon(
[[[107.4876749263151,43.53145035042672],[107.2899210200651,40.74603425026213],[114.4530069575651,40.56266845308453],[118.6717569575651,42.72968876300252]]]);
var threshold = 50;
var sNow = ee.ImageCollection('MOdis/006/MOD10A1');
var start = '2018-01-01'; var end = '2019-01-01';
var mergedCollection = sNow.filterBounds(geometry).filterDate(start,end).map(function(image) {
return image.select(['NDSI_SNow_Cover'])
})
var mergedAllFunction = function(image) {
var ndvi = image;
var th1 = sNow.gte(threshold).rename('thres1')
var areaThres1 = ee.Number(th1.reduceRegion({
reducer: ee.Reducer.sum(),geometry: geometry,scale: 500,maxPixels: 1e9
}).values().get(0));
return image.addBands(sNow).addBands(th1).set('area_sqm_th1',areaThres1);
}
var useFunction = mergedCollection.map(mergedAllFunction);
print(useFunction)
Map.addLayer(useFunction,'','Test');
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)