问题描述
我正在Google Earth Engine中对Landsat-8图像进行云遮罩,然后创建不同年份的EVI像素值的直方图。对于我创建的每个层,我使用相同的几何体裁剪输出,但是直方图中的像素数彼此之间有很大差异。下面是其中一些直方图的图片,这些直方图已导出到excel,并显示为折线图,以便于查看。
下面是我的代码摘录,整个内容由重复多次但相同年份的同一代码组成,而不是每个部分中的“ 2018”。我已经尝试过使用各种可用的Landsat-8集合,并根据需要编辑了代码,但是它们看起来都不正确,或者我无法使其正常工作(我对GEE还是很陌生)。我还确定我的金字塔政策,规模和区域在整个过程中都是相同的。
为什么会这样,我该如何解决?我了解到,由于使用了云遮罩,每个输出中的总像素会略有变化,但是在这种规模上不会产生任何效果,因为只有很小的区域被遮罩了。
var forest = broADLEAF.merge(MIXED).filterBounds(geometry4);
////////////////CLOUD MASK////////////////
function maskL8sr(image) {
var cloudShadowBitMask = 1 << 3;
var cloudsBitMask = 1 << 5;
var qa = image.select('pixel_qa');
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
.and(qa.bitwiseAnd(cloudsBitMask).eq(0));
return image.updateMask(mask).divide(10000)
.select("B[0-9]*")
.copyProperties(image,["system:time_start"]);
}
//////////////2018/////////////////////////
var collection18 = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterDate('2018-06-01','2018-08-31')
.filterBounds(geometry4)
.sort('CLOUD_COVER',false)
.map(maskL8sr);
var composite18 = collection18.median();
// display the results.
Map.addLayer(composite18,{bands: ['B4','B3','B2'],min: 0,max: 0.3});
//////////////////////////////////////////////////////////
var evi2018 = composite18.expression(
'2.5 * ((NIR - RED) / (NIR + 6 * RED - 7.5 * BLUE + 1))',{
'NIR': composite18.select('B5'),'RED': composite18.select('B4'),'BLUE': composite18.select('B2')
});
var evi2018real = evi2018.clip(forest);
var histogram5 = ui.Chart.image.histogram({
image: evi2018real,region: geometry4,scale: 30,maxPixels: 1e13})
.setSeriesNames(['18']);
print(histogram5);
Map.addLayer(evi2018real,{bands: ['constant'],max: 0.75},"2018");
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)