一、使用GEE基本条件:
1、搭上梯子
2、网址:https://earthengine.google.com/
3、谷歌账号:直接登录,注册免费云项目,之后可从已有代码(click here go to thr Code Editor)进入代码编辑台,如下图:
二、GEE代码编辑平台初识
三、使用GEE批量下载无云影响
1、导入所需影像数据
在搜索栏搜索所需要的数据,点击数据可查看数据信息,选好数据后点击import即可导入数据,如下图示:
2、选定所需下载区域
方法一:代码导入
var geometry =
/* color: #ffc82d */
/* shown: false */
/* displayProperties: [
{
"type": "rectangle"
}
] */
ee.Geometry.Polygon(
[
[
[经度, 纬度],
[经度, 纬度],
[经度, 纬度],
[经度, 纬度],
] /在所研究区域顺时针方向将各点经纬度坐标写上去,无需形成闭环
], null, false);
Map.centerObject(geometry);
方法二:在地图上框定区域
3、根据不同需求选定导入数据的影像波段
var band = ee.String('Multiband') //MNDWI,NDVI,Multiband
var bandid =
ee.Algorithms.If( band.equals(ee.String('MNDWI') ), ['MNDWI'],
ee.Algorithms.If( band.equals(ee.String('NDVI')), ['NDVI'],
ee.Algorithms.If( band.equals(ee.String('Multiband')),
ee.Algorithms.If( sat.equals(ee.String('LT05')), ['B1','B2','B3','B4','B5','B6','B7'],
ee.Algorithms.If( sat.equals(ee.String('LE07')), ['B1','B2','B3','B4','B5','B7'],
ee.Algorithms.If( sat.equals(ee.String('LC08')), ['B1','B2','B3','B4','B5','B6','B7'],
ee.Algorithms.If( sat.equals(ee.String('LC09')), ['B1','B2','B3','B4','B5','B6','B7'],
['B1','B2','B3']))))
)
)
)
4、设置影像时间、区域、分辨率
var col=col
.filter(ee.Filter.calendarRange(2019,2019,'year'))
.filter(ee.Filter.calendarRange(1,12,'month'))
.filterBounds(ROI)
.map(function(image){return image.clip(ROI)})
print(col)
var visparam={bands:['B4','B3','B2'],max:0.4,min:0.1} /设置在地图上的显示格式
5、计算云量并筛选
var col_withCloudiness = col.map(function(image) {
var cloud = ee.Algorithms.Landsat.simpleCloudScore(image).select('cloud');
var cloudiness = cloud.reduceRegion({
reducer: 'mean',
geometry: ROI,
scale: 30,
});
return image.set(cloudiness)});
var col = col_withCloudiness.filter(ee.Filter.lt('cloud', 20)).sort('system:time_start',true);
上述代码筛选的是云量小于20%的影像,运量数值大小可以自行确定,不过云量越小得到的影像就越少,对于河流影像下载,为了尽量筛选河流不被云遮住的影像,可以使用多边形圈定河流范围,这样筛选出来的影像会更加精确一点。
6、制作gif图像观察筛选的影像
var gifParams = {
'region': ROI,
'dimensions': 500,
// 'crs': 'EPSG:3857',
min:.03,max:0.3, bands:['B3','B2','B1'],
'framesPerSecond': 10//, 'format': 'gif'
};
print(ui.Thumbnail(col, gifParams));
print(col.getVideoThumbURL(gifParams));
其中, 'framesPerSecond': 10//, 'format': 'gif',可以通过改变数值来改变影像变化的快慢。下载的影像如果太大会出现无法生成影像的情况。
7、批量导出影像
var batch = require('users/fitoprincipe/geetools:batch') //调用导出工具
batch.Download.ImageCollection.toDrive(col,"文件名,自行修改",
{scale:30, crs:"EPSG:4326",type:"float",region:ROI})
8、利用后台批量下载影像至谷歌云盘
按f12打开开发工具,进入控制台,在代码区粘贴以下代码并按enter键即可自动下载所有导出的影像。
// F12控制台批量执行
runTasks = function() {
const evt = new MouseEvent('click', {bubbles: true, cancelable: true, ctrlKey: true})
$$('.run-button' ,$$('ee-task-pane')[0].shadowRoot).forEach(function(e) {
e.dispatchEvent(evt)
})
}
runTasks()