GEE必须会教程—植被覆盖度(FVC)计算(代码分享)

植被覆盖度(FVC)的计算是遥感上非常重要的一个研究领域,因事务繁忙,今天小编先带来FVC的全文代码,给大家试试,后期会出一期专栏进行代码的详细介绍:

今天福利满满,直接上代码,修改研究区域即可用。

var region=ee.FeatureCollection('users/hesuixinya511/SouthWest_China');
var empty = ee.Image().toByte();
var outline = ee.Image().toByte().paint({featureCollection:region,color:0,width:2});
Map.addLayer(outline, {palette: "black"}, "outline");
Map.centerObject(region,6);
var MOD13=ee.ImageCollection("MODIS/006/MOD13Q1").select('NDVI').filterBounds(region).filter(ee.Filter.calendarRange(6, 8, 'month')).filter(ee.Filter.calendarRange(2020, 2020, 'year'));
var NDVI=MOD13.select('NDVI').mean().clip(region).divide(10000);
var Vis = {min: 0.0,max: 1.0,palette: ['FFFFFF', 'CE7E45', 'DF923D', 'F1B555', 'FCD163', '99B718', '74A901','66A000', '529400', '3E8601', '207401', '056201', '004C00', '023B01','012E01', '011D01', '011301'],
};
Map.addLayer(NDVI,Vis,'NDVI');
function FVC_Cal_MOD (img){var dict = img.reduceRegion({reducer: ee.Reducer.percentile([5, 95]),geometry: region,scale: 500,maxPixels: 1e13,tileScale: 16});var _p5 = ee.Number(dict.get("NDVI_p5"));var _p95 = ee.Number(dict.get("NDVI_p95"));var imgFVC = ((img.subtract(_p5)).divide(_p95.subtract(_p5))).float();var FVC=((imgFVC.lt(0)).multiply(0)).add(((imgFVC.gt(0)).and(imgFVC.lte(1))).multiply(imgFVC)).add((imgFVC.gt(1)).multiply(1));return FVC.rename("FVC"); 
}
function addFVCbands(img){var FVC=FVC_Cal_MOD (img);return img.addBands(FVC);
}
var FVCcollection=MOD13.select('NDVI').map(addFVCbands);
print(FVCcollection,'FVCcolle');
var FVC=FVCcollection.mean().select('FVC').clip(region);
Map.addLayer(FVC,Vis,'FVC');
function getHistogram(Img,bandname,geometry) {var hist = Img.reduceRegion({reducer: ee.Reducer.autoHistogram(),geometry: geometry,scale: 250,maxPixels: 1e13,});var histArray = ee.Array(hist.get(bandname));var binBottom = histArray.slice(1, 0, 1);var nPixels = histArray.slice(1, 1, null);var histColumnFromArray =ui.Chart.array.values({array: nPixels, axis: 0, xLabels: binBottom}).setChartType('LineChart').setOptions({title: bandname+' histogram',hAxis: {title: bandname},vAxis: {title: 'Pixel count'},pointSize: 0,lineSize: 2,colors: ['1b7837'],legend: {position: 'none'}});return histColumnFromArray;
}
var NDVI_histogram=(getHistogram(NDVI,'NDVI',region));
var FVC_histogram=(getHistogram(FVC,'FVC',region));
print(NDVI_histogram);
print(FVC_histogram);
var FVC_Class=FVC.where(FVC.lt(0.1),1).where(((FVC.gte(0.1)).and(FVC.lt(0.3))),2).where(((FVC.gte(0.3)).and(FVC.lt(0.5))),3).where(((FVC.gte(0.5)).and(FVC.lt(0.7))),4).where(FVC.gt(0.7),5);
Map.addLayer(FVC_Class,{min:1,max:5,palette:['DCDCDC','FFEBCD','99B718','529400','011301']},'FVC_Class');
// 添加图例
function addLegend(palette, names) {
var panel = ui.Panel();
panel.style().set({width: '200px',position: 'bottom-right'
});
var intro = ui.Panel([ui.Label({value: '植被覆盖度等级',style: {fontSize: '20px', fontWeight: 'bold'}}),
]);
panel.add(intro);
Map.add(panel);
// 添加每一列图例颜色以及说明
var addLegendLabel = function(color, name) {var showColor = ui.Label({style: {backgroundColor: color,padding: '8px',margin: '0 0 8px 0'}});var desc = ui.Label({value: name,style: {margin: '0 0 4px 4px'}});//颜色和说明是水平放置return ui.Panel({widgets: [showColor, desc],layout: ui.Panel.Layout.Flow('horizontal')});};//添加所有的图例列表for (var i = 0; i < palette.length; i++) {var label = addLegendLabel(palette[i], names[i]); panel.add(label);}  
//  ui.root.insert(0, legend);
}
var palette = ['DCDCDC','FFEBCD','99B718','529400','011301'];
var names = ["(I) 低覆盖度","(II) 较低覆盖度","(III) 中等覆盖度","(IV) 较高覆盖度","(V) 高覆盖度"];
addLegend(palette, names);
var dict = ee.Image.pixelArea()  .addBands(FVC_Class.int())  .reduceRegion({  reducer:ee.Reducer.sum().group({  groupField:1,  groupName:'type',  }),  geometry:region,  scale:250,  maxPixels:1e13  });  
var groups = ee.List(dict.get("groups"));  
var typeNames = ee.List(["I", "II","III","IV","V"]);  
var featureList = groups.map(function(group){  group = ee.Dictionary(group);  var area = ee.Number(group.get("sum"));  area = area.divide(1000000);  //km2var type = ee.Number(group.get("type"));  var f = ee.Feature(null, {  "type": type,   "area": area,   "name": typeNames.get(type.subtract(1))});  return f;  
});  
var areaFCol = ee.FeatureCollection(featureList);  
var totalArea = ee.Number(areaFCol.aggregate_sum("area"));  
areaFCol = areaFCol.map(function(f){  var typearea = ee.Number(f.get("area"));  f = f.set("type_area", typearea);  return f;  
});  
var Area_table=(ui.Chart.feature.byFeature(areaFCol.select(['name','type_area']),'name').setChartType('Table'));
print(Area_table)

看看结果吧!还顺便帮大家统计了面积和像元直方图哦! 很不错呦!

希望对大家有帮助,有不懂的大家可以私信联系小编,也可以期待后续小编推出的的详细博客,本期就先到这里了,谢谢大家支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1409783.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

信息技术内涵及意义

一、信息技术及其演进趋势 &#xff08;一&#xff09;信息技术概况概念 信息技术&#xff08;Information Technology&#xff0c;IT&#xff09;指“应用在信息加工和处理中的科学、技术与工程的训练方法与管理技巧&#xff1b;上述方法和技巧的应用&#xff1b;计算机及其…

【氮化镓】GaN器件在航天器高可靠正向转换器中应用

文章是发表在《IEEE Journal of Emerging and Selected Topics in Power Electronics》2022年10月第10卷第5期上的一篇关于GaN(氮化镓)器件在航天器高可靠性正向转换器中应用的研究。文章的作者是匹兹堡大学电气与计算机工程系的Aidan Phillips, Thomas Cook和Brandon M. Gra…

【C语言视角】数据结构之~二叉树

前言&#xff1a;总所周知~数据结构的二叉树对于初学者来说是一个十分难理解的知识点。接下来&#xff0c;请阅读本人对二叉树拙劣的理解~ 目录 1.二叉树概念及结构 和性质 二叉树的结构 二叉树的存储结构 2.二叉树顺序结构 3.二叉树链式结构的实现 二叉树层序遍历 1.二叉树…

Flask路由的使用

Flask 是一个轻量级的 Python Web 框架&#xff0c;其简洁的设计使得构建 Web 应用变得轻而易举。其中&#xff0c;路由是 Flask 中至关重要的一部分&#xff0c;它定义了 URL 与视图函数之间的映射关系&#xff0c;决定了用户请求的处理方式。在本文中&#xff0c;我们将深入探…

服务运营 | 精选:用药难?用药贵?运筹学与统计学视角下的药物研发与管理

作者设计了一个多阶段博弈论模型来针对罕见病的不同补贴方案&#xff0c;分析政府、联盟、制药商和患者之间的相互作用。 制药商补贴为 α C \alpha C αC&#xff0c;其中 C C C是研发成本&#xff0c; α ∈ [ 0 , 1 ) \alpha \in [0,1) α∈[0,1)是政府总成本的比例。患者补…

ASP.NET淘宝店主交易管理系统的设计与实现

摘 要 淘宝店主交易管理系统主要采用了ASPACCESS的B/S设计模式&#xff0c;通过网络之间的数据交换来实现客户、商品、交易的管理和对客户、商品、交易统计工作&#xff0c;从而提高淘宝店主在管理网店过程中的工作效率和质量。 系统分为基本资料模块&#xff0c;统计资料模…

系统调用 int 86 的过程

该图借鉴与 Linux系统调用全过程详解-高性能服务器开发&#xff0c;向作者致敬。

Vue 之 在当前页面的实现分页效果

目录 场景实现 场景 假设&#xff0c;我们现在有这么一个需求&#xff1a; 上述图片的空白内容是活动的&#xff0c;由下面的两个按钮控制上一页、下一页&#xff1b;我们应该可以怎么去实现&#xff1f; 实现 思路&#xff1a; 其实这个问题&#xff0c;我们仿照其他的UI框…

关于远程桌面与3389端口的深度解析

当我们谈论远程桌面和3389端口时&#xff0c;我们实际上是在探讨Windows操作系统的一个核心功能&#xff0c;该功能允许用户通过网络从任何地点远程控制和管理计算机。而3389端口&#xff0c;正是这一功能所依赖的通信端口。 一、远程桌面的工作原理 远程桌面协议&#xff08;R…

AppWeb 身份验证绕过漏洞 (CVE-2018-8715)

一、docker的相关操作&#xff08;默认安装了docker-compose&#xff09; 在相应的文件夹位置打开终端后进行如下操作 运行此靶场 sudo docker-compose up -d 查看启动环境 sudo docker ps 关闭此靶场环境 sudo docker-compose down 二、漏洞描述 AppWeb 是一个嵌入式 Web 服…

数组克隆/复制

数组的复制/克隆 1.浅克隆2.深克隆3.使用System.ArrayCopy()方法4.使用Arrays.copyOf()方法5.使用Arrays.copyOfRange()方法6.使用Object.clone()方法 1.浅克隆 将原来数组的地址赋值给新数组&#xff0c;两个数组名指向了同一个数组&#xff0c;修改其中一个中的元素&#xff…

jvm面试题30问

什么是JVM的跨平台&#xff1f; 什么是JVM的语言无关性&#xff1f; 什么是JVM的解释执行 什么是JIT? JIT&#xff1a;在Java编程语言和环境中&#xff0c;即时编译器&#xff08;JIT compiler&#xff0c;just-in-time compiler&#xff09;是一个把Java的字节码&#xff08;…

【精选文献】JAG|基于时序Sentinel-1 SAR影像小农耕作区烟草空间分布制图

目录 文章简介 01 文章摘要 02 研究背景、目标及创新点 03 研究区域与数据集 04 研究方法 05 研究结果 06 研究讨论 07 研究结论 08 文章引用 文章简介 论文名称&#xff1a;Mapping tobacco planting areas in smallholder farmlands using Phenological-Spatial-Te…

【自用】在ipad上安装.ipa文件

借助爱思助手在ipad上安装.ipa文件 爱思助手官网&#xff08;www.i4.cn&#xff09; 对于不能上架 App Store 的应用&#xff0c;可以使用证书签名或使用 Apple ID 签名后正常安装到设备。准备好证书或 Apple ID以及需要签名的 IPA 文件&#xff0c;使用爱思助手就可以快速完成…

54.HarmonyOS鸿蒙系统 App(ArkTS)tcp socket套接字网络连接

54.HarmonyOS鸿蒙系统 App(ArkTS)tcp socket套接字网络连接 import socket from ohos.net.socket; import process from ohos.process; import wifiManager from ohos.wifiManager;import common from ohos.app.ability.common;let tcp socket.constructTCPSocketInstance();…

[数据结构]———交换排序

目录 ​编辑 ​编辑 1.交换排序 第一个定义了一个名为Swap的函数 第二个三数取中 2.冒泡排序 代码解析 冒泡排序的特性总结&#xff1a; 3.快速排序 1. hoare版本 2. 挖坑法 代码解析 3. 前后指针版本 代码解析 1.交换排序 基本思想&#xff1a;所谓交换&#xff0…

Gromacs软件进行蛋白-配体体系MD模拟

1、进行能量最小化 下载官方提供的参数文件&#xff1a;em.mdp &#xff0c;或者直接复制这里&#xff1a; ; LINES STARTING WITH ; ARE COMMENTS title Minimization ; Title of run; Parameters describing what to do, when to stop and what to save integrator …

golang 基础知识细节回顾

之前学习golang的速度过于快&#xff0c;部分内容有点囫囵吞枣的感觉&#xff0c;写gorm过程中有很多违反我常识的地方&#xff0c;我通过复习去修正了我之前认知错误和遗漏的地方。 itoa itoa自增的作用在编辑error code时候作用很大&#xff0c;之前编辑springboot的error c…

Go Web 开发基础【用户登录、注册、验证】

前言 这篇文章主要是学习怎么用 Go 语言&#xff08;Gin&#xff09;开发Web程序&#xff0c;前端太弱了&#xff0c;得好好补补课&#xff0c;完了再来更新。 1、环境准备 新建项目&#xff0c;生成 go.mod 文件&#xff1a; 出现报错&#xff1a;go: modules disabled by G…

《原则》生活和工作 - 三余书屋 3ysw.net

原则&#xff1a;生活和工作 您好&#xff0c;今天我们解读的书是《原则&#xff1a;生活和工作》。这本书和我们之前解读过的《原则&#xff1a;应对变化中的世界秩序》是同一个作者写的。那本书的主题非常宏大&#xff0c;它讨论的是世界运行的原则。而今天我们聊的《原则&a…