GEE 案例:利用sentinel-2数据计算的NDVI指数对比植被退化情况

目录

简介

NDVI指数

数据

函数

ui.Chart.image.series(imageCollection, region, reducer, scale, xProperty)

Arguments:

Returns: ui.Chart

代码

结果


简介

利用sentinel-2数据计算的NDVI指数对比植被退化情况

NDVI指数

NDVI(Normalized Difference Vegetation Index,归一化植被指数)是通过计算红外波段和可见光波段的反射值之间的差异来评估植被的状况。利用NDVI指数可以监测植被的退化情况。

植被退化指的是植被由于外界因素(如气候变化、土地利用变化、人为活动等)导致的健康状况恶化,包括植被生长减缓、植被凋落、植被数量减少等。

利用NDVI指数监测植被退化的步骤如下:

  1. 收集遥感数据:利用遥感技术获取适当的遥感数据,包括可见光和红外波段的反射值数据。

  2. 计算NDVI指数:使用以下公式计算NDVI指数:NDVI = (NIR - Red) / (NIR + Red),其中NIR代表红外波段的反射值,Red代表可见光波段的反射值。

  3. 分析NDVI图像:将计算得到的NDVI指数数据转化成图像,通过观察图像中不同区域的NDVI值,可以评估该区域的植被状况。

  4. 对比分析:将监测期的NDVI图像与历史数据进行对比,可以发现植被退化的迹象。如果当前的NDVI值较低,且较之前的数据有显著下降,说明该区域植被退化程度较高。

  5. 确认植被退化原因:通过对退化区域进行实地调查或者结合其他环境数据,可以确定植被退化的原因,为进一步的植被恢复提供依据。

利用NDVI指数监测植被退化可以及时发现退化现象,并采取相应的措施进行修复,保护生态环境。

数据

哨兵2号(Sentinel-2)是一颗由欧空局(European Space Agency)和欧盟委员会合作发射的地球观测卫星。哨兵2号搭载了多光谱成像仪(Multispectral Imager,MSI),能够以高分辨率获取红外、可见光和近红外波段的影像数据。该卫星具有全球覆盖、高重复频率和较高空间分辨率等特点,可用于植被监测、土地利用/覆盖变化监测、水体监测等应用。

基于哨兵2号影像进行NDVI计算的步骤如下:

  1. 获取哨兵2号影像数据:可以通过欧空局的数据存档或其他相关数据提供商获取哨兵2号影像数据。这些数据通常以每个波段的辐射校正反射率值的形式提供。

  2. 选择红外波段和可见光波段:哨兵2号影像提供了多个波段的数据,应选择红外波段和可见光波段用于NDVI计算。一般而言,红外波段对应的波长范围为0.73-0.94微米,可见光波段对应的波长范围为0.49-0.67微米。

  3. 计算NDVI指数:根据所选的红外和可见光波段数据,使用以下公式计算NDVI指数:NDVI = (NIR - Red) / (NIR + Red),其中NIR代表红外波段的反射率值,Red代表可见光波段的反射率值。这个计算过程可以针对每个像素进行执行。

  4. 可视化NDVI图像:将每个像素计算得到的NDVI值转化为图像,可以使用不同颜色表示不同的NDVI值范围。一般而言,绿色表示较高的NDVI值,表示较好的植被生长状况,红色表示较低的NDVI值,表示较差的植被生长状况。

基于哨兵2号影像进行NDVI计算可以获得高分辨率的植被指数图像,从而对植被的健康状况和退化情况进行定量和定性的评估。这有助于实时监测植被的变化,了解植被退化的程度,并采取适当的措施进行保护和恢复。

函数

ui.Chart.image.series(imageCollection, region, reducerscalexProperty)

Generates a Chart from an ImageCollection. Plots derived values of each band in a region across images. Usually a time series.

  • X-axis: Image, labeled by xProperty value.

  • Y-axis: Band value.

  • Series: Band names.

Returns a chart.

Arguments:

imageCollection (ImageCollection):

An ImageCollection with data to be included in the chart.

region (Feature|FeatureCollection|Geometry):

The region to reduce.

reducer (Reducer, optional):

Reducer that generates the values for the y-axis. Must return a single value. Defaults to ee.Reducer.mean().

scale (Number, optional):

Scale to use with the reducer in meters.

xProperty (String, optional):

Property to be used as the label for each image on the x-axis. Defaults to 'system:time_start'.

Returns: ui.Chart

代码

