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

一区TOP期刊提出一种植被覆盖度估算新方法 参数“β”表示R反射率的比例,而RE1反射率的比例由参数表示(1-'β').当 R2是最高的,对应的权重参数是最好的。基于 NDVI、SAVI和RVI,结合波段相关性确定估算FPV and FNPV的最佳波段,使用RE3和RE2反射率的加权平均值替换NIR波段,而RE1和RE2反射率的加权平均值替换R波段。1)研究植被理化参数对PV和NPV冠层反射率的影响 2)采取新的RE波段前后使用VI估计FPV and FNPV的差异 3)评估4波段红边植被指数对FPV and FNPV的估计能力。 阅读详情

前言

关于改进的像元二分模型第一次出现是在李苗苗老师的博士论文中,但她后来发表的一篇期刊文章把这一部分单独摘了出来并做了应用案例,期刊链接在下方。

密云水库上游植被覆盖度的遥感估算

论文要点

计算公式为:Fc =(NDVI -NDVIsoil) (NDVIveg -NDVIsoil)
问题的关键在于NDVIveg 与NDVIsoil如何取值。

其中 ,NDVIsoil 为完全是裸土或无植被覆盖区域的NDVI 值 , NDVIveg 则代表完全被植被所覆盖的像元的NDVI 值, 即纯植被像元的NDVI 值。NDVIveg 代表着全植被覆盖像元的最大值, 由于植被类型的影响, NDVIveg 值也会随着时间和空间而改变。 因此 , 计算植被覆盖度时, 既使同一景影像, 对于NDVIsoil 和NDVIveg 值不能取固定值。在实地应用中,植被覆盖类型随土地利用类型而变化, 对于某一土地利用类型, 由于植被类型近似, 其 NDVIveg 值也相近;而对于特定的土壤类型 ,其 NDVIsoil 值也应该是一定的 。因此, 土地利用图和土壤图应作为计算 NDVIveg 和NDVIsoil 值的基础
在这里插入图片描述

计算过程

在这里插入图片描述

辅助数据介绍

全球土壤数据
HWSD全球土壤数据下载处理
全球土地分类数据
MCD12Q1
关于MCDQ1,由官网介绍可知数据中包含5种分类方法得到的结果。
在这里插入图片描述
数据的说明手册目前网址404了。但我们可以查看数据的头文件获取分类代码信息。
这里贴出了type3的分类代码信息,比较符合我们计算植被覆盖度的目的。

Dataset #3: Land_Cover_Type_3  
  Dims: BYTE (2400 x 2400)    
Attribute 3-1: "long_name"  
  "Land_Cover_Type_3"   
Attribute 3-2: "Water Bodies"  
  0   
Attribute 3-3: "Grasslands"  
  1   
Attribute 3-4: "Shrublands"  
  2   
Attribute 3-5: "Broadleaf Croplands"  
  3   
Attribute 3-6: "Savannas"  
  4   
Attribute 3-7: "Evergreen Broadleaf Forests"  
  5   
Attribute 3-8: "Deciduous Broadleaf Forests"  
  6   
Attribute 3-9: "Evergreen Needleleaf Forests"  
  7  
Attribute 3-10: "Deciduous Needleleaf Forests"  
  8   
Attribute 3-11: "Unvegetated"  
  9   
Attribute 3-12: "Urban and Built-up Lands"  
  10   
Attribute 3-13: "Unclassified"  
  255   
Attribute 3-14: "valid_range"  
  0, 10    
Attribute 3-15: "_FillValue"  
  255  

使用MCTK对type3进行投影,重采样,至此LULC和HWSD,NDVI数据都准备好了。

IDL实现

