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

news2025/6/22 3:17:40

前言

求图像的梯度,一般是指在灰度图像或者彩⾊图像上的操作。数字图像是离散的点值谱,也可以叫⼆维离散函数。图像的梯度就是这个⼆维离散函数的求导。下面将详细介绍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.coloradmin.cn/o/1373617.html

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

相关文章

文心大模型融入荣耀MagicOS!打造大模型“端云协同”创新样板

2024年1月10日,在荣耀MagicOS 8.0发布会及开发者大会上,荣耀终端有限公司CEO赵明宣布了“百模生态计划”,并与百度集团执行副总裁、百度智能云事业群总裁沈抖共同宣布,百度智能云成为荣耀大模型生态战略合作伙伴。 沈抖在现场演讲…

SPDK As IPU Firmware

对于不熟悉术语Infrastructure Processing Unit (IPU, 基础设施处理器)的同学,IPU是PCIe形态的卡,连接到主机系统后可以卸载主机的“基础设施”工作。它通常是面向云服务商或者超融合服务提供商的。对于熟悉SPDK的开发人员来理解,这些卡通常具…

楼宇管理新智慧:Panorama SCADA楼宇管理系统应用实例

一、背景介绍 楼宇管理系统旨在集中控制和监测楼宇运营,涵盖暖通空调(HVAC)、照明、电力系统、消防和安全系统等。通过直观的用户界面,用户得以实时监测和精准掌控这些系统,从而提升能源效率、确保设备正常运行&#…

有哪些好用的防蓝光护眼台灯?防蓝光护眼灯品牌排行揭晓

对于大多数人来说,护眼灯已经不是什么新鲜概念。为什么要买护眼灯?相信很多人的回答都是“为了孩子”。为了保护儿童视力健康,越来越多家长选择为孩子购买一台护眼灯,也造就了这个相当具有中国特色的庞大市场。很多家长不放心台灯…

Gin CORS 跨域请求资源共享与中间件

Gin CORS 跨域请求资源共享与中间件 文章目录 Gin CORS 跨域请求资源共享与中间件一、同源策略1.1 什么是浏览器的同源策略?1.2 同源策略判依据1.3 跨域问题三种解决方案 二、CORS:跨域资源共享简介(后端技术)三 CORS基本流程1.CORS请求分类2.基本流程 四、CORS两种…

Cesium 点击实体显示可随地图移动的弹框

实体数据加载到地图上之后,使用点击事件拾取实体获取实体信息 clickPop() {let _this this;// 实体的点击事件_this.drawHandler new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);_this.drawHandler.setInputAction(function (click) {let pickedObject…

03-JVM虚拟机-课堂笔记

3-JVM虚拟机 灵魂三问: JVM是什么? JVM广义上指的是一种规范。狭义上的是JDK中的JVM虚拟机。 为什么要学习JVM? 面试过程中,经常会被问到JVM。 研发过程中,肯定会面临一些重难点问题与JVM有关系。例如&#xff1a…

【虚拟仪器Labview】习题T1-详解

目录 题目要求思路计时部分详解实现第二个部分:将X*3Y 的的结果 Z与100进行比较。全部完成 题目要求 从前面板输入两个浮点数:X,Y,计算 X*3Y 的的结果 Z,在前面板显示计算结果。并且判断 Z是否小于 100,如果 Z 小于 100,前面板中的…

《Spring》--使用application.yml特性提供多环境开发解决方案/开发/测试/线上--方案2

阿丹-有话说: 第二种多环境的配置选择解决方案,这个更加的灵活没在配置方面都选择了一种yml的书写方式。 原理: 在Spring Boot中,spring.profiles.active 属性用于指定当前应用程序应激活哪个环境配置。当Spring Boot应用启动时…

postman 之 接口请求

一、前言 1. 安装 2. 主界面 3. 请求区域 Body下主要包含以下4中格式 form-data:混合表单,支持上传文件x-www-form-urlencoded:文本表单raw:原始格式,支持JSON/XML格式(后面可选择)binary&am…

Mysql是怎么运行的(上)

文章目录 Mysql是怎么运行的Mysql处理一条语句的流程连接管理解析与优化存储引擎 基本配置配置文件系统变量状态变量字符集四种重要的字符集MySQL中的utf8和utf8mb4各级别的字符集和比较规则MySQL中字符集的转换排序规则产生的不同的排序结果 InnoDB存储引擎介绍COMPACT行格式介…

玉米浸泡液植酸吸附树脂

植酸为环己六醇六磷酸,分子量为660,植酸钠为环己六醇六磷酸钠(Na12C6H6O24P6)分子量为924。 植酸用途:在食品工业中植酸钠可用作食品添设剂,菲丁(植酸钙)可用于生产肌醇&#xff0c…

MySQL 从零开始:02 MySQL 安装

文章目录 1、下载 MySQL 安装程序2、安装 MySQL 要操作 MySQL ,首先要安装 MySQL ,本文将一步步展示如何安装 MySQL,简直详细到令人发指。 环境: 操作系统:Windows10 64位MySQL版本:社区版 8.0.11.0 1、下…

GB28181/GB35114平台LiveGBS何如添加白名单,使指定海康、大华、华为等GB28181摄像头或录像机设备可以免密接入

1、什么是GB/T28181级联 协议定义中的解释如下: 级联 cascadednetworking 两个信令安全路由网关之间按照上下级关系连接,上级中心信令控制服务器通过信令安全路由网 关可调用下级中心信令控制服务器所管辖的监控资源,下级中心信令控制服务器通过信令安全路由网 关向…

打包时,自动更新版本号,清空缓存

1.创建 addVersion.js 文件 let fs require(fs);function getPackageJson(){return JSON.parse(fs.readFileSync(./package.json)); } try{let packageJson getPackageJson();//把分割的数组项转成数字,不然拼接就是字符串拼接let arr packageJson.version.spl…

pyqt treeWidget树生成

生成treeWidget树与获取treeWidget树节点的数据 # encodingUTF-8 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QTreeWidgetItem, QLineEdit, QSpinBox, QComboBox from PyQt5.QtWidgets import QWidget from release_test import Ui_F…

Visual Studio 新特性:对 include 指令进行智能诊断

今天,我们很高兴地宣布新功能:#include 语言智能诊断。 此功能自 Visual Studio 2022 v17.9 预览版2 中可用。通过此新功能,您可以获取到有关每个 include 的引用和生成时间的详细信息,从而更好地了解 #include 指令的行为。 &g…

pgsql中epoch用法

问题描述 提示:这里描述项目中遇到的问题: 昨天又被叫回来加班,説是数据问题,又回来加班搞,到了以后发现数据没问题,那就是查询接口的事了,写查询接口的人用时间戳去查询,明明直接可以直接用日期查询,非得改成时间戳查询,结果还是有问题,接下来复盘一下…

ffmpeg写YUV420文件碰到阶梯型横线或者条纹状画面的原因和解决办法

版权声明:本文为CSDN博主「文三~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/asdasfdgdhh/article/details/112831581 留作备份 阶梯型横线: 条纹状画面…

x-cmd pkg | grex - 用于生成正则表达的命令行工具

目录 简介首次用户生成的正则表达式与 perl 和 rust 兼容支持 Unicode 符号友好的用户体验进一步阅读 简介 grex 是一个旨在简化创作正则表达式的复杂且繁琐任务的库和命令行程序。这个项目最初是 Devon Govett 编写的 JavaScript 工具 regexgen 的 Rust 移植。但 regexgen 在…