var cor = [[24.664959178687543,64.99123253965863],[24.66427253317973,64.99087875350403],[24.66504500937602,64.98997612402353],[24.664948449851483,64.98982643880142],[24.665688739539593,64.98954974572945],[24.666203723670453,64.98957242559722],[24.666203723670453,64.98957242559722],[24.66606424880168,64.99008498547678],[24.664959178687543,64.99123253965863]]var geometry = ee.Geometry.Polygon(cor)Map.centerObject(geometry)var sen = ee.ImageCollection("COPERNICUS/S2_SR_HARMONIZED")
.filterBounds(geometry)
.filterDate('2017','2024')
.filter(ee.Filter.calendarRange(6,9,'month'))
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE',10))
.map(function(img){var bands = img.select('B.*').multiply(0.0001)var ndvi = bands.normalizedDifference(['B8','B4']).rename('ndvi')return ndvi.copyProperties(img, ['system:time_start', 'system:time_end'])});print(ui.Chart.image.series(sen, geometry, ee.Reducer.median(), 10, 'system:time_start').setChartType('ColumnChart'))var before = sen.filterDate('2018','2019').median().rename('before')
var after = sen.filterDate('2023', '2024').median().rename('after')Map.addLayer(before.clip(geometry),[],'before',false)
Map.addLayer(after.clip(geometry),[],'after',false)print(ui.Chart.image.histogram(before, geometry, 10).setOptions({title: 'before'}))print(ui.Chart.image.histogram(after, geometry, 10).setOptions({title: 'after'}))var tree_area = sen.map(function(img){var thr = img.gt(0.5);var mask = thr.updateMask(thr);var area = mask.multiply(ee.Image.pixelArea())return area.copyProperties(img, img.propertyNames())});print(ui.Chart.image.series(tree_area, geometry, ee.Reducer.sum(),10, 'system:time_start').setChartType('ColumnChart'))

结果

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

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

相关文章

遥感图像目标检测数据集-DOTA数据集

DOTA数据集(v1.0版本和v1.5版本),训练集1411张,验证集458张,测试集若干,共16种类别。数据集图片大小不一,需要进行裁剪,可设置裁剪重叠大小以及裁剪图片大小。此处按照默认参数裁剪,重叠200像素…

二极管选型

稳压二极管(齐纳二极管) 肖特基二极管 发光二极管 TVS二极管

记录一下ElementUI 3 在浏览器导入, table表格显示问题

当时问题忘了截图, 现在通过文字记录一下问题 我直接在html了引入 vue3 和 ElementUI 3 , 使用了table组件, 但是表格的td 总是只显示一列, 问题是我的 el-table-column 标签 没有结束标签 , 在vue文件模块化里写不需要结束标签, 在浏览器里无法直接识别出来, 所以他是渲染了第…

基于yolov8的肉鸡健康状态检测系统python源码+onnx模型+评估指标曲线+精美GUI界面

【算法介绍】 基于YOLOv8的肉鸡健康状态检测系统是一个先进的目标检测应用,旨在通过图像分析实现对肉鸡健康状态的快速、准确评估。该系统利用了YOLOv8模型的尖端技术,该模型由Ultralytics公司开发,具有卓越的检测精度和速度。 YOLOv8模型采…

C++---类与对象一

