1.数据采集

我使用ArcGIS Pro 中的Planet Imagery插件下载了 2023 年 6 月 25 日的安卡拉莫干湖卫星图像。

没有任何

图 1:使用 Planet 插件下载卫星图像

没有任何

图 2:下载图像的日期和传感器选择

我查阅的研究中指出,使用无降水时期的卫星图像对于水质测定的准确性至关重要。考虑到这一点,我检查了夏季月份的图像,并下载了2023年6月25日的无云卫星图像。

没有任何

图3:用于分析的卫星图像

没有任何

图4:图层窗口中的卫星图像显示

我们希望提取用于计算与水质检测相关的指数的波段,并在“栅格计算器”中使用它们。

没有任何

图 5:我们使用“提取波段”工具提取要使用的波段。

没有任何

图 6:提取 2 号波段

我们对其他乐队重复同样的过程。

没有任何

图 7:地图上 2 号波段的表示

没有任何

图 8:层窗口中 2 号波段的显示

没有任何

图 9:所有添加的波段

2. 归一化差异水体指数(NDWI)

NDWI 用于自动检测代表水面的像素,使用绿光和近红外波段。一些研究表明,MNDWI(修正归一化差异水体指数)能提供更准确的结果。[ 2 ]。然而,由于 Planet 图像中没有 SWIR 波段,因此我使用 NDWI 来检测水面。NDWI 公式如下:[ 3 ]

NDWI = (绿色 — NIR) / (绿色 + NIR)

我们用“栅格计算器”应用公式

没有任何

图10:NDWI计算

没有任何

图11:研究区域的NDWI地图

文献中指出,正的NDWI值代表水像素[ 4 ]。因此,我们提取正的NDWI值;

没有任何

图 12:提取水像素

没有任何

图 13:数字 1 代表的水像素

我们要从地图中删除标记为0的像素;

没有任何

图 14:地图上仅显示水像素

没有任何

图15:地图上水体像素的显示

当我们仔细检查新创建的地图时,我们发现某些部分缺少像素;

没有任何

图 16:NDWI 分析期间形成的间隙的放大视图

由于这些数据将被转换为多边形并用作湖泊边界数据,因此需要填补这些空白。我们将使用焦点统计工具来实现这一点。

没有任何

图 17:运行工具并删除间隙

使用焦点统计工具,我们根据每个像素的相邻像素组成的 3x3 矩形,将这些像素中的大部分像素的值分配给主像素。我们对每个水像素都进行了同样的操作。

没有任何

图18:以光栅格式显示的结果图

我们将栅格格式的数据转换为多边形以用作边界数据。

没有任何

图19:将水面数据转换为多边形

没有任何

图20:矢量格式的水面数据

仔细查看地图,发现一些没有水面的区域也显示为水面。我手动删除了这些部分。

没有任何

图21:部分无水面的地方显示为水面

3. 归一化差异浊度指数(NDTI)

NDTI 指数用于评估湖泊和池塘中水体的浊度 [ 3 ]。NDTI 计算中使用绿色和红色波段。通常,清水在绿色波段的反射率高于红色波段。NDTI 结果值的范围从 -1 到 1,正值表示浊度较高,负值表示浊度较低 [ 2 ]。NDTI 公式如下:[ 3 ]

NDTI = (红色 — 绿色)/(红色 + 绿色)

没有任何

图22:NDTI计算

没有任何

图23:研究区域的NDTI地图

4. 归一化叶绿素指数(NDCI)

叶绿素a水平的估算是利用NDCI指数以及红光和近红外波段进行的。该指数被广泛用于估算湿地的叶绿素a水平。NDCI公式如下:[ 2 ]

NDCI = (近红外 - 红色) / (近红外 + 红色)

没有任何

图24:NDCI计算

没有任何

图25:研究区域NDCI图

5. 塞氏盘透明度(SDT)

