geemap学习笔记045:单波段图像梯度计算

前言

求图像的梯度,一般是指在灰度图像或者彩⾊图像上的操作。数字图像是离散的点值谱,也可以叫⼆维离散函数。图像的梯度就是这个⼆维离散函数的求导。下面将详细介绍earth engine中单波段图像的梯度计算。

1 导入库并显示地图

import ee
import geemap
ee.Initialize()

2 单波段图像的加减乘除幂、平方根、梯度方向运算

# Sentinel-2表面反射率图像。
img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG')# 选取两个波段并将它们显示在地图上。
swir_1 = img.select('B11')
swir_2 = img.select('B12')
Map = geemap.Map()
Map.set_center(-122.276, 37.456, 12)
Map.add_layer(swir_1, {'min': 0, 'max': 3000}, 'swir_1')
Map.add_layer(swir_2, {'min': 0, 'max': 3000}, 'swir_2')# 下面的例子则是展示两个单波段(ee.Image)之间的常用的运算方法
# swir_1+swir_2 相加
addition = swir_1.add(swir_2)
Map.add_layer(addition, {'min': 100, 'max': 6000}, 'addition')# swir_1-swir_2 相减
subtraction = swir_1.subtract(swir_2)
Map.add_layer(subtraction, {'min': 0, 'max': 1500}, 'subtraction')# swir_1*swir_2 相乘
multiplication = swir_1.multiply(swir_2)
Map.add_layer(multiplication, {'min': 1.9e5, 'max': 9.4e6}, 'multiplication')# swir_1/swir_2 相除,除以0,则返回0
division = swir_1.divide(swir_2)
Map.add_layer(division, {'min': 0, 'max': 3}, 'division')# swir_1除以swir_2的余数
remainder = swir_1.mod(swir_2)
Map.add_layer(remainder, {'min': 0, 'max': 1500}, 'remainder')# 进行幂次方运算
exponent = swir_1.pow(3)
Map.add_layer(exponent, {'min': 0, 'max': 2e10}, 'exponent')# 平方根运算
sqrter = swir_1.sqrt()
Map.add_layer(sqrter, {'min': 1, 'max': 123}, 'sqrter')# 梯度方向计算
direction = swir_1.atan2(swir_2)
Map.add_layer(direction, {'min': 0, 'max': 1.6}, 'direction')Map

运算结果
image.png

3 梯度计算

Map = geemap.Map(center=[40, -100], zoom=4)#加载Landsat 8图像并选择全色波段。
image = ee.Image('LANDSAT/LC08/C02/T1/LC08_044034_20140318').select('B8')#计算图像在X和Y方向上的梯度
xyGrad = image.gradient()#计算梯度的大小。波段'x'的平方加上波段'y'的平方,然后开平方根
gradient = xyGrad.select('x').pow(2) \.add(xyGrad.select('y').pow(2)).sqrt()#计算梯度的方向。计算波段向量'y'与波段向量'x'形成的角度
direction = xyGrad.select('y').atan2(xyGrad.select('x'))#展示结果
Map.setCenter(-122.054, 37.7295, 10)
Map.addLayer(direction, {'min': -2, 'max': 2}, 'direction')
Map.addLayer(gradient, {'min': -7, 'max': 7}, 'gradient')Map

运算结果
image.png

后记

大家如果有问题需要交流或者有项目需要合作,可以加Q Q :504156006详聊,加好友请留言“CSDN”,谢谢。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

医药公司重金请我用Ruby采集国产药品官方数据

爬虫程序是由一系列的代码组成的,通过这些代码,爬虫程序可以从网页中获取信息。今天有个医药公司想要一些药品数据,让我里一共Ruby编写一个爬虫程序,采集一些他们需要的药品数据信息,术业有专攻所以就找我这位大神过去…

MCU FT61F14x入门

目录 前言一、CMIDE的使用二、系统时钟与睡眠2.1 上电复位 (POR)与系统复位2.2 振荡器和系统时钟2.3 SLEEP睡眠模式 (POWER-DOWN)2.4 低电压检测/比较器 (LVD) 三、I/O端口与中断四、串口USART五、定时器六、ADC七、EEPROM 前言 FT61F14x是辉芒微电子的微控制器,是一…

BFC 2024寻龙之旅奇幻启程,龙运市集化身沪上摩登祈福地

2024年1月20日起,BFC外滩金融中心(下称BFC)“有龙则灵LONGTIME”奇幻秘境重磅登陆外滩,以东方传统文化为载体,打造当代都市传奇新篇。巨型金红神龙空降BFC,以波澜壮阔之势开启新春之旅。外滩枫径龙运市集迎…

uni微信小程序强制用户更新版本

强制更新的代码参考官方文档 uni.getUpdateManager() | uni-app官网 我这边的如下: //检查版本更新const updateManager uni.getUpdateManager();updateManager.onCheckForUpdate(function (res) {// 请求完新版本信息的回调console.log(res.hasUpdate, "是…

【深度学习目标检测】十三、基于深度学习的血细胞识别(python,目标检测,yolov8)

血细胞计数是医学上一种重要的检测手段,用于评估患者的健康状况,诊断疾病,以及监测治疗效果。而目标检测是一种计算机视觉技术,用于在图像中识别和定位特定的目标。在血细胞计数中,目标检测技术可以发挥重要作用。 首先…

