使用GEE处理(去云)和可视化MODIS地表反射率数据

代码实现处理MODIS地表反射率数据,并进行以下步骤:

  1. 掩膜去除观测次数为0的像元。
  2. 去除含云像元。
  3. 裁剪影像到感兴趣区域(ROI)。
  4. 计算影像数据的中值,并生成真彩色合成图。
  5. 将处理后的影像和原始影像添加到地图上进行可视化。
  6. 输出筛选出的影像数量和影像的时间信息。

数据集

  • MODIS/061/MOD09GA: 这是MODIS地表反射率数据集,提供1km分辨率的地表反射率数据。

功能实现

该代码实现了从MODIS数据集中筛选并处理特定时间段内的影像,通过去除观测次数为0和含云的像元,并裁剪到感兴趣区域,生成了可视化的真彩色合成图层,方便进行进一步的分析和研究。

结果

  • 可视化:生成了两个图层,一个是去云后的真彩色合成图层,另一个是原始影像的真彩色合成图层,并将它们添加到地图上进行显示。
  • 影像数量:输出了筛选出的影像数量。
  • 影像时间:输出了各个影像的时间信息。

完整代码:

// 创建一个函数用来掩膜,保留观测次数大于0的像元。
// num_observations_1km表示观测次数
var ROI = table
var maskEmptyPixels = function(image) {
  var withObs = image.select('num_observations_1km').gt(0);
  return image.updateMask(withObs);
};

// 去云
var maskClouds = function(image) {
  // 选择质量评估波段
  var QA = image.select('state_1km');
  // 1<<10表示二进制第10位,第10位表示有云
  var bitMask = 1 << 10;
  // 使得检测出含云像元置为0,进行掩膜去除含云
  return image.updateMask(QA.bitwiseAnd(bitMask).eq(0));
};

// 裁剪
var clip = function(image) {
  return image.clip(ROI); // 假设ROI是你的感兴趣区域
};

// 选择MODIS地表反射率数据,并去除观测数为0的数据
var collection = ee.ImageCollection('MODIS/061/MOD09GA')
        .filterDate('2020-09-25', '2020-09-26')
        .map(maskEmptyPixels);


// 去云处理
var collectionCloudMasked = collection.map(maskClouds);

// 应用裁剪函数到图像集合
var nocloud = collectionCloudMasked.map(clip);
var allcloud = collection.map(clip);

// 计算影像数据集中值,并进行真彩色合成
Map.addLayer(
    nocloud.median(),
    {bands: ['sur_refl_b01', 'sur_refl_b04', 'sur_refl_b03'],
     gain: 0.07,
     gamma: 1.4
    },
    'mask clouds'
);

Map.addLayer(
    allcloud.median(),
    {bands: ['sur_refl_b01', 'sur_refl_b04', 'sur_refl_b03'],
     gain: 0.07,
     gamma: 1.4
    },
    'original image'
);
// 将地图居中显示到ROI
Map.centerObject(ROI,9);

// 输出筛选结果
var modisCount = allcloud.size();
if (modisCount.getInfo() > 0) {
  print("已筛选出 " + modisCount.getInfo() + " 张影像");
} else {
  print("没有满足筛选条件的影像");
}

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



运行结果:

工作台:

去云前:

去云后:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值