当前位置: 首页 > news >正文

影像集的过滤

在 Google Earth Engine (GEE) 中,影像集(ImageCollection)的过滤是数据处理的关键步骤,可以通过时间、空间范围、元数据属性(如云量)等条件筛选出目标影像。以下是详细的过滤方法介绍:


1. 按时间范围过滤

使用 filterDate() 筛选指定时间范围内的影像。

// 示例:筛选2020年全年的Landsat 8影像
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
  .filterDate('2020-01-01', '2020-12-31');

2. 按空间范围过滤

使用 filterBounds() 筛选覆盖指定几何区域的影像。

// 示例:筛选覆盖某点或区域的影像
var point = ee.Geometry.Point([116.39, 39.91]); // 北京坐标
var region = ee.Geometry.Rectangle([xmin, ymin, xmax, ymax]);

var filtered = collection
  .filterBounds(point) // 或 filterBounds(region);

3. 按元数据属性过滤

使用 filter()ee.Filter 条件,结合影像的元数据(如云量、传感器类型等)。

3.1 按数值范围过滤
// 示例:筛选云量低于10%的Landsat影像
var cloudFiltered = collection
  .filter(ee.Filter.lt('CLOUD_COVER', 10));
3.2 按字符串属性过滤
// 示例:筛选Landsat 9影像
var landsat9 = ee.ImageCollection('LANDSAT/LC09/C02/T1_L2')
  .filter(ee.Filter.eq('SPACECRAFT_ID', 'LANDSAT_9'));
3.3 多条件组合过滤
// 使用 ee.Filter.and() 或链式调用
var complexFilter = collection
  .filter(ee.Filter.and(
    ee.Filter.gt('SUN_ELEVATION', 50),
    ee.Filter.lt('CLOUD_COVER', 5)
  ));

4. 按云量过滤(以Sentinel-2为例)

云量过滤需结合数据集特有的属性,常用方法:

// 示例:筛选Sentinel-2影像中云量<20%的影像
var s2 = ee.ImageCollection('COPERNICUS/S2_SR')
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20));
动态云量过滤(客户端计算)

若需根据计算后的云量过滤(如自定义云掩膜后的统计),需使用 map()evaluate()

var filtered = s2.filter(ee.Filter.lt('cloud_score', 10));

// 定义云量计算函数
var addCloudScore = function(image) {
  var score = // 自定义云量计算逻辑
  return image.set('cloud_score', score);
};

var withCloudScore = s2.map(addCloudScore);
var cloudFiltered = withCloudScore.filter(ee.Filter.lt('cloud_score', 10));

5. 组合多个过滤条件

通过链式调用 filter() 组合时间、空间和属性条件:

var finalCollection = ee.ImageCollection('COPERNICUS/S2_SR')
  .filterDate('2021-05-01', '2021-05-31')
  .filterBounds(roi)
  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 5));

6. 其他过滤方法

6.1 按影像ID过滤
var specificImage = collection
  .filter(ee.Filter.eq('system:index', '20210501T030541_20210501T030543_T50SPA'));
6.2 按质量标记(QA Band)过滤

部分数据集(如MODIS)提供质量标记波段:

var modis = ee.ImageCollection('MODIS/006/MOD09GA')
  .filter(ee.Filter.eq('QC_250m', 0)); // 筛选最佳质量数据

注意事项

  1. 属性名称差异:不同数据集的元数据属性名称不同(如Landsat的云量是 CLOUD_COVER,Sentinel-2是 CLOUDY_PIXEL_PERCENTAGE)。
  2. 客户端与服务器端操作evaluate() 是异步操作,需在回调函数中处理结果。
  3. 性能优化:优先使用服务器端过滤(如 filter()),减少客户端计算。

通过灵活组合上述方法,可高效地从海量遥感数据中提取所需影像。

相关文章:

  • 重新求职刷题DAY18
  • [Web 安全] Web 安全攻防 - 学习手册
  • 读取罗克韦尔AllenBradley Micro-Logix1400 罗克韦尔 CIP PCCC通信协议
  • 【Godot4.3】自定义圆角容器
  • FCC CE SRRC MIC是什么意思?
  • vue3 下载文件 responseType-blob 或者 a标签
  • java练习(39)
  • 【C语言基础】基本数据类型和常量介绍
  • MinIO Go 客户端 API
  • DSP芯片C6678的SRIO及其中断跳转的配置
  • 【Java】I/O 流篇 —— 字节 I/O 流
  • Starlink卫星动力学系统仿真建模第九讲-滑模(SMC)控制算法原理简介及卫星控制应用
  • 深入理解Self-Attention - 原理与等价表示
  • 15.1 智能销售顾问系统架构与业务价值解析:AI 如何重塑销售流程
  • RTOS系统ulTaskNotifyTake怎么知道哪个发送任务通知函数的pxcurrentTCB
  • 4.WebSocket 配置与Nginx 的完美结合
  • react路由总结
  • IDEA搭建SpringBoot,MyBatis,Mysql工程项目
  • 学习threejs,使用createMultiMaterialObject创建多材质对象
  • 小视频压缩实用方法大汇总
  • 网站设计的主要内容/市场调研的步骤
  • 做o2o网站需要多少钱/黄页88网站推广方案
  • c2c代表网站是什么/企业软文代写
  • 自己做的网站套dedecms教程/网络营销策划与创意
  • 工程建设信息官方网站/博客网站
  • 开发公司企业管理制度/排名优化公司