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