目录
-
引言
- 文章的目的和预期读者
-
下载研究区的JSON文件
- 访问DataV.GeoAtlas地理小工具
- 选择并下载所需区域的JSON文件
-
转换JSON为SHP格式
- 使用mapshaper.org转换文件
- 下载并保存SHP格式文件
-
在GEE中上传SHP文件
- 创建并管理GEE Assets
- 上传SHP文件到GEE
-
使用GEE处理Landsat影像
- 引入Landsat 8 TOA影像集
- 编写并应用云屏蔽函数
- 进行影像的中值合成
-
下载影像
引言
Google Earth Engine 是一个强大的地球分析平台,它允许用户处理和分析大量的地理数据。对于遥感专业人员和环境科学家来说,它是一项不可或缺的工具,因为它可以处理和分析从全球各地的卫星收集到的海量数据。
在本教程中,我们将从最基本的操作开始,逐步指导您完成从下载区域定义文件,转换文件格式,到在GEE上处理和导出Landsat 8 TOA影像集的整个流程。我们将重点介绍如何使用GEE的云屏蔽功能来获取高质量的地表影像,这对于进行环境监测和地理分析尤为重要。
第一步:下载研究区的JSON文件
在开始使用GEE之前,首先需要定义你的研究区域。我们将使用DataV.GeoAtlas地理小工具来下载研究区域的JSON文件。
-
在地图上选择你的研究区域,这通常是你感兴趣的城市或乡镇。点击并选择区域后,地图将显示该地区的边界。
-
点击下载按钮,保存JSON文件到你的电脑。
1.首先我们先要下载研究区的json文件
这个网址里面可以下载DataV.GeoAtlas地理小工具系列 (aliyun.com)
第二步:转为SHP格式
由于GEE不直接支持JSON格式的地理数据,我们需要将其转换为SHP格式。
-
打开 mapshaper 网站。
-
点击“Select”按钮,上传你刚才下载的JSON文件。
-
文件加载后,界面上会显示你的地理区域。确认无误后,点击右上角的“Export”按钮。
-
在导出选项中,选择输出格式为“Shapefile”,然后下载压缩的SHP文件包。
转为shp格式
这个网址转换,点击select,选择我们刚刚下载的红原县.json。
选折shpfile格式,点击export按钮,即可导出shp格式的数据。
解压后可以得到shp格式的文件。
第三步:在GEE中上传SHP文件
在这一步,你需要将转换好的SHP文件上传到你的GEE账户中。
- 登录你的Google Earth Engine账户。
- 在GEE界面左侧,找到“Assets”标签,点击“New”按钮新建一个Asset。
- 在弹出的窗口中,选择“Shape files”作为类型,然后上传你的SHP文件(包括.shp, .shx, .dbf 文件)。
- 上传前给你的Asset命名,例如命名为“pingyuan”。
- 点击“UPLOAD”开始上传文件。
下面我们打开GEE,使用GEE需要谷歌账号,GEE账号和科学上网,不知道如何注册可以百度一下。
导入刚刚下载的研究区shp文件,点击Assets,再点击new新建,选择shp格式
点击select全选我们刚刚解压的shp格式文件,给你新建的Asset命个名,这里我命名pingyuan
上传完后点击UPLOAD上传即可。这里需要等它上传一会,刷新后可以看到刚刚上传的pingyuan
将研究区导入代码中
第四步:使用GEE处理Landsat影像
复制粘贴下面这段代码,到js编辑器中
这段代码使用 Google Earth Engine (GEE) 来处理 Landsat 8 TOA 影像数据,应用云屏蔽、影像合成,并将处理后的数据导出到 Google Drive。下面是对代码中每个部分的详细注释:
// 引入 Landsat 8 的 TOA 影像集
var landsat8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');
// 假设 'table' 是已经定义好的 FeatureCollection,代表感兴趣的地理区域
var table = table;
// 设置地图中心为 'table' 的中心,缩放级别为7,以便在地图上集中显示该区域
Map.centerObject(table,7);
// 定义一个函数来使用 Landsat 8 的 QA_PIXEL 波段屏蔽云雾
var maskL8 = function(image) {
var qa = image.select('QA_PIXEL'); // 选择 QA_PIXEL 波段
// 使用位运算检查第四位(云标记),如果该位为0,说明无云,将这些像素保留
var mask = qa.bitwiseAnd(1 << 3).eq(0);
// 使用 updateMask 方法更新影像掩码,屏蔽云雾
return image.updateMask(mask);
};
// 应用云屏蔽函数,并对2020年6月1日至7月30日的数据进行中值合成
var composite = landsat8.filterDate('2020-06-01', '2020-07-30')
.filterBounds(table) // 使用 'table' 作为地理边界过滤数据
.map(maskL8) // 应用云屏蔽函数
.median(); // 对结果进行中值合成以减少剩余云层的影响
// 将处理后的影像剪裁到 'table' 定义的边界
var exportq = composite.clip(table)
// 将处理后的影像显示在地图上
Map.addLayer(exportq, {bands: ['B4', 'B3', 'B2'], max: 0.3}, 'Cloud Masked Image');
// 将处理后的影像导出到 Google Drive
Export.image.toDrive({
image: exportq, // 要导出的影像
description: 'landsat', // 导出任务的描述
scale: 30, // 导出影像的空间分辨率,单位是米
maxPixels: 1e13, // 设置最大像素数量以防止导出失败
region: table, // 指定导出影像的地理区域
fileFormat: 'GeoTIFF', // 指定文件格式为 GeoTIFF
formatOptions: {
cloudOptimized: true // 生成云优化的 GeoTIFF 文件
}
});
复制到文件中,记得更改你想要的时间。
第五步:导出处理后的影像到Google Drive
最后,我们将处理后的影像导出到Google Drive。保存影像点击右边tasks中的RUN按钮,即可将影像下载到谷歌网盘。
结语
恭喜你,现在你已经能够使用Google Earth Engine下载并处理Landsat影像了!这个过程虽然涉及多个步骤,但每一步都是为了确保我们可以获得高质量的遥感数据。希望这篇详细教程能帮助你顺利完成项目,享受遥感数据分析的乐趣!如有疑问或需进一步学习,欢迎留言交流,或者直接添加作者微信:ictnet1。欢迎关注我的公众号:python与遥感,获取更多更实用的免费教程分享。