pro vfc_cal
  compile_opt idl2
  e = envi()
  workpath = 'F:\FY3D_MERSI_data\Subset'
  cd,workpath
  ndvifile = workpath + '\NDVI'
  lulcfile = workpath + '\LULC'
  hwsdfile = workpath + '\HWSD'
  
  ndvir = e.openraster(ndvifile)
  hwsdr = e.openraster(hwsdfile)
  lulcr = e.openraster(lulcfile)
  
  spatialref = ndvir.spatialRef
  
  ndvi = ndvir.getdata(bands=0)
  hwsd = hwsdr.getdata(bands=0)
  lulc = lulcr.getdata(bands=0)
  
  ndvi[where(finite(ndvi,/nan))]  = mean(ndvi,/nan)
  lulc[where(finite(lulc,/nan))]  = 4
  
  hwsd_class = hwsd[uniq(hwsd,sort(hwsd))]
  lulc_class = lulc[uniq(lulc,sort(lulc))]
  print,hwsd_class,lulc_class
   
  lutmin = make_array(2,n_elements(hwsd_class),type=5)
  for i=0,n_elements(hwsd_class)-1 do begin 
    lutmin[0,i] = hwsd_class[i]
    ndvi_hwsd = ndvi[where(hwsd eq lutmin[0,i])] 
    ndvi_hwsd = ndvi_hwsd[sort(ndvi_hwsd)]
    ndvi_hwsd = ndvi_hwsd[where(hwsd ge -0.1)]
    number = n_elements(ndvi_hwsd)
    lutmin[1,i] =  ndvi_hwsd[round(0.05*number)]  
  endfor

  lutmax = make_array(2,n_elements(lulc_class),type=5)
  for i=0,n_elements(lulc_class)-1 do begin
    lutmax[0,i] = lulc_class[i]
    ndvi_lulc = ndvi[where(lulc eq lutmax[0,i])]
    ndvi_lulc = ndvi_lulc[sort(ndvi_lulc)]
    number = n_elements(ndvi_lulc)
    lutmax[1,i] =  ndvi_lulc[floor(0.95*number)]
  endfor
 
  dim = size(ndvi)
  n = n_elements(ndvi)
  vfc = make_array(dim[1],dim[2],type=5)
  for i=0,n-1 do begin
    for j=0,n_elements(hwsd_class)-1 do begin
      for k=0,n_elements(lulc_class)-1 do begin
        if lulc[i] eq lutmax[0,k] and hwsd[i] eq lutmin[0,j] then begin
          case 1 of 
            ndvi[i] ge lutmax[1,k] : vfc[i] = 1
            ndvi[i] le lutmin[1,j] : vfc[i] = 0
            else: vfc[i] = (ndvi[i]-lutmin[1,j]) / (lutmax[1,k]-lutmin[1,j])
          endcase
        endif
      endfor
    endfor
  endfor
  
  tempfn = e.GetTemporaryFilename()
  vfcr = e.CreateRaster(tempfn, vfc, SpatialRef = spatialref)
  vfcr.save
 
end

PS:一开始取整用的fix,结果被坑惨了。VFC结果大部分都是1,找了半天代码错误才发现取整的地方不太合适,改为了floor。最基本的常识都忘了,小数取整不要用fix!!!

计算结果

结果差别挺大的,现在网上流传的一些计算方法大多都没有引入土壤数据,而是利用每一类土地利用的NDVImin当做NDVIsoil,这种方法我还没有去计算对比,但结合土壤数据和土地分类数据的计算绝对是纯正的计算方法。
在这里插入图片描述

ENVI植被覆盖度[FVC]估算:从NDVI计算到像元二分模型实战 本文详细介绍了使用ENVI进行植被覆盖度(FVC)估算的全流程,从NDVI计算到像元二分模型实战。通过遥感技术,特别是NDVI的应用,帮助用户高效准确地估算植被覆盖度,适用于生态环境评估、农作物监测等多个领域。文章还提供了常见问题解决方案和结果可视化技巧,助力遥感数据分析。 阅读详情

相关推荐

从EVI到FVC:手把手教你用GEE和像元二分模型计算植被覆盖度(以MODIS数据为例)

本文详细介绍了如何利用Google Earth Engine(GEE)平台和像元二分模型从MODIS EVI数据计算植被覆盖度(FVC)。通过分步教程和代码示例,帮助读者掌握高效、精确的FVC反演技术,适用于生态监测、农业估产等应用场景。

weixin_30924239的博客 220

遥感知识-像元二分模型

