基于GEE的多源遥感数据处理与分析及真彩色合成显示

代码概述

该代码基于Google Earth Engine (GEE) 平台,实现了从多个遥感数据集中筛选、裁剪和展示中国威海市指定区域和时间范围内的数据,并输出各数据集影像的时间信息。主要涉及的遥感数据集包括MODIS、Landsat 8和Sentinel-2。

使用的数据集

  1. MODIS (MOD09GA):提供全球范围内的每日地表反射率数据,空间分辨率为500米。
  2. Landsat 8 (LC08/C02/T1_L2):提供全球覆盖的高分辨率卫星影像,空间分辨率为30米。
  3. Sentinel-2 (COPERNICUS/S2_HARMONIZED):提供全球范围内的多光谱影像,空间分辨率为10米。

代码流程

  1. 定义区域和时间范围:指定感兴趣的地理区域(威海市)和时间范围(2019年9月15日至2020年12月28日)。
  2. 筛选数据集
    • 从MODIS、Landsat 8和Sentinel-2数据集中分别筛选指定时间范围内的影像。
    • 对Landsat 8和Sentinel-2数据集应用云量阈值筛选,确保选取的影像云量较低。
  3. 区域裁剪:将筛选出的影像数据集按指定区域进行裁剪,以仅保留感兴趣区域内的影像。
  4. 显示影像和区域:在GEE地图界面上显示感兴趣区域及裁剪后的影像数据集。
  5. 输出影像时间:输出每个数据集中所有影像的时间信息,以便分析这些影像的时间分布。
  6. 真彩色合成显示:使用真彩色合成显示各个数据集的影像。

运行结果

代码运行后,将在GEE地图上展示ROI区域的裁剪影像,并在控制台输出各个数据集的影像时间信息,并使用真彩色合成显示各个数据集的影像,提供更直观的可视化效果。可以方便地获取指定区域和时间范围内的遥感数据,并进行后续分析和处理。

完整代码:

// 定义区域
//var geometry = table;
var geometry = table2.filter(ee.Filter.eq('city','weihai'))
// 定义时间范围
var startDate = '2019-09-15';
var endDate = '2020-12-28';

// 定义不同数据集

//modis数据集
var modis = ee.ImageCollection('MODIS/061/MOD09GA')  
                .filterBounds(geometry)
                .filterDate(startDate, endDate)
                .map(function(image) {
                  return image.set('source', 'MODIS');
                });

// 定义云阈值
var cloudThreshold = 30; 

//landsat数据集
var landsat = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")  
                  .filterBounds(geometry)
                  .filterDate(startDate, endDate)
                  .filter(ee.Filter.lt("CLOUD_COVER", cloudThreshold))
                  .map(function(image) {
                    return image.set('source', 'Landsat');
                  });

//sentinel-2数据集
var sentinel2 = ee.ImageCollection('COPERNICUS/S2_HARMONIZED')  
                  .filterBounds(geometry)
                  .filterDate(startDate, endDate)
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', cloudThreshold))
                  .map(function(image) {
                    return image.set('source', 'Sentinel-2');
                  });


// 在地图上显示区域
Map.addLayer(geometry, {}, 'Region of Interest');

// 进行区域裁剪
var modisClipped = modis.map(function(image) {
  return image.clip(geometry);
});

var landsatClipped = landsat.map(function(image) {
  return image.clip(geometry);
});

var sentinel2Clipped = sentinel2.map(function(image) {
  return image.clip(geometry);
});


// 定义真彩色合成显示参数
var modisVis = {
  bands: ['sur_refl_b01', 'sur_refl_b04', 'sur_refl_b03'],
  min: 0,
  max: 3000,
  gamma: 1.4
};

var landsatVis = {
  bands: ['SR_B4', 'SR_B3', 'SR_B2'],
  min: 0,
  max: 3000,
  gamma: 1.4
};

var sentinel2Vis = {
  bands: ['B4', 'B3', 'B2'],
  min: 0,
  max: 3000,
  gamma: 1.4
};

// 在地图上显示真彩色合成影像
Map.addLayer(modisClipped.median(), modisVis, 'MODIS True Color');
Map.addLayer(landsatClipped.median(), landsatVis, 'Landsat True Color');
Map.addLayer(sentinel2Clipped.median(), sentinel2Vis, 'Sentinel-2 True Color');

// 居中显示指定区域
Map.centerObject(geometry, 8);



// 输出各个遥感影像的时间
modisClipped.aggregate_array('system:time_start').evaluate(function(dates) {
  var formattedDates = dates.map(function(date) {
    return new Date(date).toISOString(); // 输出年-月-日-时-分-秒
  });
  print('MODIS 影像时间:', formattedDates);
});

landsatClipped.aggregate_array('system:time_start').evaluate(function(dates) {
  var formattedDates = dates.map(function(date) {
    return new Date(date).toISOString(); // 输出年-月-日-时-分-秒
  });
  print('Landsat 影像时间:', formattedDates);
});

sentinel2Clipped.aggregate_array('system:time_start').evaluate(function(dates) {
  var formattedDates = dates.map(function(date) {
    return new Date(date).toISOString(); // 输出年-月-日-时-分-秒
  });
  print('Sentinel-2 影像时间:', formattedDates);
});



输出结果:

工作台输出:

ROI区域:

Landsat-8影像:

Modis影像:

Sentinel-2影像:

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值