GEE使用矢量资源

Map.addLayer()函数可以直接加载在地图中展示,但是对于显示边界则需要自己构造一个空的Image,然后通过相关绘制显示。裁剪的话就比较简单直接通过clip()函数就可以实现对图像的裁剪,这里面还涉及到通过filter()筛选矢量边界相关数据。

// 展示如何通过上传的矢量边界裁剪显示NDVI同时绘制出矢量边界

// 这里是哨兵2相关波段数据

// S2 Band    Use    Wavelength    Resolution

//  B1    Aerosols    443nm    60m

//  B2    Blue    490nm    10m

//  B3    Green    560nm    10m

//  B4    Red    665nm    10m

//  B5    Red Edge 1    705nm    20m

//  B6    Red Edge 2    740nm    20m

//  B7    Red Edge 3    783nm    20m

//  B8    NIR    842nm    10m

//  B8a    Red Edge 4    865nm    20m

//  B9    Water vapor    940nm    60m

//  B10    Cirrus    1375nm    60m

//  B11    SWIR 1    1610nm    20m

//  B12    SWIR 2    2190nm    20m



// 上传的矢量边界文件

var city = ee.FeatureCollection("users/wangweihappy0/shape/china_albers_city");

// 筛选时间

var start_date = ee.Date.fromYMD(2016, 1, 1);

var end_date = ee.Date.fromYMD(2016, 12, 31);

// 由于上传的数据是全国的数据,这里通过Filter过滤出邯郸数据

var handan = city.filter(ee.Filter.eq("ad2004", 130400));

// 哨兵2的数据

var s2 = ee.ImageCollection("COPERNICUS/S2");



// 哨兵2去云

var s2_rmcloud = function(image) {

var quality = image.select("QA60").unmask();

return image.updateMask(quality.eq(0));

};



// 哨兵2计算ndvi

var s2_ndvi = function(image) {

return image.addBands(image.normalizedDifference(["B8", "B4"]).rename("NDVI"));

};



//获取感兴趣区域

var study_s2 = s2.filterDate(start_date, end_date)

              .filterBounds(handan);

var study_s2_nocloud = study_s2.map(s2_rmcloud);



var ndvi = s2_ndvi(study_s2_nocloud.median()).select("NDVI").clip(handan);



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'

};

// 绘制NDVI

Map.addLayer(ndvi, visParam, 'Vegetation');



Map.centerObject(handan, 8);

// 这里构建空的Image,然后通过palette设置边界颜色

var empty = ee.Image().toByte();

var outline = empty.paint({

featureCollection:handan,  // 筛选的colletion

color:0, //颜色透明

width:3  //边界宽度

});

//绘制红色边界

Map.addLayer(outline, {palette: "ff0000"}, "outline");


// 绘制默认的行政区划,颜色设置为蓝色,默认图层不显示

Map.addLayer(handan, {color:"0000ff"}, "handan", false);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容