Image Collections操作

news/2025/2/25 5:52:56

在Google Earth Engine(GEE)中处理影像集合(Image Collections)是遥感数据分析的核心操作。以下是详细的步骤和示例代码,涵盖影像集合的常见操作:


1. 影像集合基础

影像集合是GEE中存储多幅影像的数据结构,例如Landsat、Sentinel等卫星数据。所有数据集均可在GEE数据目录中查找。

加载影像集合
// 加载Landsat 8地表反射率数据集
var landsat = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2');

// 加载Sentinel-2 TOA反射率数据
var sentinel2 = ee.ImageCollection('COPERNICUS/S2_HARMONIZED');

2. 过滤影像集合

通过时间、空间或属性过滤缩小数据集范围。

时间过滤
var filteredByDate = landsat.filterDate('2020-01-01', '2020-12-31');
空间过滤
var roi = ee.Geometry.Point([-122.09, 37.42]); // 旧金山坐标
var filteredByROI = landsat.filterBounds(roi);
属性过滤

例如筛选云量低于10%的影像:

var filteredByClouds = sentinel2.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 10));

3. 对影像集合中的每幅影像进行处理(map()

对集合中每个影像应用函数,例如计算NDVI:

// 定义NDVI计算函数
var addNDVI = function(image) {
  var ndvi = image.normalizedDifference(['SR_B5', 'SR_B4']).rename('NDVI');
  return image.addBands(ndvi);
};

// 应用函数到每个影像
var landsatWithNDVI = filteredByDate.map(addNDVI);

4. 影像合成

将时间序列影像合成为单幅影像,如中值、最大值等。

中值合成(去云常用)
var medianComposite = landsatWithNDVI.median();
最大值合成(突出植被生长峰值)
var maxNDVI = landsatWithNDVI.select('NDVI').max();

5. 时间序列分析

按时间粒度(月、年)生成合成影像。

生成月度合成影像
var monthlyComposites = ee.ImageCollection.fromImages(
  ee.List.sequence(1, 12).map(function(month) {
    return landsatWithNDVI
      .filter(ee.Filter.calendarRange(month, month, 'month'))
      .median()
      .set('month', month);
  })
);

6. 统计计算(reduce()

计算整个时间序列的统计值,如平均NDVI:

var meanNDVI = landsatWithNDVI.select('NDVI').mean();

7. 质量控制与云掩膜

使用QA波段去除云覆盖区域。

Landsat 8云掩膜示例
var maskClouds = function(image) {
  var qa = image.select('QA_PIXEL');
  var cloudMask = qa.bitwiseAnd(1 << 3).eq(0); // 第3位为云置信度
  return image.updateMask(cloudMask);
};

var landsatMasked = landsat.map(maskClouds);

8. 可视化与导出

在地图上显示影像
Map.centerObject(roi, 10);
Map.addLayer(medianComposite, {bands: ['SR_B4', 'SR_B3', 'SR_B2'], min: 0, max: 0.3}, 'Median Composite');
导出数据到Google Drive
Export.image.toDrive({
  image: meanNDVI,
  description: 'Annual_Mean_NDVI',
  scale: 30,
  region: roi.buffer(1000).bounds()
});

9. 最佳实践

  • 分块处理大区域:使用tileScale参数避免内存溢出。
  • 链式操作GEE的延迟执行机制支持链式调用,提升代码可读性:
    var result = ee.ImageCollection('ID')
      .filterDate(...)
      .filterBounds(...)
      .map(...)
      .median();
    
  • 调试:使用print()console.log()查看集合属性,如:
    print('Number of images:', filteredByDate.size());
    

完整示例:计算并可视化年度NDVI

// 加载并预处理数据
var landsat = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
  .filterDate('2020-01-01', '2020-12-31')
  .filterBounds(roi);

// 计算NDVI
var withNDVI = landsat.map(function(image) {
  return image.addBands(image.normalizedDifference(['SR_B5', 'SR_B4']).rename('NDVI'));
});

// 生成年度最大NDVI
var maxNDVI = withNDVI.select('NDVI').max();

// 可视化
Map.addLayer(maxNDVI, {min: 0, max: 1, palette: ['white', 'green']}, 'Max NDVI 2020');

通过上述步骤,你可以高效处理GEE中的影像集合,进行从数据加载到高级分析的完整流程。更多示例可参考GEE官方示例库和文档。


http://www.niftyadmin.cn/n/5865056.html

相关文章

文件上传-Windows点空格点绕过

[题目信息]&#xff1a; 题目名称题目难度文件上传-Windows点空格点绕过1 [题目考点]&#xff1a; Windowsw文件特性考察[Flag格式]: SangFor{UDOaJfziTs4c-dceIyGxa53-Ybrg9dtF}[环境部署]&#xff1a; docker-compose.yml文件或者docker tar原始文件。 docker-compose u…

数据同步的中间件

以下是10个支持MySQL、HBase、ClickHouse、HDFS等不同数据库之间数据同步的GitHub项目推荐&#xff1a; 项目名称语言主要特点支持的数据库GitHub链接DataXPython阿里巴巴开源的数据同步工具&#xff0c;支持多种数据库和文件系统。MySQL、ClickHouse、HDFS等GitHub链接Apache…

STM32-智能小车项目

项目框图 ST-link接线 实物图&#xff1a; 正面&#xff1a; 反面&#xff1a; 相关内容 使用L9110S电机模块 电机驱动模块L9110S详解 | 良许嵌入式 一、让小车动起来 新建文件夹智能小车项目 在里面复制19-串口打印功能 重命名为01-让小车动起来 新建文件夹motor&…

Spring Cloud Gateway 网关的使用

在之前的学习中&#xff0c;所有的微服务接口都是对外开放的&#xff0c;这就意味着用户可以直接访问&#xff0c;为了保证对外服务的安全性&#xff0c;服务端实现的微服务接口都带有一定的权限校验机制&#xff0c;但是由于使用了微服务&#xff0c;就需要每一个服务都进行一…

云电脑接入DeepSeek?探讨ToDesk云电脑、海马云、顺网云的AI潜能

目录 前言一、云电脑相比实体电脑部署DeepSeek的优势二、DeepSeek云电脑实操1、ToDesk云电脑2、海马云3、顺网云 三、DeepSeek R1模型与云电脑适配性分析1、基本配置分析2、文本推理测试 四、云电脑选型看点1、跨平台兼容性2、文件存储3、关键技术4、安全与隐私5、用户体验 五、…

put data item into sotfhsm as data objects in different block size

#!/bin/bash # 该脚本用于向智能卡写入4096个数据对象&#xff0c;每个token最多容纳256个数据对象 # 当前token满载时&#xff0c;自动初始化新tokenSTART_TIME$(date %s%3N) # 模块路径&#xff0c;根据实际情况调整 MODULE_PATH"/home/ubuntu/Documents/HSM/20250106/S…

Fisher信息矩阵(Fisher Information Matrix, FIM)与自然梯度下降:机器学习中的优化利器

Fisher信息矩阵与自然梯度下降&#xff1a;机器学习中的优化利器 在机器学习尤其是深度学习中&#xff0c;优化模型参数是一个核心任务。我们通常依赖梯度下降&#xff08;Gradient Descent&#xff09;来调整参数&#xff0c;但普通的梯度下降有时会显得“笨拙”&#xff0c;…

轻量级SDK,大能量:EasyRTC重塑嵌入式设备音视频体验

在智能硬件与物联网迅猛发展的今天&#xff0c;嵌入式设备的音视频通讯能力正变得愈加关键。然而&#xff0c;受限于硬件资源&#xff0c;尤其是Flash存储空间的不足&#xff0c;传统的音视频通讯方案往往难以在嵌入式设备上实现高效集成。EasyRTC凭借其轻量级SDK和先进的技术架…