简介
在本篇博客中,我们将使用Google Earth Engine (GEE) 对特定区域内的地形进行分析。我们将使用SRTM(Shuttle Radar Topography Mission)数据集获取高程信息,并计算坡度、坡向等地形属性。此外,我们还将使用ALOS(Advanced Land Observing Satellite)数据集来分析数字地表模型(DSM)。
背景知识
SRTM数据集
SRTM是一个全球高程数据集,提供了约30米分辨率的地形信息,广泛应用于地形分析和制图。
ALOS数据集
ALOS是日本宇宙航空研究开发机构(JAXA)提供的高分辨率卫星数据集,其中包括数字地表模型(DSM),可用于地形分析。
地形属性
坡度、坡向等地形属性对于理解地表水文过程、植被分布和土地利用等自然现象至关重要。
完整代码
代码语言:javascript复制// 定义研究区域的坐标点
var cor = [
[48.646401641929856, 35.98889945187288],
[50.211953399742356, 35.98889945187288],
[50.211953399742356, 37.15353368743586],
[48.646401641929856, 37.15353368743586],
[48.646401641929856, 35.98889945187288]
];
// 创建多边形区域
var roi = ee.Geometry.Polygon(cor);
// 将地图中心设置为研究区域
Map.centerObject(roi);
// 加载SRTM高程数据
var srtm = ee.Image('CGIAR/SRTM90_V4');
var srtmElevation = srtm.select('elevation');
// 裁剪SRTM数据到研究区域
Map.addLayer(srtmElevation.clip(roi), [], 'DEM SRTM90', false);
// 打印SRTM高程直方图
print(
ui.Chart.image.histogram(srtmElevation, roi, 100)
);
// 计算坡度
var slope = ee.Terrain.slope(srtmElevation);
Map.addLayer(slope.clip(roi), {}, 'Slope', false);
// 计算坡向
var aspect = ee.Terrain.aspect(srtmElevation);
Map.addLayer(aspect.clip(roi), {}, 'Aspect', false);
// 计算地形产品
var terrainProducts = ee.Terrain.products(srtmElevation);
print(terrainProducts);
// 导出地形产品到Google Drive
Export.image.toDrive({
image: terrainProducts.clip(roi).float(),
description: 'DEM Products',
scale: 30,
region: roi,
crs: terrainProducts.getInfo().crs,
folder: 'DEM',
maxPixels: 1e13
});
// 加载ALOS DSM数据并计算平均值
var alos = ee.ImageCollection('JAXA/ALOS/AW3D30/V1_1')
.select('AVE_DSM')
.mean();
// 打印ALOS DSM直方图
print(
ui.Chart.image.histogram(alos, roi, 100)
);
代码详解
1. 定义研究区域
创建一个多边形区域roi
,用于限定分析的地理范围,并设置地图中心。
2. 加载和裁剪SRTM数据
加载SRTM数据集,并选择高程波段。将其裁剪到研究区域并添加到地图上。
3. 地形属性计算
计算坡度和坡向,并分别添加到地图上。
4. 地形产品
计算并打印地形产品,如曲率等,并导出到Google Drive。
5. 加载和分析ALOS数据
加载ALOS DSM数据集,并计算整个集合的平均值,然后打印直方图。
结论
本教程展示了如何使用GEE进行地形分析,包括高程数据的加载、裁剪、坡度和坡向的计算,以及地形产品的导出。通过这些分析,我们可以更好地理解地形特征及其对地表过程的影响。
进一步探索
GEE提供了多种工具和方法来进行地形和其它地理空间数据分析。在后续的教程中,我们将继续探索GEE在不同领域的应用。