使用GEE绘制影像直方图时使用ui.Chart.image.histogram
函数来实现,下面介绍该函数的参数:
参数说明:
image:是要绘制的影像
region:要绘制影像的范围区域
scale:在绘制影像直方图时的尺度,可以选择跟原始影像一样的,也可以选择其他尺度
maxBuckets:构建直方图时使用的最大条数;将四舍五入为 2 的幂,也就是柱状图的柱子个数
minBuckets:同上,柱子的最小个数
maxRaw:在构建初始直方图之前要累积的值的数量
maxPixels:如果指定,则覆盖直方图缩减中允许的最大像素数。默认为 1e6,如果数据较大建议设置的大一些,否则在绘制的时候会报错,出现超过规定最大像素数的问题
另外,可以使用.setOptions来设置直方图的颜色、样式等参数。
以绘制某区域NDVI直方图为例:
// 获取数据,这里用的是NDVI数据
var dataset = ee.ImageCollection('MODIS/061/MOD13Q1')
.filter(ee.Filter.date('2018-01-01', '2018-05-01'));
var ndvi = dataset.select('NDVI').max();
// 研究区范围
var roi = ee.Geometry.Rectangle({
coords: [-109.05, 37, -102.05, 41],
geodesic: false
});
// 生成直方图数据. 设置直方图每一条的宽度是多少,或者是2的N次方
var histogram = ui.Chart.image.histogram({
image: ndvi,
region: roi,
scale: 200,
minBucketWidth: 300,
maxPixels:1e13
}).setOptions({
width: 400,
height: 240,
title: 'Histogram of ndvi in roi',
colors: ['#e0440e', '#e6693e', '#ec8f6e', '#f3b49f', '#f6c7b6']
});
//绘制直方图
print(histogram);
var ndviVis = {
min: 0.0,
max: 8000.0,
palette: [
'FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901',
'66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01',
'012E01', '011D01', '011301'
],
};
Map.addLayer(ndvi.clip(roi),ndviVis);
结果:
点击图中标注的箭头可以将数据下载为图片或者excel文件来打开。