SDT 指数用于确定阳光能够穿透湖面的深度。抑制光线穿透的因素包括藻类、浮游动物、水色和淤泥。由于藻类通常是水中最丰富的物质,因此测量透明度也意味着测量藻类的数量 [ 5 ]。SDT 公式如下:[ 6 ]

SDT = -10.281 x (绿色 — 蓝色) / (绿色 + 蓝色) + 4.5753

透明度以米为单位,公式如下。

没有任何

图 26:SDT 计算

没有任何

图27:研究区域的SDT地图

与需要大量实地工作和昂贵实验室分析的传统水质评估方法相比,使用遥感数据具有诸多优势。需要进行实地测量才能确定所得结果的准确性。然而,使用空间分辨率为 5 米的 RapidEye 影像可以实现高精度的水质参数计算 [ 1 ]。文献中的其他指标也可用于提高准确率。利用遥感技术进行水质测绘将有助于环境规划,从而防止水污染。

感谢阅读!为了写好我的博客文章,我做了大量的研究,阅读了数十篇文章。如果您喜欢,可以请我喝杯咖啡,支持我的 GIS 研究;

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

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

相关文章

Docker部署前后端分离项目——多项目共享环境部署

目录 一、简介 二、文件目录结构 三、前端部署流程(多nginx) 3.1 前端打包 3.2 编写部署文件——项目1(consult-system) 3.3 编写部署文件——项目2(person-system) 3.4 前端部署至linux服务器 3.5…

学习笔记(39):结合生活案例,介绍 10 种常见模型

学习笔记(39):结合生活案例,介绍 10 种常见模型线性回归只是机器学习的 “冰山一角”!根据不同的任务场景(分类、回归、聚类等),还有许多强大的模型可以选择。下面我用最通俗易懂的语言,结合生活案例&#…

BabyAGI 是一个用于自构建自主代理的实验框架

这个最新的 BabyAGI 是一个用于自构建自主代理的实验框架 核心是一个新的函数框架 (functionz),用于存储、管理和执行数据库中的函数。它提供了一个基于图形的结构,用于跟踪导入、依赖函数和身份验证密钥,并具有自动加…

商业秘密视域下计算机软件的多重保护困境

作者:邱戈龙、柯坚豪重庆商业秘密律师广东长昊律师事务所引言:计算机软件保护的复杂性 在商业秘密保护的宏大版图中,计算机软件因其技术密集性和创新性占据着特殊地位。软件的真正价值不仅在于其代码本身,更在于其背后的流程、逻…

深入理解 Spring Boot 自动配置原理

Spring Boot 之所以能“开箱即用”,其核心就在于 自动配置机制(Auto Configuration)。本文将深入剖析 Spring Boot 自动配置的工作原理,从注解入手,再到底层的源码机制,揭开 Spring Boot 背后的“魔法”。 …

Ubuntu18.04开机启动执行脚本

#!/bin/bash # 运行 .NET Core 应用程序 dotnet /home/bruce/atg/SmartConsole.dll &# 打开浏览器 firefox 给文件权限sudo chmod 777 start.sh运行gnome-session-properties打开系统自带的一个启动程序

c语言进阶 字符函数和字符串函数

字符函数和字符串函数字符函数和字符串函数1. strlenstrlen 函数详解模拟实现1.计数器方式2.不能创建临时变量计数器(递归)3.指针-指针的方式2. strcpystrcpy 函数详解模拟实现3. strcatstrcat 函数详解模拟实现4. strcmpstrcmp 函数详解模拟实现5. strn…

(LeetCode 每日一题) 1233. 删除子文件夹 (排序)

题目:1233. 删除子文件夹 思路:排序,时间复杂度0(L*nlogn)。 文件夹a的子文件b,b字符串字典序列一定是大于a的,所以直接将字符串数组folder升序排序。每次只需判断当前字符串,是否是父文件夹数组v最后一个…

集成算法学习bagging,boosting,stacking

baggibg(rf随机森林) adaboostibg 用来展示 Project Jupyter | Home 展示源码 Eclipse IDE | The Eclipse Foundation Eclipse 下载 |Eclipse 基金会 教程8-Adaboost决策边界效果_哔哩哔哩_bilibili (23 封私信) 图解机器学习神器:Scikit-Learn - 知乎 Baggi…

