引言:植被作为生态大循环的重要参与者,在全球能量流动和物质循环中起着重要作用。通常植被覆盖度(Fractional vegetation cover, FVC)表征地表植被覆盖情况,一般将植被覆盖度定义为植被冠层在地面上垂直投影面积与土地总面积的比值。

像元二分模型:

  • 像元二分模型是一种简单实用的遥感估算模型,它假设一个像元的地表由有植被覆盖部分地表与无植被覆盖部分地表组成,而遥感传感器观测到的光谱信息也由这2个组分因子线性加权合成,各因子的权重是各自的面积在像元中所占的比率,如其中植被覆盖度可以看作是植被的权重。

VFC = (S - Ssoil)/ ( Sveg - Ssoil) S为遥感信息

植被覆盖度估算:植被指数通常用归一化植被指数值来表示,用来衡量植被生长状况和空间分布,是最常用的一种植被指数。

采用像元二分模型估算植被覆盖度,计算公式如下:

具体计算步骤:

  • 输入研究区;

  • 数据集筛选与处理;

  • 影像合成;

  • 水体掩膜;

  • 植被覆盖度计算;

  • 植被覆盖度分布统计;

  • 植被覆盖度等级划分与显示。

var roi =     /* color: #d63000 */    /* shown: false */    ee.Geometry.Polygon(        [[[113.73124060638992, 30.65887205802011],          [113.73948035248367, 30.43179088396901],          [113.83011755951492, 30.083046651701324],          [114.33795455098469, 29.919848154666333],          [114.77336964851546, 30.039042946788275],          [115.0562675977342, 30.28364016346498],          [115.0562675977342, 30.47319904704131],          [114.60528977564871, 30.9055199819972],          [113.77856858424246, 30.773458930311534]]]);//构造一个空的image,使用palette方式设置边界颜色var empty = ee.Image().toByte();var outline = empty.paint({ featureCollection:roi,  // 筛选的colletion color:0, //颜色透明 width:3  //边界宽度});//绘制红色边界Map.addLayer(outline, {palette: "ff0000"}, "outline");
Map.centerObject(roi,9);

//去云函数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);}
var dataset = ee.ImageCollection("COPERNICUS/S2_SR")                        .filterDate('2019-01-01','2019-12-31')                        .filterBounds(roi)//                        .filterMetadata('CLOUDY_PIXEL_PERCENTAGE',"less_than",20)                        .map(maskS2clouds)print(dataset)

var image = dataset.median().clip(roi);var visualization = {  min: 0.0,  max: 0.3,  bands: ['B4', 'B3', 'B2'],};Map.addLayer(image,visualization,'RGB')

var NDVI = image.normalizedDifference(["B8","B4"]).rename("NDVI")Map.addLayer(NDVI.lt(0),{},'water')
Map.addLayer(image.updateMask(NDVI.gt(0)),visualization,'RGB1')
var mask_water_NDVI = NDVI.updateMask(NDVI.gt(0))var chart = ui.Chart.image.histogram(mask_water_NDVI,roi,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"));    var greaterPart = BestVI.gt(max);    var lessPart = BestVI.lt(min);    var middlePart =ee.Image(1).subtract(greaterPart).subtract(lessPart);
    var 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,roi,10)
var palettes = require('users/gena/packages:palettes');var palette = palettes.colorbrewer.RdYlGn[9];Map.addLayer(FVC,{min:0.0,max:1.0,palette:palette},'FVC')print(FVC)
var chart2 = ui.Chart.image.histogram({  image:FVC,  region:roi,  scale:250,  maxPixels:1e13})print(chart2)

var L1 = FVC.lt(0.3);//低植被覆盖度  低于30%var L2 = (FVC.lt(0.45)).updateMask(FVC.gt(0.3));//中低植被覆盖度  30%-45%var L3 = (FVC.lt(0.6)).updateMask(FVC.gt(0.45));//中植被覆盖度  45%-60%var L4 = (FVC.lt(0.75)).updateMask(FVC.gt(0.6));//中高植被覆盖度  60%-75%var L5 = (FVC.lt(1.0)).updateMask(FVC.gt(0.75));//高植被覆盖度  75%-100%Map.addLayer(L1,{palette: "d7191c"},'L1');Map.addLayer(L2,{palette: "fdae61"},'L2');Map.addLayer(L3,{palette: "ffffbf"},'L3');Map.addLayer(L4,{palette: "a6d96a"},'L4');Map.addLayer(L5,{palette: "1a9641"},'L5');

  • 写在最后:如何查看一个范围内的image最值问题?

//分别求最大值与最小值var min = image.reduceRegion({  reducer: ee.Reducer.min(),  geometry:roi,  scale: 10,  maxPixels: 1e13});print(min);var max = image.reduceRegion({  reducer: ee.Reducer.max(),  geometry:roi,  scale: 10,  maxPixels: 1e13});print(max);
//直接求最大值与最小值var minMax = FVC.reduceRegion({  reducer: ee.Reducer.minMax(),  geometry:roi,  scale: 10,  maxPixels: 1e13});
print(minMax);

