Image.reduceToVectors(reducer, geometry, scale, geometryType, eightConnected, labelProperty, crs, crsTransform, bestEffort, maxPixels, tileScale, geometryInNativeProjection)
reducer:计算方法;
geometry:范围;
scale:分辨率;
geometryType:生成的矢量类型,默认是polygon类型;
eightConnected:是否是八连通,默认是true;
labelProperty:属性表的标签,默认label;
crs:投影信息;
crsTransform:投影信息参数;
bestEffort:如果像素数过多,是否只提取有限像素实现计算要求;
maxPixels:最大像素数量,默认1e8,通常设置为1e13;
tileScale:优化内部计算使用,可以减少计算内存溢出问题;
geometryInNativeProjection:在像素的投影信息下创建矢量数据,默认false。
示例代码
var roi = ee.FeatureCollection("users/sihaixiang/shandong").geometry();
Map.addLayer(roi, {'color':'grey'}, 'studyArea');
Map.centerObject(roi, 8);
var image = ee.Image("NOAA/DMSP-OLS/NIGHTTIME_LIGHTS/F182012")
.select("stable_lights")
.clip(roi);
var mask = image.gt(30).add(image.gt(60)); //大于30并且小于60的值变为1,大于60变为2,小于30变为0
mask = mask.updateMask(mask);
mask = mask.addBands(image);
print("mask", mask);
var vectors = mask.reduceToVectors({
reducer: ee.Reducer.mean(),
geometry: roi,
scale: 1000,
geometryType: "polygon",
maxPixels: 1e13
});
print("vectors", vectors);
Map.addLayer(mask.select("stable_lights"), {min:1, max:2, palette: ["red", "green"]}, "image");
var display = ee.Image()
.toByte()
.paint({
featureCollection: vectors,
color: null,
width: 1
});
Map.addLayer(display, {palette: "blue"}, "display");
结果