Google Earth Engine 引擎平台有大量影像数据,Landsat系列、Sentinel系列、Modis系列,可在线查询、获取数据、在线处理数据。
一、引擎介绍
首先,你需要能访问到引擎(https://code.earthengine.google.com/)。其次,你还需要一个Google账号。然后,就可以登录并访问Code在线编辑器了。
二、下载数据
这里的操作为,上传矢量数据shapefile文件,查询一定范围内的哨兵数据,选取蓝绿红三个波段组合后,导出GeoTiff文件到Google Drive,然后从Drive云盘下载到本地。(Drive免费存储只有15GB,所以如果数据过多就需要分批次导出清理云盘;此外如果下载数据过大GEE本身也有限制,单个Task不能太大。)
1. 上传Shapefile文件
在assets中可以看到上传的Shapefile文件:
上传完成后,即可以加载Shapefile数据并显示在地图上:
var district = ee.FeatureCollection("users/xxxxx/data/nj");
var dsize = district.size();
print(dsize);
var district_geometry = district.geometry();
Map.centerObject(district_geometry,12);
Map.addLayer(district);
图上显示效果:
2.查询哨兵数据
查询特定时间段内、控制含云量以及加载到地图上:
function maskS2clouds(image) {
var qa = image.select('QA60');
// Bits 10 and 11 are clouds and cirrus, respectively.
var cloudBitMask = 1 << 10;
var cirrusBitMask = 1 << 11;
// Both flags should be set to zero, indicating clear conditions.
var mask = qa.bitwiseAnd(cloudBitMask).eq(0)
.and(qa.bitwiseAnd(cirrusBitMask).eq(0));
return image.updateMask(mask).divide(10000);
}
// Map the function over one year of data.
// Load Sentinel-2 TOA reflectance data.
var dataset = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(district_geometry)
.filterDate('2017-01-01', '2021-01-01')
// Pre-filter to get less cloudy granules.
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
.map(maskS2clouds);
var rgbVis = {
min: 0.0,
max: 0.3,
bands: ['B4', 'B3', 'B2'],
};
Map.addLayer(dataset.median(), rgbVis, 'RGB');
对于云掩膜控制,主要来源于官方数据描述:
上图后效果如下:
3. 导出下载数据
导出到云盘Drive。
//export data
var exportdataset = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(district_geometry)
.filterDate('2017-01-01', '2021-01-01')
// Pre-filter to get less cloudy granules.
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
.map(maskS2clouds)
.select(['B4', 'B3', 'B2']);
var mosaic = exportdataset.mosaic();
Export.image.toDrive({
image:mosaic,
description:'njimg',
scale:10,
maxPixels: 1e13,
region:district_geometry,
fileFormat: 'GeoTIFF',
formatOptions: {
cloudOptimized: true
}
});
在右侧Task面板点击run,即可以开始下载任务:
注:如果数据过大,可以通过maxPixels参数做一定程度调整;但是如果仍然超限,可能就需要考虑基于小行政区划SHP数据分区下载。