GEE入门篇|图像处理(二):在Earth Engine中进行波段计算

目录

波段计算

1.NDVI的计算

2.NDVI 归一化差值的单次运算计算

3.使用 NDWI 的归一化差值


波段计算

        许多指数可以使用 Earth Engine 中的波段运算来计算。 波段运算是对图像中两个或多个波段进行加、减、乘或除的过程。 在这里,我们将首先手动执行此操作,然后向您展示一些在 Earth Engine 中执行波段运算的更有效方法。

1.NDVI的计算

        由于植被在这些波长下的高反射率,红色和近红外波段提供了大量有关植被的信息。 看一下图 1,特别注意植被曲线(以绿色表示)在 NIR 范围(大约 750-900 nm)内具有相对较高的反射率。 另请注意,植被在红色范围(约 630-690 nm)的反射率较低,此时阳光被叶绿素吸收。 这表明,如果可以将红光和近红外波段结合起来,它们将提供有关植被的大量信息。 1972 年 Landsat 1 发射后不久,分析人员致力于设计一个强大的单一值,以传达沿线植被的健康状况。 比例为 -1 到 1。使用以下公式得出 NDVI:

        其中 NIR 和red指的是这两个波段各自的亮度, 该亮度可以用反射率、辐射率或数字量化值(DN) 等单位来表示; NDVI 旨在在使用这些波长的平台上提供几乎相同的值。 该方程的一般形式称为“归一化差值”,分子是“差值”,分母是“归一化”值。 NDVI 的输出在 -1 和 1 之间变化,大量绿色植被的值约为 0.8–0.9, 没有绿叶的值接近 0,水的值接近 -1。

图1 地球表面不同物体在电磁波谱的可见光和红外部分不同波长下的反射量图;1微米(μm)=1000纳米(nm)

        为了计算NDVI,我们将介绍Earth Engine的波段运算实现。 基于云的波段计算是 Earth Engine 最强大的方面之一,因为该平台的计算机针对这种类型的繁重处理进行了优化。 即使在行星尺度上,波段的计算也可以非常快地完成——这个想法在基于云的遥感出现之前是遥不可及的。 Earth Engine 根据需要自动在大量计算机之间进行计算分区,并组合结果进行显示。

        作为示例,让我们检查旧金山的图像(图 2)。

/
// Band Arithmetic
/
// Calculate NDVI using Sentinel 2
// Import and filter imagery by location and date.
var sfoPoint = ee.Geometry.Point(-122.3774, 37.6194);
var sfoImage = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(sfoPoint).filterDate('2020-02-01', '2020-04-01').first();
// Display the image as a false color composite.
Map.centerObject(sfoImage, 11);
Map.addLayer(sfoImage, {
    bands: ['B8', 'B4', 'B3'],
    min: 0,
    max: 2000
}, 'False color');

图2 旧金山及周边地区的假彩色 Sentinel-2 图像

        Earth Engine 中最简单的数学运算是加法、减法、乘法和除法。 让我们选择近红外和红光波段,并使用这些操作来计算图像的 NDVI。

// Extract the near infrared and red bands.
var nir = sfoImage.select('B8');
var red = sfoImage.select('B4');
// Calculate the numerator and the denominator using subtraction and addition respectively.
var numerator = nir.subtract(red);
var denominator = nir.add(red);
// Now calculate NDVI.
var ndvi = numerator.divide(denominator);
// Add the layer to our map with a palette.
var vegPalette = ['red', 'white', 'green'];
Map.addLayer(ndvi, {
    min: -1,
    max: 1,
    palette: vegPalette
}, 'NDVI Manual');

        检查生成的索引,如果需要,使用检查器挑选出植被和非植被区域的像素值(图 3)。使用这些简单的算术工具,您可以构建几乎任何索引或开发和可视化您自己的索引。 Earth Engine 允许您快速、轻松地计算和显示大范围内的指数。

图3 使用 Sentinel-2 计算的 NDVI,请记住,NDVI 的输出在− 1 和 1 之间变化,大量绿色植被的值约为 0.8–0.9, 没有绿叶时的值接近 0,而有水时的值接近 − 1 

2.NDVI 归一化差值的单次运算计算

        像 NDVI 这样的归一化差异在遥感中非常常见,因此 Earth Engine 提供了使用归一化差异方法在单个步骤中执行特定序列的减法、加法和除法的能力。 此方法采用输入图像以及您指定的波段,并创建这两个波段的标准化差异。 之前使用波段算法创建的 NDVI 计算可以用一行代码替换:

