基于ArcGIS 使用NDVI数据批量计算植被覆盖度FVC
在以前的学习中http://t.csdn.cn/ikz9Z,学会了使用重分类的方法手动搜集NDVI 不同的置信度下的值。除了使用重分类方法外,还可以使用函数:slice和一些工具里面的percentile参数。当然如果使用GEE或者PIE等,没记错的话是有percent相关的函数的,直接使用就行。搜索过程中发现:https://developers.arcgis.com/python/api-reference/arcgis.raster.functions.html?highlight=colormap arcgis api也有相关的函数。但是以我自己的感觉,无论是重分类还是Slice都是错误的方法,正确的方法是计算累计百分比,分位数计算的累计百分比是面积的累计百分比,不是栅格数目的累计百分比。后面使用模型和arcpy计算的累计百分比。
在使用slice时,修改参数设置,分割方法选择相等面积,分割20份的话,就是按照5%和95%取值。这里的等面积法就是分位数法。
取值:0.293085 和 0.881258 ,但是通过分割结果也能看到他的count并不是完全相等。
并且这种方法是手动去记录的值,如果做几十年的,有点慢和烦人。
这里又发现了两种计算方法,也可以直接模型处理。个人感觉在设置置信度时,还是要基于经验和对于研究区域的理解去判断吧,上一个研究区使用5和95%的置信度并不一定适合这个研究区。
第一种情况:使用模型构建器
构建模型,使用栅格计算器和 ZonalStatistics 即可。这里的studyarea.tif是你的研究区,polygon to raster得到,5代表5%的累计百分比,可以设置成0(不推荐直接使用0,有可能报错,如果要使用最小值,建议使用0.00000001等很小的数代表0)、2等。95代表累计百分比95,可以设置成100,就是求最大值。
("%Raster%" - ZonalStatistics("%studyarea.tif%", "Value", "%Raster%", "PERCENTILE", "DATA", "CURRENT_SLICE", 5, "AUTO_DETECT", "ARITHMETIC", 360))/(ZonalStatistics("%studyarea.tif%", "Value", "%Raster%", "PERCENTILE", "DATA", "CURRENT_SLICE", 95, "AUTO_DETECT", "ARITHMETIC", 360)-ZonalStatistics("%studyarea.tif%", "Value", "%Raster%", "PERCENTILE", "DATA", "CURRENT_SLICE", 5, "AUTO_DETECT", "ARITHMETIC", 360))
第二种 使用python
-- coding: utf-8 --
"""
使用NDVI计算FVC ,基于arcpy
"""import arcpy
from arcpy import env
from arcpy.ia import *#设置的是否允许覆盖以前的值
arcpy.env.overwriteOutput = True
#设置工作空间和临时工作空间,研究区输入路径等
with arcpy.EnvManager(scratchWorkspace=r"D:\lunwen.gdb",workspace=r"E:\MODIS\DNDVI250Mpoint"):studyarea = r"E:\studyarea.shp"#读取NDVI列表NDVIList = arcpy.ListRasters('*', 'tif')#for循环操作for NDVI in NDVIList:#设置输出路径与输出名称FVC_name = "E:\\FVC\\"+NDVI.replace('NDVI', 'FVC')#使用分区统计工具计算累计百分比的值NDVImin = arcpy.ia.ZonalStatistics(studyarea, "GLIUYU_", NDVI, "PERCENTILE", "DATA", "CURRENT_SLICE",2, "AUTO_DETECT", "ARITHMETIC", 360)NDVImax = arcpy.ia.ZonalStatistics(studyarea, "GLIUYU_", NDVI, "PERCENTILE", "DATA", "CURRENT_SLICE",98, "AUTO_DETECT", "ARITHMETIC", 360)FVC = (NDVI-NDVImin)/(NDVImax - NDVImin)#输出FVC.save(FVC_name)print(FVC_name) #打印输出文件用于进度查看等
基于ArcGIS 使用NDVI数据批量计算植被覆盖度FVC相关推荐
- Python遥感图像处理应用篇(九):使用NDVI指数数据批量计算植被覆盖度FVC
1.植被覆盖度相关概念 植被覆盖度( Fractional Vegetation Cover,FVC)指植被(包括叶.茎.枝)在地面的垂直投影面积占统计区总面积的百分比.通常采用像元二分模型计算: 计 ...
- 基于MOD09Q1数据批量计算NDVI
基于MOD09Q1数据批量计算NDVI 通过MRT处理好b01和b02波段后,分别存储至两个不同的文件夹(b01和b02). 接下来打开在arcgis自带的python2.7中键入以下代码:(如果用p ...
- 使用MOD13A1产品NDVI数据计算植被覆盖度
MOD13A1数据分辨率500m,相比A2与A3的分辨率略高,计算结果可能更准确.也要看研究区大小,我的研究区较大,且其他数据分辨率是1KM,其实没必要使用500m的分辨率. MOD13Q1分辨率25 ...
- 基于Python根据置信度区间计算植被覆盖度
"把别人的经验变成自己的,他的本事就大了" 1 简述 大概九天前,我发了篇记录,大致是讲用Python计算Landsat8遥感生态指数RSEI,也就是下篇 "基于Pyth ...
- arcgis计算植被覆盖度
在ArcGIS中计算植被覆盖度的方法有很多,其中一个方法是使用基于遥感影像数据进行分类和统计分析的工具.下面是一个步骤: 1. 导入植被分类图像:将植被分类图像导入到ArcGIS软件中作为处理的输入数 ...
- Volcano架构解读:基于Kubernetes的云原生批量计算平台
Volcano是一个基于Kubernetes的云原生批量计算平台,也是CNCF的首个批量计算项目. Volcano 主要用于AI.大数据.基因.渲染等诸多高性能计算场景,对主流通用计算框架均有很好的支 ...
- c语言学习进阶-C语言带命令行参数的文件数据批量计算
C语言带命令行参数的文件数据批量计算 (1)假设输入文件中的数据为多行整数,把数据文件命名为"InputData.txt",也可以命名为任意的文件名,尝试设计一个c 语言程序, 主 ...
- arcgis重心迁移分析_山东省植被覆盖度变化与气候因子相关性分析
点上方"测绘科学"关注我们 摘 要 植被是陆地生态系统的重要组成部分,能够对陆地生态系统的所有变化做出响应,在能量交换中也起着至关重要的作用,是表现和衡量生态环境状况的主要指标.植 ...
- 像元二分模型计算植被覆盖度
目录 前言 论文要点 计算过程 辅助数据介绍 IDL实现 计算结果 前言 关于改进的像元二分模型第一次出现是在李苗苗老师的博士论文中,但她后来发表的一篇期刊文章把这一部分单独摘了出来并做了应用案例,期 ...
最新文章
- web前端培训要学多久
- 读取Node.js中的环境变量
- 软硬件融合加速技术系列文章
- C++ vector中的resize,reserve,size和capacity函数讲解
- Centos配置在线yum源
- 6月15日起,刷卡机不能自选商户了,这样会有多少卡被封掉?
- filter wiz_Grid Wiz简介:只需一瞬间即可制作出具有自定义浏览器支持CSS网格框架。
- Enable SSH Server
- python对于一元线性回归模型_Python|机器学习-一元线性回归
- python之6-1常用函数
- 算法图解 PDF 原文内容分享
- SpringBoot利用ELK实现日志收集
- Python + Opencv 实现遥感影像tif格式转jpg
- 【TDA2x学习】TDA2HG 知识点总结
- CS224n 深度自然语言处理(四) Note - Backpropagation and computation graphs
- iconv-lite
- Oracle EBS 模拟登入
- 黑苹果常见问题博文及网页部分集锦
- js实现网页漂浮广告
- 动手搭手脚架(一):后台管理系统(springcload)的思维导图
热门文章
- 前端面试之手写代码篇
- 绥化学院计算机专业咋样,绥化学院计算机类(含计算机科学与技术、软件工程)专业2016年在河北理科高考录取最低分数线...
- C++成员是指针的处理(二)-引用技术
- hashmap扩容时死循环问题
- 微型计算机继电保护,电力系统微型计算机继电保护.doc
- 优思学院|2023年如何成为一名六西格玛黑带?
- BitComet(比特彗星)2016官方版
- BitComet(比特彗星)
- 去掉迅雷里碍事的资源信息和广告等等
- 稠密单目SLAM,实时、稠密地重建三维场景