作者:CSDN @ _养乐多_
写论文的时候经常需要下载多时相影像,用来验证时间序列变化检测的精度,比如验证CCDC或者LandTrendr的检测精度如何,或者需要多时相对比地表覆盖变化。
基于以上需求,本文将介绍如何在 Google Earth Engine (GEE)平台上,快速可视化和下载研究区的影像。
由于 Landsat 遥感数据的覆盖时间最长,因此本文将获取 Landsat 遥感数据的函数进行了包装,只需要指定时间,即可得到指定时间范围内的影像。影像可以下载到本地软件处理。
结果如下图所示,
之前看到CCDC连续变化检测算法中,官方文档给的API函数中也有一个可以验证 CCDC 检测结果,不过这个 API 需要输入 CCDC 变化检测的结果,才可以使用。因此,本文介绍了一个可以直接获取 Landsat 影像的 API 函数,使用简单,只需输入时间,即可得到影像。
一、核心函数
1.1 获取指定日期的影像
medianComposite(date, dayRange)
函数 | 返回值 |
---|---|
medianComposite(date, dayRange) | 用户指定的时间前后15天(默认15,可修改)的中值合成影像 |
参数 | 类型 | 说明 |
---|---|---|
date | string,字符串 | 用户指定的时间,格式’年-月-日’,比如’2023-6-15’ |
dayRange | int,整数 | (可选,默认15)中值合成影像的时间范围,比如30 |
二、示例代码链接
https://code.earthengine.google.com/674ad2584346f265336bef1379bc86b6?noload=true
三、简单示例
var roi = geometry; // Geometry 格式研究区边界
// var roi = table; // FeatureCollection 格式研究区边界
Map.centerObject(roi, 13);
var eevs = require('users/949384116/lib:ImageVisualization/VectorStyle')
var roiWithStyle = eevs.setDefaultGeometryStyle(geometry); // Geometry 的默认样式设置
// var roiWithStyle = eevs.setDefaultTableStyle(table); // FeatureCollection 的默认样式设置
Map.addLayer(roiWithStyle, {}, 'Vector Boundary');
var eevpi = require('users/949384116/lib:TimeSeriesAnalysis/VerificationPointImage');
var date3 = '2013-8-15';
var medianCompositeImage3 = eevpi.medianComposite(date3).clip(roi);
visImage(medianCompositeImage3, date3);
//*********code-lib*********//
function visImage(image, date){
var visualization = {
bands: [ 'SR_B4', 'SR_B3', 'SR_B2'],
min: 0.0,
max: 0.3,
};
Map.addLayer(image, visualization, 'True Color Image ' + date);
// Export.image.toDrive({
// image: image,
// description: 'Image ' + date,
// folder: 'VerificationPointImages',
// region: roi,
// scale: 30,
// crs: 'EPSG:4326',
// maxPixels: 1e13,
// });
}
四、多时相对比
var roi = geometry; // Geometry 格式研究区边界
// var roi = table; // FeatureCollection 格式研究区边界
Map.centerObject(roi, 13);
var eevs = require('users/949384116/lib:ImageVisualization/VectorStyle')
var roiWithStyle = eevs.setDefaultGeometryStyle(geometry); // Geometry 的默认样式设置
// var roiWithStyle = eevs.setDefaultTableStyle(table); // FeatureCollection 的默认样式设置
Map.addLayer(roiWithStyle, {}, 'Vector Boundary');
var eevpi = require('users/949384116/lib:TimeSeriesAnalysis/VerificationPointImage');
var date = '1988-6-15';
var medianCompositeImage = eevpi.medianComposite(date).clip(roi);
visImage(medianCompositeImage, date);
var date1 = '1992-6-15';
var medianCompositeImage1 = eevpi.medianComposite(date1).clip(roi);
visImage(medianCompositeImage1, date1);
var date2 = '2003-6-15';
var medianCompositeImage2 = eevpi.medianComposite(date2).clip(roi);
visImage(medianCompositeImage2, date2);
var date3 = '2013-8-15';
var medianCompositeImage3 = eevpi.medianComposite(date3).clip(roi);
visImage(medianCompositeImage3, date3);
var date4 = '2023-6-15';
var medianCompositeImage4 = eevpi.medianComposite(date4, 30).clip(roi);
visImage(medianCompositeImage4, date4);
//*********code-lib*********//
function visImage(image, date){
var visualization = {
bands: [ 'SR_B4', 'SR_B3', 'SR_B2'],
min: 0.0,
max: 0.3,
};
Map.addLayer(image, visualization, 'True Color Image ' + date);
// Export.image.toDrive({
// image: image,
// description: 'Image ' + date,
// folder: 'VerificationPointImages',
// region: roi,
// scale: 30,
// crs: 'EPSG:4326',
// maxPixels: 1e13,
// });
}
声明:
本人作为一名作者,非常重视自己的作品和知识产权。在此声明,本人的所有原创文章均受版权法保护,未经本人授权,任何人不得擅自公开发布。
本人的文章已经在一些知名平台进行了付费发布,希望各位读者能够尊重知识产权,不要进行侵权行为。任何未经本人授权而将付费文章免费或者付费(包含商用)发布在互联网上的行为,都将视为侵犯本人的版权,本人保留追究法律责任的权利。
谢谢各位读者对本人文章的关注和支持!