// Now use the built-in normalizedDifference function to achieve the same outcome.
var ndviND = sfoImage.normalizedDifference(['B8', 'B4']);
Map.addLayer(ndviND, {
    min: -1,
    max: 1,
    palette: vegPalette
}, 'NDVI normalizedDiff');

        请注意,向 normalizedDifference 提供两个波段的顺序很重要。 我们使用近红外波段 B8 作为第一个参数,使用红波段 B4 作为第二个参数。 如果您的两次 NDVI 计算在绘制到屏幕上时看起来不相同,请检查以确保 NIR 和红色波段的顺序正确。

3.使用 NDWI 的归一化差值

        如前所述,归一化差异法用于许多不同的指数。 让我们将相同的归一化差异方法应用于另一个指数。归一化差异水分指数(NDWI)是由Gao(1996)开发的作为植被水分含量的指数。 该指数对植被冠层液体含量的变化敏感。 这意味着该指数可用于检测经历干旱条件的植被或区分作物
灌溉水位。 在干旱地区,灌溉作物可以与自然植被区分开来, 有时也称为归一化差异水分指数 (NDMI)。 NDWI 的公式如下:

        其中 NIR 是近红外,中心在 860 nm (0.86 µm) 附近,SWIR 是短波红外,中心在1240 nm (1.24 µm) 附近。

        使用归一化差异方法在 Earth Engine 中计算并显示 NDWI。 请记住,对于 Sentinel-2,B8 是 NIR 波段,B11 是 SWIR 波段。

// Use normalizedDifference to calculate NDWI
var ndwi = sfoImage.normalizedDifference(['B8', 'B11']);
var waterPalette = ['white', 'blue'];
Map.addLayer(ndwi, {
    min: -0.5,
    max: 1,
    palette: waterPalette
}, 'NDWI');

        检查到NDVI 识别为拥有大量植被的地图区域,注意哪些颜色更蓝, 这是含水量较高的植被(图 4)。

图4 Sentinel-2 在旧金山上空显示的 NDWI 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

政安晨:【掌握AI的深度学习工具Keras API】(二)—— 【使用内置的训练循环和评估循环】

渐进式呈现复杂性,是指采用一系列从简单到灵活的工作流程,并逐步提高复杂性。这个原则也适用于模型训练。Keras提供了训练模型的多种工作流程。这些工作流程可以很简单,比如在数据上调用fit(),也可以很高级,比如从头开…

ShardingSphere inline表达式线程安全问题定位

ShardingSphere inline表达式线程安全问题定位 问题背景 春节期间发现 ShardingSphere 事务 E2E 偶发执行失败问题,并且每次执行失败需要执行很久,直到超时。最终定位发现 inline 表达式存在线程安全问题。本文记录定位并解决 inline 表达式线程安全问…

实验笔记之——Ubuntu20.04配置nvidia以及cuda并测试3DGS与SIBR_viewers

之前博文测试3DGS的时候一直用服务器进行开发,没有用过笔记本,本博文记录下用笔记本ubuntu20.04配置过程~ 学习笔记之——3D Gaussian Splatting源码解读_3dgs运行代码-CSDN博客文章浏览阅读3.2k次,点赞34次,收藏62次…

编写科技项目验收测试报告需要注意什么?第三方验收测试多少钱?

科技项目验收测试是一个非常重要的环节,它对于确保科技项目的质量和可用性起着至关重要的作用。在项目完成后,进行科技项目验收测试可以评估项目的功能、性能和可靠性等方面,并生成科技项目验收测试报告,以提供给项目的相关方参考…

keil uv5 map文件解析

map参考博客:https://www.csdn.net/tags/MtjaYgwsMTY2NzUtYmxvZwO0O0OO0O0O.html 配置外部flash存储代码:https://strongerhuang.blog.csdn.net/article/details/51485903?spm1001.2101.3001.6650.4&utm_mediumdistribute.pc_relevant.none-task-bl…

使用 Helm 安装 极狐GitLab

本篇作者 徐晓伟 使用 Helm 简便快捷的部署与管理 极狐GitLab 前提条件 k8s 完成 helm 的配置 k8s 完成 ingress 的配置 内存至少 10G 演示环境是 龙蜥 Anolis 8.4(即:CentOS 8.4)最小化安装k8s 版本 1.28.2calico 版本 3.26.1nginx ingre…

