1. 问题
最近,因为项目需求,需要下载Landsat8影像,一般我们会直接到专业数据网站,例如:地理空间数据云,下载数据并处理数据。但流程复杂,且下载多组数据,下载极慢,可能得一天或者几天时间,同时,还得做大量的大气校正等一系列预处理操作。因此,为了追求效率,网上找到了GEE这一神器。虽然,之前听说过该神器,但奈何没有需求,一直没用上,这次就来实践学习一番。
2. 方法
GEE代码实现区域性地区Landsat8影像下载。
3. 步骤
(1)首先,我们得获取到需下载地区的边界shpfile文件。方法有很多,甚至网上有现成的边界区域,可直接下载。但我们这里再说明一种更直接面对需求的方法。这里,我们主要利用了“阿里云数据可视化平台”来进行此项需求。平台页面如图所示:
我们的目的是获取“哈尔滨”地区的shpfile边界,所以我们在中国地图上点击黑龙江省->哈尔滨市即可。
如下图,我们获得了哈尔滨市的边界,右侧栏中有一个“包含子区域”的选项,由于我们不需要具体到县级等下一级子区域,我们就没勾选,如有需求,可勾选。
最后点击“其他类型”里的下载,即可获得json形式的边界区域。
(2)上一步获取的json格式是字段存储的坐标形式,我们需要进一步转化。这里,我们选择了“mapshaper”这个网站。将上一步生成的json文件拖入,点击右上角的“export”即可导出。
(3)关键步骤。我们首先将第二步生成的shpfile文件上传的GEE平台。如图所示:
在此基础上,编写代码,获取指定区域。如下图所示,代码运行后,即可在地图上显示。
以上步骤操作完之后,还没有完全保存存储,只是显示在网页。因此,我们这里选择了用Google的云端网盘存储,没有这个利器的小伙伴们需要注册哦。如下图所示,我们点击RUN即可保存到网盘,保存后,我们去网盘直接下载到本地即可。
以上内容即可下载“哈尔滨”地区landsat8影像。
附代码如下
//首先,导入自己的研究区矢量数据
var ROI = ee.FeatureCollection("users/glutcugwangbin/Harbinshp");
var ROI = ROI.geometry();
//然后,选择数据集和合成数据的时间范围
var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1')
.filterDate('2019-09-01', '2019-12-01').filter(ee.Filter.lt("CLOUD_COVER",5));
//用clip()函数里面的行政边界切割
var ROI_collection = ee.Algorithms.Landsat.simpleComposite(dataset).clip(ROI)
print(ROI_collection)
Map.centerObject(ROI, 7);
//显示哈尔滨的shp边界
Map.addLayer(ROI,{color:'yellow',fillColor: "00000000", width: 1},'Harbin Boundary');
//显示ROI影像并且以321合成,后面命名
Map.addLayer(ROI_collection,{bands:["B4","B3","B2"],gamma:1.3,max:108,min:15},'Harbin Image');
//下载处理好的影像
Export.image.toDrive({
image:ROI_collection,
description: 'Landsat8_2021_11',
fileNamePrefix:'Landsat8_harbin',
region:ROI,
scale:30,
crs: "EPSG:4326",
maxPixels:1e13
})
文章评论