2023年全国职业院校技能大赛(高职组)“云计算应用”赛项赛卷⑨

2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷9 目录 需要竞赛软件包环境以及备赛资源可私信博主!!! 2023年全国职业院校技能大赛(高职组) “云计算应用”赛项赛卷9 模块一 …

Kubernetes/k8s的存储卷/数据卷

k8s的存储卷/数据卷 容器内的目录和宿主机的目录挂载 容器在系统上的生命周期是短暂的,delete,k8s用控制创建的pod,delete相当于重启,容器的状态也会回复到初始状态 一旦回到初始状态,所有的后天编辑的文件都会消失…

Java零基础教学文档第四篇:HTML_CSS_JavaScript(1)

今日新篇章 【CSS】 【主要内容】 CSS简介 CSS基础语法 CSS选择器 CSS常用属性 CSS元素分类 CSS定位 【学习目标】 1.CSS的简介 1.1 CSS定义与解释** CSS是Cascading Style Sheets(层叠样式表单)的简称,CSS就是一种叫做样式表&…

2024年了,Layui再战三年有问题不?

v2.9.3 2023-12-31 2023 收官。 form 优化 input 组件圆角时后缀存在方框的问题 #1467 bxjt123优化 select 搜索面板打开逻辑,以适配文字直接粘贴触发搜索的情况 #1498 Sight-wcgtable 修复非常规列设置 field 表头选项时,导出 excel 出现合计行错位的…

Ubuntu系统中指定端口防火墙状态查询与操作

浏览器访问: 如果遇到如山图所示的情况,既有可能是防火墙的问题。具体解决方案参照如下: 1.指定端口的防火墙状态查询 (1)查询命令 sudo ufw status | grep 8081/tcp #其中8081为要查询的端口号 如果端口是打开的…

TDengine 时序数据库 研究学习以及实战

下载地址:TDengine 发布历史及下载链接 | TDengine 文档 | 涛思数据 下载客户端和服务端 服务端和客户端的安装后 TDengine 客户端连接工具地址:Archive Files | DBeaver Community 添加驱动 新增 》 设置 选择驱动类后 设置里的类名就自动填写了&…

Jetson nano 实时性测试,使用stress-ng 和 cyclictest

系统:ubuntu18.04,Jetpack4.3 打上了实时补丁 安装stress-ng和cyclictest sudo apt-get install stress-ng sudo apt-get install rt-tests 无负载情况的实时性 让两个CPU满载运行60秒 两个CPU满载实时性: 测了一下,4个CPU满载的…

服务端性能测试——性能测试工具JMeter-L1

第一遍没学懂,后续文章会更新~ 目录: 1.JMeter介绍与安装Meter简介JMeter安装2.JMeter的运行JMeter运行、界面功能简介3.使用代理服务器录制请求录制压测脚本(一)Web端脚本录制方法4.测试计划5.线程组6.控制器7.JMeter采样器/取…

【面试突击】分布式技术面试实战

🌈🌈🌈🌈🌈🌈🌈🌈 欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术 的推送 发送 资料 可领取 深入理…

你真的掌握了“C语言分支循环”吗

目录 前言 1. if语句 1.1 if 1.2 else 1.3 分支中包含多条语句 1.4 嵌套if 1.5 悬空else问题 2. 关系操作符 3. 条件操作符 4. 逻辑操作符:&& , || , ! 4.1 逻辑取反运算符 4.2 与运算符 4.3 或运算符 4.4 练习:闰年的判…

Unity WebView 中文输入支持

使用版本:Vuplex 3D WebView for Windows v4.4; 测试环境:unity editor 2020.3.40f1c1、Windows; 1、打开脚本CanvasWebVie!wPrefab 2、找到_initCanvasPrefab方法,约略在459行附近 3、添加一行代码: …

需求变更如此频繁,还甩锅给测试?

文章目录 项目背景需求变更的频繁的原因?生产问题产品复盘小结 项目背景 有一个数据管理平台系统的项目,需求频繁的变更了15次,每次生产上线后总是能出现一些让人意想不到的bug。开发人员和测试人员对这个项目嗤之以鼻,开项目会的…

科学和统计分析软件GraphPad Prism mac介绍说明

GraphPad Prism for Mac是一款科学和统计分析软件,旨在帮助研究者、科学家和学生更轻松地处理和可视化数据。 GraphPad Prism for Mac是一款功能强大、易于使用的科学和统计分析软件,适用于各种类型的数据处理和可视化需求。无论您是进行基础研究、临床试…

Vue组件

一:组件化开发基础 1.组件是什么?有什么用? 组件就是:扩展 HTML 元素,封装可重用的代码,目的是复用 例如:有一个轮播图,可以在很多页面中使用,一个轮播有js,…

如何用GPT来润色论文\生成完整长篇论文?

详情点击链接:如何用GPT来润色论文\生成完整长篇论文? 一OpenAI 1.最新大模型GPT-4 Turbo 2.最新发布的高级数据分析,AI画图,图像识别,文档API 3.GPT Store 4.从0到1创建自己的GPT应用 5. 模型Gemini以及大模型Cl…