Dockerfile(5) - CMD 指令详解

CMD 指定容器默认执行的命令 # exec 形式,推荐 CMD ["executable","param1","param2"] CMD ["可执行命令", "参数1", "参数2"...]# 作为ENTRYPOINT的默认参数 CMD ["param1","param…

高瓴张磊入籍新加坡,这代表了什么?

文|新熔财经 作者|显洋 这两天,海外媒体报道了中国投资大佬与企业家拿到新加坡永居的事儿。本来乏善可陈的文章,却因为一个人名的出现变得有趣起来——高瓴创始人张磊,一位曾经在国内如日中天,但今天鲜少…

论文阅读:2020GhostNet华为轻量化网络

创新:(1)对卷积进行改进(2)加残差连接 1、Ghost Module 1、利用1x1卷积获得输入特征的必要特征浓缩。利用1x1卷积对我们输入进来的特征图进行跨通道的特征提取,进行通道的压缩,获得一个特征浓…

解放设计师的创造力:免版的图片素材

title: 解放设计师的创造力:免版的图片素材 date: 2024/2/29 15:10:19 updated: 2024/2/29 15:10:19 tags: 版权无忧创意自由设计效率视觉提升广告设计UI/UX素材移动应用 在设计领域,设计师常常需要使用图片素材来增加作品的视觉效果。然而,…

Docker技术概论(1):Docker与虚拟化技术比较

Docker技术概论(1) Docker与虚拟化技术比较 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https:…

从 Flask 切到 FastAPI 后,起飞了!

我这几天上手体验 FastAPI,感受到这个框架易用和方便。之前也使用过 Python 中的 Django 和 Flask 作为项目的框架。Django 说实话上手也方便,但是学习起来有点重量级框架的感觉,FastAPI 带给我的直观体验还是很轻便的,本文就会着…

LeetCode34.在排序数组中查找元素的第一个和最后一个位置

题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 输入…

尚硅谷Java数据结构--希尔排序

插入排序的问题🎈: arr{2,3,4,5,6,0,9,7,8}; 当0作为插入元素的时候,其待插入下标与原下标相差很远,需要进行多次比较和移动。 希尔排序则是先将下标相差一定距离gap的元素分为一组,进行插入排序;再逐渐将距…

Flutter(四):SingleChildScrollView、GridView

SingleChildScrollView、GridView 遇到的问题 以下代码会报错: class GridViewPage extends StatefulWidget {const GridViewPage({super.key});overrideState<GridViewPage> createState() > _GridViewPage(); }class _GridViewPage extends State<GridViewPage&g…

Maven下载、安装、配置教程

maven是一个项目管理的工具&#xff0c;maven自身是纯java开发的&#xff0c;可以使用maven对java项目进行构建、依赖管理。 通常我们靠手动下载jar包引入项目中是非常浪费时间的&#xff0c;我们可以通过maven工具帮我们导入jar包提高开发效率。 第一步&#xff1a;下载Mave…

Docker技术概论(3):Docker 中的基本概念

Docker技术概论&#xff08;3&#xff09; Docker 中的基本概念 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://…

vivo 在离线混部探索与实践

作者&#xff1a;来自 vivo 互联网服务器团队 本文根据甘青、黄荣杰老师在“2023 vivo开发者大会"现场演讲内容整理而成。 伴随 vivo 互联网业务的高速发展&#xff0c;数据中心的规模不断扩大&#xff0c;成本问题日益突出。在离线混部技术可以在保证服务质量的同时&…

【探索AI】十二 深度学习之第2周:深度神经网络(一)深度神经网络的结构与设计

第2周&#xff1a;深度神经网络 将从以下几个部分开始学习&#xff0c;第1周的概述有需要详细讲解的的同学自行百度&#xff1b; 深度神经网络的结构与设计 深度学习的参数初始化策略 过拟合与正则化技术 批标准化与Dropout 实践&#xff1a;使用深度学习框架构建简单的深度神…

红队基础设施建设

文章目录 一、ATT&CK二、T1583 获取基础架构2.1 匿名网络2.2 专用设备2.3 渗透测试虚拟机 三、T1588.002 C23.1 开源/商用 C23.1.1 C2 调研SliverSliver 对比 CS 3.1.2 CS Beacon流量分析流量规避免杀上线 3.1.3 C2 魔改3.1.4 C2 隐匿3.1.5 C2 准入应用场景安装配置说明工具…