基于遥感解译与模型方法制作生态评价专题图

植被覆盖度(FVC)计算相关推荐

  1. Python遥感图像处理应用篇(九):使用NDVI指数数据批量计算植被覆盖度FVC

    1.植被覆盖度相关概念 植被覆盖度( Fractional Vegetation Cover,FVC)指植被(包括叶.茎.枝)在地面的垂直投影面积占统计区总面积的百分比.通常采用像元二分模型计算: 计 ...

  2. 基于ArcGIS 使用NDVI数据批量计算植被覆盖度FVC

    在以前的学习中http://t.csdn.cn/ikz9Z,学会了使用重分类的方法手动搜集NDVI 不同的置信度下的值.除了使用重分类方法外,还可以使用函数:slice和一些工具里面的percenti ...

  3. 基于GEE平台的植被覆盖度(FVC)像元二分法计算

    一.植被覆盖度计算方法 植被覆盖度FVC(Fractional Vegetation Cover)定义为单位面积内绿色植被冠层垂直投影面积所占比例.FVC是衡量地表植被状况的重要指标之一,也是区域生态 ...

  4. 基于Python根据置信度区间计算植被覆盖度

    "把别人的经验变成自己的,他的本事就大了" 1 简述 大概九天前,我发了篇记录,大致是讲用Python计算Landsat8遥感生态指数RSEI,也就是下篇 "基于Pyth ...

  5. 环评图件制作 (生态影响评价)项目区位置图、工程平面图、调查样方样线点位断面等布设图、土地利用现状图、地表水系图、植被类型图、植被覆盖度图、归一化植被指数图、生态系统类型图、土壤侵蚀图、物种适宜生境图

    一.ArcGIS10.2软件安装和汉化 1.1.ArcGIS软件安装 1.1.1 介绍ArcGIS软件安装过程以及汉化过程 二.遥感概述 2.1.基本概念 2.1.1. 空间滤波 2.1.2. 非监督 ...

  6. Google Earth Engine笔记-植被覆盖度计算

    1 植被覆盖度遥感监测 根据 N D V I NDVI NDVI数据进行像元二分模型计算植被覆盖度 像元二分模型将像元的植被覆盖结构分为纯像元与混合像元两类,纯像元植被完全覆盖覆盖度为1,混合想要由植 ...

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

    一.植被覆盖度计算 课程:https://www.bilibili.com/video/BV1zr4y1k7L8?spm_id_from=333.999.0.0 博客:https://blog.csd ...

  8. 【基于GEE计算年度植被覆盖度】

    基于GEE计算年度植被覆盖度 1.植被覆盖度计算公式参考地理学报的<2001-2013年华北地区植被覆盖度与干旱条件的相关分析> 2.代码 var roi=ee.FeatureCollec ...

  9. 像元二分模型计算植被覆盖度

    目录 前言 论文要点 计算过程 辅助数据介绍 IDL实现 计算结果 前言 关于改进的像元二分模型第一次出现是在李苗苗老师的博士论文中,但她后来发表的一篇期刊文章把这一部分单独摘了出来并做了应用案例,期 ...

最新文章

  1. lab_2 Selenium
  2. 数据结构与算法 —— 二叉树
  3. 大学生推荐书籍阅读【开阔视野、境界提升】
  4. 读取配置文件中的内容演练 20210412_221336.mp4
  5. vim中实现javascript代码自动完成功能
  6. 杭电2897邂逅明下邂逅明下
  7. 金融大规模毁灭性武器--高频统计套利
  8. CSS兼容IE6,IE7和FF的总结
  9. java中使用国密SM4算法详解
  10. Masscan使用教程.
  11. ITIL4 讲解:可用性管理
  12. WIN10 VS2019 编译Cyrus SASL
  13. 《University Calculus》-chape12-偏导数-基本概念
  14. centos7配置(nvidia+cuda+cudnn+anaconda+tensorflow)gpu开发环境
  15. 【内核笔记】博文2021回顾-2022规划
  16. 陈林接替张一鸣任今日头条CEO 字节跳动学谷歌进行架构升级
  17. flowable流程实例管理接口
  18. 安装win7旗舰版,一直卡在安装程序正在应用系统设置
  19. 国家级超级计算机中心没武汉,全国第7家国家超级计算中心
  20. MapReduce经典案例—TopN

热门文章

  1. catalog start with
  2. sql性能问题start with
  3. MATLAB运行程序报错:“等号右侧的输出数目不足,不满足赋值要求。”的解决方法
  4. 2021-10-26 数据存储的基本原理
  5. 【第3期】量化大咖来了!揭开量化对冲的神秘面纱
  6. rx 6700xt性能相当于什么水平 rx 6700XT参数
  7. C++数据类型 浅显理解
  8. 《python深度学习》学习笔记与代码实现(第六章,6.3 循环神经网络的高级用法)
  9. 51单片机堆栈深入剖析
  10. 分布式数据库系统面临的问题和挑战