GEE| 对Landsat 8 影像进行主成分分析

devtools/2024/11/8 17:38:17/

对 Landsat 8 影像进行主成分分析并实现可视化

// 定义感兴趣区域 
var roi = ee.FeatureCollection('users/yongweicao11/Dongguan2022');// 加载 Landsat 8 图像集合,并根据 ROI 和日期范围进行过滤
var imageL8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA").filterBounds(roi) // 过滤出与 ROI 相交的图像.filterDate('2023-01-01', '2023-09-01') // 选择指定日期范围内的图像.filter(ee.Filter.lt('CLOUD_COVER', 10)); // 过滤掉云量大于 10% 的图像// 计算图像集合的平均值,并根据 ROI 裁剪
imageL8 = imageL8.mean().clip(roi); 
// 打印图像中的波段名称
print('Band Names:', imageL8.bandNames());// 定义真彩色图像的可视化参数
var trueColorL8 = { bands: ['B4', 'B3', 'B2'], // 使用红色、绿色和蓝色波段min: 0, max: 0.3 // 设置颜色的范围
}; // 将计算的 Landsat 8 图像添加到地图中
Map.addLayer(imageL8, trueColorL8, 'L8 true color'); // 定义用于 PCA 的波段
var PCAbands = ['B2', 'B3', 'B4', 'B5', 'B6', 'B7', 'B10', 'B11']; // 将选择的波段转换为数组形式,以便进行 PCA
var arrayImage = imageL8.select(PCAbands).toArray();
// 打印数组图像信息
print('Array Image:', arrayImage);// 使用区域作为几何限制,计算波段的协方差矩阵
var covar = arrayImage.reduceRegion({ reducer: ee.Reducer.covariance(), // 使用协方差减速器geometry: roi.geometry(), // 提供 ROI 的几何形状scale: 30, // 根据需要指定合适的比例尺(30 米为 Landsat 的空间分辨率)maxPixels: 1e9 // 允许的最大像素数量
}); 
// 打印协方差结果
print('Covariance:', covar);// 从协方差字典中提取数组
var covarArray = ee.Array(covar.get('array')); 
// 打印协方差数组
print(covarArray);// 计算特征值和特征向量
var eigens = covarArray.eigen(); // 提取特征向量(注意:特征向量通常在第二个索引)
var eigenVectors = eigens.slice(1, 1); // 使用特征向量对原始图像数组进行矩阵乘法,计算主成分
var principalComponents = ee.Image(eigenVectors).matrixMultiply(arrayImage.toArray(1));// 将结果转换为图像,并重命名波段
var pcImage = principalComponents.arrayProject([0]).arrayFlatten([['pc1', 'pc2', 'pc3', 'pc4', 'pc5', 'pc6', 'pc7', 'pc8']]); var burnPalette = ['red', 'white', 'green']; 
// 将第一个主成分(pc1)添加到地图中进行可视化
Map.addLayer(pcImage.select('pc1'), {min: -422, max: -400, palette: burnPalette}, 'pc1'); 

第一主成分结果
在这里插入图片描述
原始真彩色影像
在这里插入图片描述


http://www.ppmy.cn/devtools/132361.html

相关文章

大数据数据存储层MemSQL, HBase与HDFS

以下是对 MemSQL、HBase 和 HDFS 的详细介绍,这些工具在分布式数据存储和处理领域有着重要作用。 1. MemSQL MemSQL(现称为 SingleStore)是一种分布式内存数据库,兼具事务处理(OLTP)和分析处理(OLAP)的能力,专为高性能实时数据处理设计。 1.1 核心特点 内存优先存储…

【MongoDB】MongoDB的Java API及Spring集成(Spring Data)

文章目录 Java APISpring 集成1. 添加依赖2. 配置 MongoDB3. 创建实体类4. 创建 Repository 接口5. 创建 Service 类6. 创建 Controller 类7. 启动 Spring Boot 应用8. 测试你的 API 更多相关内容可查看 Java API maven <dependency><groupId>org.mongodb</gr…

无人机干扰与抗干扰,无人机与反制设备的矛与盾

无人机干扰与抗干扰&#xff0c;以及无人机与反制设备之间的关系&#xff0c;可以形象地比喻为矛与盾的较量。以下是对这两方面的详细探讨&#xff1a; 一、无人机干扰与抗干扰 1. 无人机干扰技术 无人机干扰技术是指通过各种手段对无人机系统进行干扰&#xff0c;使其失去正…

基于卷积神经网络的农作物病虫害识别系统(pytorch框架,python源码)

更多图像分类、图像识别、目标检测等项目可从主页查看 功能演示&#xff1a; 基于卷积神经网络的农作物病虫害检测&#xff08;pytorch框架&#xff09;_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神经网络的农作物病虫害识别系统是在pytorch框架下实现的…

mybatis源码解析-sql执行流程

1 执行器的创建 1. SimpleExecutor 描述&#xff1a;最基本的执行器&#xff0c;每次查询都会创建新的语句对象&#xff0c;并且不会缓存任何结果。 特点&#xff1a; 每次查询都会创建新的 PreparedStatement 对象。 不支持一级缓存。 适用于简单的查询操作&#xff0c;不…

Python | Leetcode Python题解之第542题01矩阵

题目&#xff1a; 题解&#xff1a; class Solution:def updateMatrix(self, matrix: List[List[int]]) -> List[List[int]]:m, n len(matrix), len(matrix[0])# 初始化动态规划的数组&#xff0c;所有的距离值都设置为一个很大的数dist [[10**9] * n for _ in range(m)]…

Qt低版本多网卡组播bug

原文地址 最近在某个项目中&#xff0c;发现了一个低版本Qt的bug&#xff0c;导致组播无法正常使用&#xff0c;经过一番排查&#xff0c;终于找到了原因&#xff0c;特此记录。 环境 Qt&#xff1a;5.7.0 mingw32操作系统&#xff1a;windows 11 现象 在Qt5.7.0版本中&…

stm32使用串口DMA实现数据的收发

前言 DMA的作用就是帮助CPU来传输数据&#xff0c;从而使CPU去完成更重要的任务&#xff0c;不浪费CPU的时间。 一、配置stm32cubeMX 这两个全添加上。参数配置一般默认即可 代码部分 只需要把上期文章里的HAL_UART_Transmit_IT(&huart2,DATE,2); 全都改为HAL_UART_Tra…