GEE 依照范围裁剪 下载Sentinel-2数据


0. GEE介绍

Google Earth Engine(GEE) 是由Google开发的一种云端平台,旨在提供强大的地理空间数据处理和分析工具。GEE集成了大量的遥感影像数据和地理空间数据集,以及高性能的计算资源,使用户能够在云端高效地进行大规模地理空间数据处理、分析和可视化,为环境监测、资源管理、自然灾害监测等领域提供了强大的支持。


使用Google Earth Engine(GEE)进行遥感影像分析是一种强大而灵活的方法,它允许用户在云端高效处理大规模的地理空间数据。在Google Earth Engine 中,可以使用 ee.ImageCollection.clip() 等方法来依照范围裁剪 Sentinel-2 数据。


步骤 1:访问Google Earth Engine

  • 打开浏览器,转到 Google Earth Engine 网站。
    • https://code.earthengine.google.com/

  • 如果你尚未登录,使用Google账号登录。


步骤 2:启动Google Earth Engine Code Editor

  • 进入GEE的代码编辑器,按照要求创建项目。

  • 完成Earth引擎代码编辑器


步骤 3:编写和运行代码

在代码编辑器中,可以编写JavaScript代码来处理遥感影像数据。GEE提供了大量的API和函数来操作和分析遥感数据。

  • 通过点击 Assets -> NEW -> Shape files 创建boundary.shp文件,作为文件裁剪范围。
    • 通过点击 SELECT 筛选文件类型,上传边界数据。(上传文件类型见截图)
    • 注意:上传可能有延迟,试着多刷新,稍等一段时间


步骤 4:查看边界数据

  • 在代码编辑器中核验 Cuba 国家行政区划边界数据集boundary.shp
// 从用户的数据集中加载行政区划边界数据集
var district = ee.FeatureCollection("users/xxxx/boundary");

// 获取行政区划边界数据集的大小(即要素数量)并打印输出
var dsize = district.size();
print(dsize);

// 提取行政区划边界数据集的几何信息
var district_geometry = district.geometry();

// 将地图视图中心设置为行政区划边界的几何中心,并缩放到指定级别
Map.centerObject(district_geometry, 7);

// 在地图上添加行政区划边界图层
Map.addLayer(district);


步骤 5:下载Sentinel-2影像并导出数据

  • 在代码编辑器中的代码执行过程中,可以在右侧的 Console 面板中查看代码运行的输出结果,包括图像、表格等。
  • 完成了分析,你可以将结果保存在你的 GEE 账户中,以便日后访问和使用。
  • 还可以通过导出功能将结果数据导出至 Google Drive :GeoTIFF、CSV等常见格式,以便在其他GIS软件中使用。
// 定义函数:用于遮蔽Sentinel-2影像中的云
function maskS2clouds(image) {
  // 选择Sentinel-2影像中的QA60波段,该波段用于云掩蔽
  var qa = image.select('QA60');

  // 云和卷云的标志位分别在第10位和第11位
  var cloudBitMask = 1 << 10;
  var cirrusBitMask = 1 << 11;

  // 如果两个标志位都为零,则表示天气晴朗
  var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
      .and(qa.bitwiseAnd(cirrusBitMask).eq(0));

  // 更新影像的遮罩并进行归一化
  return image.updateMask(mask).divide(10000);
}

// 加载boundary.shp文件
var boundary = ee.FeatureCollection('users/xxxx/boundary');

// 映射函数至一年的数据。
// 加载Sentinel-2 TOA反射数据。
var dataset = ee.ImageCollection('COPERNICUS/S2')
                  .filterBounds(boundary)  // 根据区域几何范围筛选数据
                  .filterDate('2020-01-01', '2021-01-01')  // 筛选日期范围
                  // 预先过滤以获取云量较少的数据
                  .filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
                  .map(maskS2clouds);  // 应用云掩蔽函数

// 定义RGB可视化参数
var rgbVis = {
  min: 0.0,
  max: 0.3,
  bands: ['B4', 'B3', 'B2'],
};

// 将处理后的影像数据按照boundary.shp文件裁剪,并添加到地图中
var clippedImage = dataset.median().clip(boundary);
Map.addLayer(clippedImage, rgbVis, 'Clipped Image');

// 导出裁剪后的影像数据到Google Drive
Export.image.toDrive({
  image: clippedImage.select(['B4', 'B3', 'B2']),  // 选择RGB波段
  description: 'Sentinel2_Cropped',  // 导出影像的描述
  folder: 'GEE_Images',  // 导出到Google Drive中的文件夹名称
  region: boundary.geometry(),  // 导出影像的区域
  scale: 10,  // 分辨率
  maxPixels: 1e13  // 最大像素数量
});


补充材料

  • GEE的学习曲线可能相对陡峭,请参考官方操作文档和示例代码:
    • https://developers.google.com/earth-engine/guides/getstarted
    • https://earthengine.google.com/platform/
  • GEE提供了强大的云端计算资源,但某些操作可能需要一定的时间才能完成,尤其是对大规模数据的处理。
    • 可以考虑基于小行政区划shp文件,进行分区下载。

如果这对您有所帮助,希望点赞支持一下作者! 😊

点击查看原文
https://mp.weixin.qq.com/s?__biz=Mzk0MTU1MjU5Mw==&mid=2247484716&idx=1&sn=1968d0c1bfacb28e11c73e655f7f137b&chksm=c2d1e392f5a66a849a615c94c3a9f63c9ed9d32e06bef1b3d74df2923f9ff10926bb985df2b9#rd

file

  • 16
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值