GEE影像集合ImageCollection中的统计计算
a. reducereducer,parallelScale)
reducer:计算方法,如均值、最大值等
parallelScale:缩放比例,为一个后台优化参数,如果计算内存溢出可以设置2、4等
影像集合中的reduce主要是所有影像提取对应波段计算生成单景影像。此外,需要注意Earth Engine中的所有操作底层本质都是在操作像素,这里计算结果为逐像素的结果。
案例:计算ImageCollection内的NDVI均值影像
var roi = /* color: #98ff00 */ee.Geometry.Polygon
[[[114.62959747314449, 33.357067677774594],
[114.63097076416011, 33.32896028884253],
[114.68315582275386, 33.33125510961763],
[114.68178253173824, 33.359361757948754]]]);
Map.centerObjectroi, 7);
Map.setOptions"SATELLITE"); //set SATELLITE basemap
var l8Col = ee.ImageCollection"LANDSAT/LC08/C01/T1_TOA") //Note:TOA!!!
.filterBoundsroi)
.filterDate"2018-1-1", "2019-1-1")
.mapee.Algorithms.Landsat.simpleCloudScore)//add cloud property
.mapfunctionimage) { //select cloud <= 20
return image.updateMaskimage.select"cloud").lte20));
})
.mapfunctionimage) { // add NDVI band
var ndvi = image.normalizedDifference["B5", "B4"]).rename"NDVI");
return image.addBandsndvi);
})
.select"NDVI");
printl8Col);
var img = l8Col.reduceee.Reducer.mean),4); // or var img = l8Col.mean);
printimg);
Map.addLayerroi, {color: "red"}, "roi");
由此代码也可以延伸开来,例如:
计算ImageCollection中的云量少于xx%的影像数量结果进行导出
计算ImageCollection中最大值或者最小值NDVI指数啥的作为分类的物候特征指标
注意:这里的.filterBoundsroi)出来的只是与roi相交的行列号影像
b. reduceColumnsreducer,selectors,weightSelectors)
reducer:计算方法,如均值、最大值等
selectors:属性列表
weightSelectors:属性列表对应的权重信息,通常默认
该方法用于统计属性的基本信息,例如统计影像结合所有的索引信息,并且返回列表,
主要使用Reducer中的.toList)方法,将影像集合中每一个元素的属性信息聚合在一起以列表形式返回。
案例:提取影像集合中所有影像ID的列表
var roi = /* color: #98ff00 */ee.Geometry.Polygon
[[[114.62959747314449, 33.357067677774594],
[114.63097076416011, 33.32896028884253],
[114.68315582275386, 33.33125510961763],
[114.68178253173824, 33.359361757948754]]]);
Map.centerObjectroi, 7);
var l8Col = ee.ImageCollection"LANDSAT/LC08/C01/T1_TOA")
.filterBoundsroi)
.filterDate"2018-1-1", "2019-1-1")
.mapee.Algorithms.Landsat.simpleCloudScore)
.mapfunctionimage) {
return image.updateMaskimage.select"cloud").lte20));
});
printl8Col);
// 需要将对象类型中的list取出
var indexs = l8Col.reduceColumnsee.Reducer.toList), ["system:index"])
.get"list");
print"indexs", indexs);