HOOPS SDK赋能PLM:打造全生命周期3D数据管理与协作能力

在制造业和工业领域,产品全生命周期管理(PLM) 已成为驱动企业数字化转型、提升创新力与运营效率的核心引擎。一个高效的PLM平台不仅需要管理海量的设计数据,还必须在设计、制造、供应链、销售和服务等多个环节之间无缝流转信息&am…

解决 Selenium 页面跳转过快导致的内容获取问题:从原理到实践

在使用 Selenium 进行网页自动化操作时,很多开发者都会遇到一个头疼的问题:页面还没加载完,代码就已经执行到下一句了。结果要么是元素找不到,要么是获取的内容不完整,甚至直接抛出异常。今天我们就来聊聊如何优雅地解…

【Python练习】051. 编写一个函数,实现简单的定时器功能

051. 编写一个函数,实现简单的定时器功能 051. 编写一个函数,实现简单的定时器功能 代码说明: 示例运行: 扩展功能 代码说明: 实现Python定时器的几种方法 051. 编写一个函数,实现简单的定时器功能 以下是一个简单的Python函数,用于实现定时器功能。这个定时器可以设置…

springboot基础-demo

1.创建学生信息表 create table stu(id int unsigned primary key auto_increment comment ID,name varchar(100) comment 姓名,age tinyint unsigned comment 年龄,gender tinyint unsigned comment 性别, 1:男, 2:女,score double(5,2) comment 成绩,phone varchar(11) comme…

关于transformer的一些疑点总结

残差连接的作用 Transformer中的残差连接(Residual Connection)是其深层架构能稳定训练的核心设计之一,主要通过以下机制发挥作用: 1. 缓解梯度消失,支持深层训练 梯度保护机制:在反向传播时,…

【终极指南】解决 Windows 11 更新后 Docker 连接 localhost 奇慢(卡顿、超时十几秒)的通用方案

聪明人能看得出这是 ai 写的,但也是我亲身实践的,最后让 ai 总结写了一篇,放心食用 一、 结论先行(直接用)问题现象: 升级到某个 Windows 11 版本后,在本地访问 Docker 容器中部署的任何服务&am…

Stream API

Java 8 引入的 Stream API 是处理集合数据的强大工具,它允许你以声明式方式处理数据集合,支持各种聚合操作和并行处理。以下是 Stream API 的核心知识点及具体代码示例: 1. Stream 概述 Stream 是数据渠道,用于操作数据源&#xf…

相机参数的格式与作用

在计算机视觉中,相机标定是非常重要的一步,主要目的是从图像中恢复出物体的三维信息。为了做到这一点,我们需要了解和使用一系列的数学工具,这些工具描述了相机的成像过程,包括相机的内参、外参、畸变系数、投影矩阵和…

【jvm|基本原理】第四天

摘要:本文简单分析了Java虚拟机的核心运行机制。首先介绍了基本数据类型在32位和64位虚拟机中的存储差异,说明slot槽设计以空间换时间的优化思路。其次详细解析了对象在堆内存中的存储结构,包括对象头、对象数据和对齐填充机制。然后探讨了方…

Git高级操作与最佳实践详解

前言 熟练掌握Git的高级操作可以显著提高开发效率,优化工作流程,解决复杂问题。本文将详细介绍Git的高级操作技巧与最佳实践,帮助开发者更加高效地管理代码和协作开发。 1. 提交历史管理 1.1 修改最近的提交 # 修改最近的提交信息 git co…

ElasticSearch:商品SKU+SPU实现join查询,设计及优化

文章目录一、SPUSKU1、商品SPU和SKU2、SPU和SKU的关系3、实现SPUSKU父子嵌套查询1. **嵌套对象(Nested Objects)**2. **父子关系(Parent-Child)**3. **应用层关联(Application-Side Join)**(推荐…