全球高精度土地利用数据服务 全国作物类型空间分布数据服务 二级分类土地利用数据30m 高精度植被类型分布数据 全国城市功能区划分布数据 全国DEM高程数据服务 全国耕地数据空间分布服务 全国林地分类数据空间分布服务 全国草地类型分类数据空间分布服务 全国水体数据空间分布服务 全国建设用地数据空间分布服务 全国未利用地数据空间分布服务 地形、地貌、土壤理化性质数据服务 全国坡度坡向数据服务 一级分类土地利用数据30m
全国降水量空间分布数据集 全国气温空间分布数据集 太阳辐射量空间分布数据集 全国气象站点观测数据集 全国平均风速空间分布数据集 全国平均水汽压空间分布数据集 全国蒸散量空间分布数据集 全国日照时数空间分布数据集 全国相对湿度空间分布数据集 全国地表温度空间分布数据集 全国气候区划空间分布数据集 全国气象站点空间分布数据集 全国土壤湿度空间分布数据集 全国水文站点地表径流量空间分布数据集
土壤类型空间分布数据服务 土壤质地空间分布数据服务 土壤有机质空间分布数据服务 土壤酸碱度空间分布数据服务 土壤氮磷钾空间分布数据服务 土壤深度空间分布数据服务 土壤侵蚀强度空间分布数据服务 土壤含水量空间分布数据服务 土壤重金属含量空间分布数据服务 中国土壤阳离子交换量空间分布数据 中国土壤容重含量空间分布数据
全国夜间灯光指数数据服务 全国GDP公里格网数据服务 全国人口密度数据服务 全国poi感兴趣点空间分布数据 全国医院空间分布数据服务 全国学校空间分布数据服务 全国居民点空间分布数据 全国旅游景区空间分布数据 全国机场空间分布数据 全国地铁线路站点空间分布数据 人口调查空间分布数据服务 社会经济统计年鉴数据 中国各省市统计年鉴 中国县级统计年鉴数据 农田分类面积统计数据服务 农作物长势遥感监测数据服务 医疗资源统计数据服务 教育资源统计数据服务 行政区划空间分布数据服务
Landsat陆地资源卫星影像 高分二号遥感影像数据 高分一号遥感影像数据 Sentinel2哨兵2卫星影像 SPOT系列卫星遥感影像数据 WorldView卫星遥感影像数据 资源三号卫星遥感影像数据 GeoEye卫星遥感影像数据 NOAA/AVHRR卫星遥感影像 MODIS卫星遥感影像 环境小卫星 Rapideye快鸟卫星影像
高精度归一化植被指数NDVI空间分布数据 高精度净初级生产力NPP空间分布数据 LAI叶面积指数空间分布数据 全国地表温度LST空间分布数据 全国生态系统服务空间数据集 全国湿地沼泽分类空间分布数据集 全国陆地生态系统类型空间分布数据集 全国农田生产潜力数据集 全国GPP初级生产力数据 全国农田熟制空间分布数据集 中国植被区划数据 中国草地资源数据 全国月度NDVI归一化植被指数空间分布数据 月度净初级生产力NPP空间分布数据 全国年度NDVI归一化植被指数空间分布数据 年度净初级生产力NPP空间分布数据 增强型植被指数EVI空间分布数据 RVI比值植被指数空间分布数据
这次介绍的Reducer包括求最大、最小值、求均值、求众数等。
下面所有的代码都使用了一个公共资源如下,后续代码不在重复添加使用。
var roi = /* color: #d63000 */ee.Geometry.Polygon(
[[[116.11220202824006, 38.133561577393166],
[116.37569631837516, 38.1696689233409],
[116.32936651641012, 38.35173534234094],
[116.07083980910647, 38.31789056147068]]]),
l8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT_TOA");
function generateImage() {
Map.centerObject(roi, 10);
var img = l8.filterDate("2018-6-1", "2018-8-1")
.filterBounds(roi)
.map(ee.Algorithms.Landsat.simpleCloudScore)
.map(function(image){
image = image.updateMask(image.select("cloud").lte(20));
return image;
})
.map(function(image) {
return image.addBands(image.normalizedDifference(["B5", "B4"]).rename("NDVI"));
})
.select("NDVI")
.mosaic()
.clip(roi);
var visParam = {
min: -0.2,
max: 0.8,
palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901, 66A000, 529400,' +
'3E8601, 207401, 056201, 004C00, 023B01, 012E01, 011D01, 011301'
};
Map.addLayer(img, visParam, "NDVI");
return img;
}
var img = generateImage();
解释:获取输入的最小值。如果输入是数值列表,获取数值的最小值;如果是影像集合,获取所有匹配波段的每一个像素的最小值;如果是单张影像,获取波段中的像素最小值。
其中min()可以带一个参数,如果是多维的列表可以通过这个参数计算每一个列表的最小值。
例子:
function min() {
//ee.Reducer.min
//list
var a = ee.List([2,1,3,4,5]);
print("min", a.reduce(ee.Reducer.min()));
//多维的list输出结果
var b = ee.List([[1,2],[2,3]]);
print("min", b.reduce(ee.Reducer.min(2)));
//image collection
var l8Col = l8.filterDate("2018-6-1", "2018-8-1")
.filterBounds(roi)
.map(ee.Algorithms.Landsat.simpleCloudScore)
.map(function(image){
image = image.updateMask(image.select("cloud").lte(20));
return image;
})
.map(function(image) {
return image.addBands(image.normalizedDifference(["B5", "B4"]).rename("NDVI"));
})
.select("NDVI");
var image = l8Col.reduce(ee.Reducer.min());
print(image);
var visParam = {
min: -0.2,
max: 0.8,
palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901, 66A000, 529400,' +
'3E8601, 207401, 056201, 004C00, 023B01, 012E01, 011D01, 011301'
};
Map.addLayer(image.clip(roi), visParam, "NDVI_min");
//image
var dict = img.reduceRegion({
reducer: ee.Reducer.min(),
geometry: roi,
scale: 30,
maxPixels: 1e13
});
print("dict", dict);
}
min();
输出结果:
解释:获取输入的最大值。如果输入是数值列表,获取数值的最大值;如果是影像集合,获取所有匹配波段的每一个像素的最大值;如果是单张影像,获取波段中的像素最大值。
例子:
function max() {
//ee.Reducer.max
//list
var a = ee.List([2,1,3,4,5]);
print("max", a.reduce(ee.Reducer.max()));
//image collection
var l8Col = l8.filterDate("2018-6-1", "2018-8-1")
.filterBounds(roi)
.map(ee.Algorithms.Landsat.simpleCloudScore)
.map(function(image){
image = image.updateMask(image.select("cloud").lte(20));
return image;
})
.map(function(image) {
return image.addBands(image.normalizedDifference(["B5", "B4"]).rename("NDVI"));
})
.select("NDVI");
var image = l8Col.reduce(ee.Reducer.max());
print(image);
var visParam = {
min: -0.2,
max: 0.8,
palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901, 66A000, 529400,' +
'3E8601, 207401, 056201, 004C00, 023B01, 012E01, 011D01, 011301'
};
Map.addLayer(image.clip(roi), visParam, "NDVI_max");
//image
var firImg = ee.Image(l8Col.first());
var dict = firImg.reduceRegion({
reducer:ee.Reducer.max(),
geometry: roi,
scale: 30,
maxPixels: 1e13
});
print("dict is", dict);
}
max();
输出结果:
解释:获取输入的最小值和最大值,如果输入是数值列表,获取数值的最小值和最大值;如果是影像集合,获取所有匹配波段的每一个像素的最小值和最大值;如果是单张影像,获取波段中的像素最小值和最大值。
例子:
function minMax() {
//ee.Reducer.minMax
//list
var a = ee.List([2,1,3,4,5]);
print("minMax", a.reduce(ee.Reducer.minMax()));
//image collection
var l8Col = l8.filterDate("2018-6-1", "2018-8-1")
.filterBounds(roi)
.map(ee.Algorithms.Landsat.simpleCloudScore)
.map(function(image){
image = image.updateMask(image.select("cloud").lte(20));
return image;
})
.map(function(image) {
return image.addBands(image.normalizedDifference(["B5", "B4"]).rename("NDVI"));
})
.select("NDVI");
var image = l8Col.reduce(ee.Reducer.minMax());
print(image);
var visParam = {
min: -0.2,
max: 0.8,
palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901, 66A000, 529400,' +
'3E8601, 207401, 056201, 004C00, 023B01, 012E01, 011D01, 011301'
};
Map.addLayer(image.select("NDVI_min").clip(roi), visParam, "NDVI_min");
Map.addLayer(image.select("NDVI_max").clip(roi), visParam, "NDVI_max");
//image
var dict = img.reduceRegion({
reducer: ee.Reducer.minMax(),
geometry: roi,
scale: 30,
maxPixels: 1e13
});
print("dict", dict);
}
minMax();
输出结果:
解释:获取输入的众数。
例子:
function mode() {
//ee.Reducer.mode
//list
var a = ee.List([2,1,3,3,5]);
print("mode", a.reduce(ee.Reducer.mode()));
//image
var dict = img.reduceRegion({
reducer: ee.Reducer.mode(),
geometry: roi,
scale: 30,
maxPixels: 1e13
});
print("dict", dict);
}
mode();
输出结果:
解释:获取输入的均值。
例子:
function mean() {
//ee.Reducer.mean
//list
var a = ee.List([2,1,3,4,5]);
print("mean", a.reduce(ee.Reducer.mean()));
//image collection
var l8Col = l8.filterDate("2018-6-1", "2018-8-1")
.filterBounds(roi)
.map(ee.Algorithms.Landsat.simpleCloudScore)
.map(function(image){
image = image.updateMask(image.select("cloud").lte(20));
return image;
})
.map(function(image) {
return image.addBands(image.normalizedDifference(["B5", "B4"]).rename("NDVI"));
})
.select("NDVI");
var image = l8Col.reduce(ee.Reducer.mean());
print(image);
var visParam = {
min: -0.2,
max: 0.8,
palette: 'FFFFFF, CE7E45, DF923D, F1B555, FCD163, 99B718, 74A901, 66A000, 529400,' +
'3E8601, 207401, 056201, 004C00, 023B01, 012E01, 011D01, 011301'
};
Map.addLayer(image.clip(roi), visParam, "NDVI_mean");
//image
var dict = img.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: roi,
scale: 30,
maxPixels: 1e13
});
print("dict", dict);
}
mean();
输出结果