![在这里插入图片描述](https://img-blog.csdnimg.cn/20190325202913760.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3l1

yuanYW7556的博客 7486

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

1 植被覆盖度遥感监测 根据NDVINDVINDVI数据进行像元二分模型计算植被覆盖度 像元二分模型将像元的植被覆盖结构分为纯像元与混合像元两类,纯像元植被完全覆盖覆盖度为1,混合想要由植被与废止被构成,其NDVINDVINDVI是植被覆盖部分的NDVINDVINDVI值与非植被覆盖部分NDVINDVINDVI值的线性加权: NDVI=fv⋅NDVIv+(1−fv)⋅NDVI0 NDVI=f_v\cdot NDVI_v+(1-f_v)\cdot NDVI_0 NDVI=fv​⋅NDVIv​+(1−fv​)⋅

qq_44589327的博客 1万+

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

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

不要仅为成功而努力,要为做一个有价值的人而努力 1万+

GEE计算Landsat系列影像植被覆盖度

var ct = ee.FeatureCollection(" "),//自行添加矢量边界 var l8 = ee.ImageCollection("LANDSAT/LC08/C01/T1_TOA"), var l5 = ee.ImageCollection("LANDSAT/LT05/C01/T1_TOA") var addNDVI = function(image) { var ndvi = image.normalizedDifference(['B4', 'B3']).rename(...

sxy614的博客 5161

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

""" @soderayer date:20220428 to read NDVI files testfile Landsat8 collection2 level2 NDVI data calculate the confidence interval to csv data info table: Attribute Value Long Name Normalized Difference Vegetation Index Short Name LC8NDVI, LE7NDVI, L...

soderayer的博客 8366

植被覆盖度(FVC)计算

通常植被覆盖度(Fractional vegetation cover, FVC)表征地表植被覆盖情况,一般将植被覆盖度定义为植被冠层在地面上垂直投影面积与土地总面积的比值。像元二分模型是一种简单实用的遥感估算模型,它假设一个像元的地表由有植被覆盖部分地表与无植被覆盖部分地表组成,而遥感传感器观测到的光谱信息也由这2个组分因子线性加权合成,各因子的权重是各自的面积在像元中所占的比率,如其中植被覆盖度可以看作是植被的权重。VFC = (S - Ssoil)/ ( Sveg - Ssoil) S为遥感信息。

hu397313168的博客 2万+

ENVI提取NDVI与植被覆盖度估算

【Compute Statistics】工具统计一下NDVI值,DN值便是NDVI,Acc Pct是累积百分比,通过累计百分比确定一个置信区间,看论文一般是2%-90%,这里分别取累计百分比在5%和95%时的DN值作为最小值和最大值(在表里找最接近5%和95%的,就不截图了,找到后对应的DN值分别是-0.429825,0.656616)。当b1小于NDVIsoil(置信度区间内的最小值),就认为没有植被覆盖,赋给0,当b1大于NDVIveg(置信度区间内的最大值),认为完全被植被覆盖了,赋给1。

JData_Engineer的博客 2350

基于像元二分模型的植被覆盖度反演

理论介绍: 植被覆盖度是指植被(包括叶、茎、枝)在地面的垂直投影面积占统计区总面积的百分比植被覆盖度常用于植被变化、生态环境研究、水土保持、气候等方面。 像元二分模型是一种简单实用的遥感估算模型,它假设一个像元的地表由有植被覆盖部分地表与无植被覆盖部分地表组成,而遥感传感器观测到的光谱信息也由这2个组分因子线性加权合成,各因子的权重是各自的面积在像元中所占的比率,如其中植被覆盖度可以看作是植被的权重。 公式为: VFC = (S - Ssoil)/ ( Sveg - Ssoil) S为遥感信息 改进后的

yuanYW7556的博客 9502

ENVI利用像元二分法计算区域植被覆盖度

该资源中包括四个教学视频,囊括了利用ENVI计算植被覆盖度的三个环节:辐射定标、大气校正、植被反演。

STK与Matlab连接报错?手把手教你解决mexConnect函数执行问题(附完整避坑指南)

本文针对STK与Matlab连接时常见的“mexConnect函数执行”报错,提供了完整的诊断与解决方案。文章深入剖析了错误根源在于路径冲突或文件损坏,并手把手指导用户通过定位STK连接器文件、正确配置Matlab路径(包括使用addpath命令)以及执行初始化测试三步走策略,彻底解决问题。同时附上版本兼容性检查、安装避坑指南及构建稳健工作流的建议,帮助用户建立可靠的STK-Matlab联合仿真环境。

yolo5detector的博客 469

基于像元二分模型的植被覆盖度反演--像元二分法

一、理论部分 1、植被覆盖度 是指植被(包括叶、茎、枝)在地面的垂直投影面积占统计区总面积的百分比。常用于植被变化、生态环境研究、水土保持、气候等方面。 2、像元二分法模型 像元二分模型是一种简单实用的遥感估算模型,它假设一个像元的地表由有植被覆盖部分地表与无植被覆盖部分地表组成,而遥感传感器观测到的光谱信息也由这2个组分因子线性加权合成,各因子的权重是各自的面积在像元中所占的比率,其中植被覆盖度...

y_j_6666的博客 8576

TwinCAT3实战:从零搭建倍福PLC的Modbus-TCP Server

本文详细介绍了如何使用TwinCAT3从零搭建倍福PLC的Modbus-TCP Server,包括环境准备、工程配置、参数设置、客户端连接测试及常见问题排查。通过实战步骤和实用技巧,帮助工程师快速掌握倍福PLC与Modbus-TCP的通信实现,提升工业自动化项目的开发效率。

weixin_30797199的博客 168

【ENVI精讲】处理专题五:基于像元二分模型的植被覆盖度反演

获得地物真实的光谱信息是遥感反演的前提,大气校正可消除大气影响,还原地物的真实信息,是定量遥感数据预处理中必不可少的环节。/Radiometric Correction/FLAASH Atmospheric Correction(选择大气校正工具)设置存储面板选好的默认设置查看影像源信息,对大气校正剩余面板进行设置补充多光谱工具栏设置应用,完成大气校正五、植被覆盖度反演。

3716

c++多线程(1)------创建和管理线程td::thread

std::thread 是 C++11 标准库中用于创建和管理线程的核心类,定义在 <thread> 头文件中。它使得多线程编程变得简单、类型安全且跨平台。

jndingxin的专栏 641

告别双系统!用Ventoy把Ubuntu 22.04装进U盘,打造你的随身开发环境(附保姆级避坑指南)

本文详细介绍了如何使用Ventoy将Ubuntu 22.04安装到U盘,打造便携式开发环境。通过即插即用的特性,开发者可以在任何x86电脑上快速启动完整的Ubuntu系统,无需配置双系统或虚拟机。文章提供了从硬件准备到系统优化的全流程指南,帮助用户高效创建随身开发环境。

weixin_31569671的博客 362

IDL实现植被覆盖度计算

本实例实现植被覆盖度计算,利用NDVI数据像元二分模型。 像元二分计算方法是将像元植被覆盖结构分为纯像元和混合像元两种。纯像元被植被完全覆盖,覆盖度为1;混合像元由植被和非植被部分组成,其NDVI值是植被覆盖部分非NDVI值与非植被覆盖部分的NDVI值线性加权,公式如下:                                                     上式中:NDVI...

zhoulong_giser 9678

Qt for WebAssembly环境搭建

一、前言 二、Ubuntu 1、在线安装Qt15 在线安装下载器:https://download.qt.io/official_releases/online_installers/ 安装时记得勾选WebAssembly,如下: 2、安装依赖 # Install Python sudo apt-get install python2.7 # Install CMake (optional, only needed for tests and building Binaryen) sudo apt

贝勒里恩的博客 3655

生态参数反演(植被覆盖度FVC遥感反演及GLASS GEOV产品下载)手把手教会

生态参数遥感反演

RS_LAB的博客 3万+

使用Simulink进行基于IIR滤波器的设计与稳定性分析仿真

IIR滤波器的稳定性与其系统函数的极点位置密切相关。如果所有极点都位于Z平面的单位圆内,则该滤波器是稳定的;否则,滤波器将是不稳定的。在设计IIR滤波器时,确保其稳定性对于避免输出信号发散至关重要。明确你的系统需求,比如输入信号类型(如正弦波)、采样率、IIR滤波器的设计参数(如滤波器类型、阶数、截止频率等)。假设我们需要设计一个低通IIR滤波器,用来去除高于500Hz的所有频率成分,保留低于500Hz的信号成分。采样率为8kHz。

xiaoheshang_123的博客 146

RAG 实战:LangChain + 向量数据库构建知识问答系统

从文档加载、分割、嵌入到检索增强生成,完整实现一个基于本地文档的知识问答系统。

kaixin110a的博客 185

最大元最小元上确界_基于像元二分模型的植被覆盖度反演(GH4实操)

点评:选择的是GF4数据,数据已做过大气校正、几何校正等预处理,基于像元二分模型的植被覆盖度反演是目前遥感领域应用较为广泛的一种方法,是研究区域植被覆盖变化、水土保持、森林监测等的常用手段!**理论介绍:** 植被覆盖度是指植被(包括叶、茎、枝)在地面的垂直投影面积占统计区总面积的百分比植被覆盖度常用于植被变化、生态环境研究、水土保持、气候等方面。 像元二分模型是一种简单实用...

weixin_39610964的博客 446

3.2 直流无刷电机(BLDC):状态空间模型与传递函数

状态空间模型和传递函数是分析BLDC电机动态特性的重要工具。状态空间模型通过微分方程描述系统内部状态与输入输出关系,适用于多变量系统分析;传递函数则在频域表征系统特性,便于控制器设计。本文详细推导了三相坐标系和dq坐标系下的BLDC电机状态空间模型,讨论了线性化方法,并介绍了从状态空间模型到传递函数的转换过程。这些模型为BLDC电机的控制系统设计提供了理论基础。

技术工作者 230

基于AIE的贵州省FVC提取

基于AIE的贵州省FVC提取

renyuan_99的博客 729

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

植被覆盖度计算

2.植被覆盖度是指植被(包括叶、茎、枝)在地面的垂直投影面积占统计区总面积的百分比,是刻画地表植被覆盖的一个重要参数,也是指示生态环境变化的重要指标之一。其中,NDVIsoil为完全是裸土或无植被覆盖区域的NDVI值,相当于NDVImin,NDVIveg则代表完全被植被所覆盖的像元的NDVI值,即纯植被像元的NDVI值,相当于NDVImax。1.归一化植被指数(NDVI):反映土地覆盖植被状况的一种遥感指标,定义为近红外通道与可见光通道反射率之差与之和的商。

weixin_45866058的博客 3128

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

上一篇: HWSD全球土壤数据下载处理
下一篇: 矩匹配算法影像去噪
江北20190411
博客等级 码龄8年 641粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值