类的定义 class className{//成员字段//成员函数 };class定义类的关键字,className是自己决定的类名,{ } 为类的主体,花括号里是类的内容。类的内容大致分为类的成员属性(变量)和类的成员函数。注意定义类后面需要跟;…

理解人工智能、机器学习与深度学习的关系

1. 人工智能(AI)宏观的智能概念 人工智能(Artificial Intelligence, AI)是一个广泛的领域,涉及设计和开发能够表现出智能行为的计算机系统。这些系统可以模拟或执行类似于人类的认知功能,如学习、推理、决…

react 路由 react-router/react-router-dom

react-router-dom中包含react-router 安装前者即可 npm install react-router-dom -Simport { BrowserRouter as Router, Route, Link, Switch } from react-router-dom <Switch>组件&#xff0c;和switch语法一样&#xff0c;遇到匹配就结束&#xff0c;后面的<Route…

如何全面优化MySQL性能

MySQL数据库性能优化是一项复杂而细致的任务&#xff0c;它涉及到数据库设计、查询优化、服务器配置等多个方面。以下是几个关键的步骤和策略&#xff0c;旨在帮助提升MySQL数据库的运行效率&#xff1a; 优化数据库设计 选择合适的数据类型&#xff1a;合理选择数据类型不仅能…

树——数据结构

这次我来给大家讲解一下数据结构中的树 1. 树的概念 树是一种非线性的数据结构&#xff0c;它是由n(n>0&#xff09;个有限结点组成一个具有层次关系的集合。 叫做树的原因&#xff1a;看起来像一棵倒挂的树&#xff0c;根朝上&#xff0c;叶朝下。 特殊结点&#xff1a…

vmware中的ubuntu系统扩容分区

1.虚拟机关机 右击虚拟机/设置&#xff0c;进入虚拟机设置 3.启动虚拟机&#xff0c;进入命令行 4.fdisk -l查看要扩展的分区名 5.resize要扩容的分区 su root parted /dev/sda resizepart 3 100% fdisk -l resize2fs /dev/sda3 df -T完成 6.其他 进入磁盘管理 fdisk /d…

Doker学习笔记--黑马

介绍&#xff1a;快速构建、运行、管理应用的工具 在不同的服务器上部署多个应用&#xff0c;但是往往不同应用之间会有冲突&#xff0c;因为它们所依赖的环境&#xff0c;函数库&#xff0c;配置都不一样&#xff0c;此时docker在运行时形成了一个隔离环境&#xff08;容器&am…

idea上传jar包到nexus

注意&#xff1a;确保idea中项目为maven项目&#xff0c;并且在nexus中已经创建了maven私服。 1、配置pom.xml中推送代码配置 <distributionManagement> <repository> <id>releases</id> <url>http://127.0.0.1:8001/repository/myRelease/<…

c++9月18日

1&#xff0c;斐波那契数列 int str 0;int num 0;int kgo 0;int qto 0;cout<<"请输入字符串";string str1;getline(cin,str1);for(int i0;i<(int)(str1.size());i){if((str1.at(i)>65&&str1.at(i)<90)||(str1.at(i)>97&&str1.…

【oj刷题】二分查找篇:二分查找算法的原理和应用场景

前言&#xff1a; 二分查找算法&#xff0c;又称折半查找算法&#xff0c;是一种在有序数组中查找特定元素的高效查找方法。它通过将搜索区间不断缩小一半&#xff0c;从而在对数时间内找到目标元素。二分查找是基于分治策略的一种典型应用&#xff0c;能够高效的处理许多问题&…

Golang Beego+Vue打造的高校科研工作管理系统,让信息发布更及时,项目管理更透明

&#x1f34a;作者&#xff1a;计算机毕设匠心工作室 &#x1f34a;简介&#xff1a;毕业后就一直专业从事计算机软件程序开发&#xff0c;至今也有8年工作经验。擅长Java、Python、微信小程序、安卓、大数据、PHP、.NET|C#、Golang等。 擅长&#xff1a;按照需求定制化开发项目…

基于深度学习的眼部疾病检测识别系统

温馨提示&#xff1a;文末有 CSDN 平台官方提供的学长 QQ 名片 :) 1. 项目简介 眼部疾病的早期诊断对于防止视力下降乃至失明至关重要。然而&#xff0c;专业的医疗资源分布不均&#xff0c;尤其是在偏远地区&#xff0c;人们很难获得专业的眼科医生提供的及时诊断服务。本系统…

密码学基础 C#实现门限共享密码算法

加密社 概念 门限秘密共享是一种密码学技术&#xff0c;将秘密 S 分割为 n 个部分&#xff0c;并将这些部分分发给 n 个参与者。所谓门限&#xff0c;是在分割这些秘密的时候&#xff0c;设置一个大小位于 1 和 n 之间的 k 值&#xff0c;使得给定任意 k−1 个或更少的秘密份额…

PaddleNLP本文分类及docker部署流程

本文记录使用PaddleNLP进行文本分类的全流程 参考&#xff1a;https://github.com/PaddlePaddle/PaddleNLP/tree/develop/legacy/applications/text_classification/multi_class 文章目录 1. 数据准备2. 模型训练2.1 准备关键库2.2 模型训练&#xff06;验证2.3 模型测试2.4 结…

comsol多物理场仿真技术与应用入门教学

一、COMSOL 多物理场仿真基础强化 几何建模 1、二维对象和三维对象的建模流程和快速建模方法&#xff0c;通过二维对象构建三维对象、三维提取二维结构等详细操作&#xff1b; 2、缩放、拉伸、阵列、移动、拷贝、镜像、旋转、线段、参数化曲线、布尔运算、转换等常用操作演示…

Java迭代器Iterator和Iterable有什么区别?

在 Java 中&#xff0c;我们对 List 进行遍历的时候&#xff0c;主要有这么三种方式。 第一种&#xff1a;for 循环。 for (int i 0; i < list.size(); i) {System.out.print(list.get(i) "&#xff0c;"); } 第二种&#xff1a;迭代器。 Iterator it list.i…