200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > GEE例子分析_植被覆盖度计算

GEE例子分析_植被覆盖度计算

时间:2019-05-23 06:52:41

相关推荐

GEE例子分析_植被覆盖度计算

一、植被覆盖度计算

课程:/video/BV1zr4y1k7L8?spm_id_from=333.999.0.0

博客:/qq_44589327/article/details/107443958

讲解代码:

准备数据,基于哨兵2号的SR数据来进行初始数据集筛选

//导入行政矢量数据,在GEE中是FeatureCollection类型var wuhan = ee.FeatureCollection("users/yp7454982/wuhan");Map.addLayer(wuhan)Map.centerObject(wuhan,8)//去云函数function maskS2clouds(image) {var qa = image.select('QA60');// Bits 10 and 11 are clouds and cirrus, respectively.var cloudBitMask = 1 << 10;var cirrusBitMask = 1 << 11;// Both flags should be set to zero, indicating clear conditions.var mask = qa.bitwiseAnd(cloudBitMask).eq(0).and(qa.bitwiseAnd(cirrusBitMask).eq(0));return image.updateMask(mask).divide(10000);}//筛选在武汉市云量百分之20以下的所有数据,进行去云处理var dataset_sentinel2=ee.ImageCollection("COPERNICUS/S2_SR").filterDate('-01-01','-12-31').filterBounds(wuhan)//.filterMetadata('CLOUDY_PIXEL_PERCENTAGE',"less_than",20).map(maskS2clouds)print(dataset_sentinel2)

中值合成并进行数据裁剪,真彩色合成

var mid_image=dataset_sentinel2.median().clip(wuhan.geometry());var visualization = {min: 0.0,max: 0.3,bands: ['B4', 'B3', 'B2'],};Map.addLayer(mid_image,visualization,'RGB')

计算NDVI并将水体mask掉,并利用像元二分模型进行植被覆盖度反演

var NDVI=mid_image.normalizedDifference(["B8","B4"]).rename("NDVI")print(NDVI)Map.addLayer(NDVI.lt(0))//waterMap.addLayer(mid_image.updateMask(NDVI.gt(0)),visualization,'RGB1')var mask_water_NDVI=NDVI.updateMask(NDVI.gt(0))//mask water//var chart=ui.Chart.image.histogram(mask_water_NDVI,wuhan,100)//print(chart)function calFVC(BestVI,region,scale){var num = BestVI.reduceRegion({reducer:ee.Reducer.percentile([5,95]),geometry:region,scale:scale,maxPixels:1e13});var min = ee.Number(num.get("NDVI_p5"));var max = ee.Number(num.get("NDVI_p95"));//print(top_min);//print(top_max);//quantile and combinevar greaterPart = BestVI.gt(max);var lessPart = BestVI.lt(min);var middlePart =ee.Image(1).subtract(greaterPart).subtract(lessPart);//calculate FVCvar tempf1=BestVI.subtract(min).divide(max.subtract(min));var FVC=ee.Image(1).multiply(greaterPart).add(ee.Image(0).multiply(lessPart)).add(tempf1.multiply(middlePart))return FVC.rename('FVC');}var FVC=calFVC(mask_water_NDVI,wuhan,10)print(FVC)var chart=ui.Chart.image.histogram({image:FVC,region:wuhan,scale:250,//maxPixels:1e13})print(chart)Export.image.toDrive({image: FVC,description: "wuhan_fvc_",scale: 10,region: wuhan.geometry(),maxPixels: 1e13});

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。