本文内容基于 GEE 01 -Sentinel2A 哨兵数据下载_suntongxue100的博客-CSDN博客并对其原有内容作了补充和修改
对于GEE的https://code.earthengine.google.com/#界面的基本情况本文不再赘述,当然,使用前应拥有一个google账号并完成GEE的注册。
一.外部导入shp文件
点击NEW之后选择shapefiles
导入需shp、shx、dbf三个文件
直接点击箭头即可将shp文件导入地图中
这部分是中间部分的代码
可根据注释部分更改自己想要的参数
var district = ee.FeatureCollection("table ID") //此处填入所导入shp文件的tabel id
var dsize = district.size();
print(dsize);
var district_geometry = district.geometry();
Map.centerObject(district_geometry,1);
Map.addLayer(district);
function maskS2clouds(image) {
var qa = image.select('QA60');
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);
}
//地图中显示部分
var dataset = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(district_geometry)
.filterDate('2021-04-01', '2021-11-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');
var exportdataset = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(district_geometry)
.filterDate('2021-04-01', '2021-11-01') //此处应与前部分一致
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)) //同上
.map(maskS2clouds)
.select(['B4', 'B3', 'B2','B5','B6','B7','B8','B9']);
//输出影像所含波段数(根据个人需求更改)
var mosaic = exportdataset.mosaic();
Export.image.toDrive({
image:mosaic,
description:'输出名', //此处修改输出名字
scale:10,
maxPixels: 1e13,
region:district_geometry,
fileFormat: 'GeoTIFF', //输出格式(无需修改)
formatOptions: {
cloudOptimized: true
}
});
效果如图
点击RUN即可将影像载入到云端硬盘(https://drive.google.com/drive/my-drive)中
之后在云端硬盘中选择下载即可。
二.直接在地图中查询影像
因为存在大范围影像(省级范围)需求,但若范围过大存在融合部分会导致单景(多波段)大小过大,并且直接在地图上绘制也方便查询对某段时间内大范围影像的分布情况。
代码部分与导入shp文件有部分区别,在图中绘制后即可运行
绘制完成后会出现以下内容:
function maskS2clouds(image) {
var qa = image.select('QA60');
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);
}
var dataset = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(geometry)
.filterDate('2021-04-01', '2021-11-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');
var exportdataset = ee.ImageCollection('COPERNICUS/S2')
.filterBounds(geometry)
.filterDate('2021-04-01', '2021-11-01')
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20))
.map(maskS2clouds)
.select(['B4', 'B3', 'B2','B5','B6','B7','B8','B9']);
var mosaic = exportdataset.mosaic();
Export.image.toDrive({
image:mosaic,
description:'输出名',
scale:10,
maxPixels: 1e13,
region:geometry,
fileFormat: 'GeoTIFF',
formatOptions: {
cloudOptimized: true
}
});
利用这种方法可以查询某段时间内符合云量要求的影响,并能灵活的下载单个影像
(草率画图仅作演示)
选择所需要的位置后点击RUN保存至云端硬盘中,再从云端硬盘中下载即可