参考无形的风
整个思路就是
首先,上传矢量边界,我一般都是传到asset,然后一键导入。
然后,加载需要的影像,进行去云、日期和地区筛选等操作。
接着,设置影像的显示参数。
然后,通过构造一个空的image来加载矢量边界。
具体代码如下:
//前面部分是加载影像,可以略过,记得要上传ROI
/**
* Function to mask clouds based on the pixel_qa band of Landsat 8 SR data.
* @param {ee.Image} image input Landsat 8 SR image
* @return {ee.Image} cloudmasked Landsat 8 image
*/
var fc=ee.FeatureCollection(table);
function maskL8sr(image) {
// Bits 3 and 5 are cloud shadow and cloud, respectively.
var cloudShadowBitMask = (1 << 3);
var cloudsBitMask = (1 << 5);
// Get the pixel QA band.
var qa = image.select('pixel_qa');
// Both flags should be set to zero, indicating clear conditions.
var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
.and(qa.bitwiseAnd(cloudsBitMask).eq(0));
return image.updateMask(mask);
}
var dataset = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
.filterDate('2020-04-01', '2020-12-31')
.map(maskL8sr);
var median=dataset.median();
//裁剪
var clip=median.clipToCollection(fc);
var visParams = {
bands: ['B4', 'B3', 'B2'],
min: 0,
max: 3000,
gamma: 1.4,
};
//to draw the outline
//构造一个空的image,使用palette方式设置边界颜色
var empty = ee.Image().toByte();
var outline = empty.paint({
featureCollection:fc, // 筛选的colletion
color:0, //颜色透明
width:3 //边界宽度
});
//绘制红色边界
Map.addLayer(outline, {palette: "ff0000"}, "outline");
//Map.setCenter(114.0079, -26.0765, 9);
Map.addLayer(clip, visParams);