当前位置: 首页 > news >正文

基于 Google Earth Engine 的 DEM 鞍部自动提取

在数字高程模型(DEM)处理中,“鞍部”是指沿一方向为局部高点、沿垂直方向为局部低点的特殊地形关键点。本文提出一种结合 二阶导数卷积核(Hessian 行列式)局部极值坡度约束连通性过滤 的鞍部提取流程,并在 GEE 中实现对北京市附近 DEM 的自动化提取。d
代码进群获取

一、方法思路

  1. 二阶导数卷积核(Hessian)

  2. 邻域极值判断

    • 在更大尺度(如 5×5 窗口)内,判断中心点在东西向为局部凸起(中心 ≥ 东、西),在南北向为局部凹陷(中心 ≤ 南、北)

  3. 坡度与曲率过滤

    • 只保留中等坡度(5°–30°)范围内的点

    • 丢弃曲率(∣det⁡H∣|\det H|∣detH∣)过小的平坦或过大的噪声

  4. 小簇连通性约束

    • 只保留面积(像元数)<= 5 的孤立小簇,剔除大片噪声区


二、GEE 代码

// 1. 定义 ROI:北京市中心 3 km 缓冲区
var roi = ee.Geometry.Point(116.4074, 39.9042).buffer(3000);// 2. 载入 DEM 并裁剪
var dem = ee.Image('USGS/SRTMGL1_003').clip(roi);// 3. 计算坡度(°)
var slope = ee.Terrain.slope(dem);// 4. 构造二阶导数卷积核
var kxx = ee.Kernel.fixed(3,3,[[0,0,0],[1,-2,1],[0,0,0]],1,1,false);
var kyy = ee.Kernel.fixed(3,3,[[0,1,0],[0,-2,0],[0,1,0]],1,1,false);
var kxy = ee.Kernel.fixed(3,3,[[ 0.25, 0, -0.25],[ 0,    0,    0  ],[-0.25, 0,  0.25]],1,1,false);// 12. 可视化
Map.centerObject(roi, 12);
Map.addLayer(dem,    {min:0,   max:2000}, 'DEM', false);
Map.addLayer(slope,  {min:0,   max:60},   'Slope', false);
Map.addLayer(detH,   {min:-0.01,max:0.01},'detH', false);
Map.addLayer(saddle, {palette:['red']},   'Saddle pts');// 13. 导出到 Google Drive
Export.image.toDrive({image: saddle.toInt8(),description: 'Beijing_Saddle_Points',folder: 'GEE_Outputs',fileNamePrefix: 'saddle_beijing',region: roi,scale: 30,maxPixels: 1e8
});

三、代码解读

  • 步骤 1–2:设置分析范围并加载 30 m SRTM DEM。

  • 步骤 3:获取每像元坡度,用于后续剔除极平或极陡区域。

  • 步骤 4–6:卷积近似计算二阶导数并形成 Hessian 行列式,快速定位曲率显著的鞍点候选。

  • 步骤 8–9:在 5×5 窗口内判断局部东西凸起、南北凹陷,捕捉“马鞍”形状。

  • 步骤 10:同时施加曲率阈值和坡度范围,去除噪声和不合地形特征的误检。

  • 步骤 11:以 ConnectedPixelCount 只保留孤立少量像元,过滤成片噪声,得到稀疏、精准的鞍点。

  • 步骤 12–13:可视化检查并导出结果。

http://www.dtcms.com/a/287472.html

相关文章:

  • 基于Python的毕业设计选题管理系统设计与实现
  • 【CAN通信】AUTOSAR架构下TC3xx芯片是如何将一帧CAN报文发送出去的
  • NX二次开发常用函数坐标转化UF_MTX4_csys_to_csys和UF_MTX4_vec3_multipl
  • Linux基础命令(第二期)
  • 地图定位与导航
  • Go-Redis × RediSearch 全流程实践
  • Node.js:Stream、模块系统
  • KANO模型分类,以扫地机功能为例子
  • 实验-华为综合
  • 论文略读: RASA: RANK-SHARING LOW-RANK ADAPTATION
  • 《Linux系统配置实战:NTP时间同步与SSH免密登录全流程指南》​​
  • 【洛谷】询问学号、寄包柜、移动零、颜色分类(vector相关算法题p1)
  • LVS(Linux virual server)基础概念详解
  • 网络通信原理:分层协作与协议解析
  • Matplotlib 30分钟精通
  • 免费收听广播
  • C++类和对象(一)基础内容讲解
  • 使用uvx运行和安装Python应用程序
  • GEO营销:AI时代的搜索优化新赛道——从DeepSeek爆火看生成式引擎优化的崛起
  • 边界条件汇总
  • 初等数论Ⅱ
  • Spring监听器
  • (LeetCode 面试经典 150 题) 49. 字母异位词分组 (哈希表)
  • 开疆智能Profinet转ModbusTCP网关连接康耐视InSight相机案例
  • [故障诊断方向]SNNs:针对小样本轴承故障诊断的孪生神经网络模型
  • ICT测试原理之shorts(短路)测试原理
  • 【2025最新】 .NET FrameWork微软离线运行库合集,一键安装版
  • 【数据类型与变量】
  • python爬虫之获取渲染代码
  • SAP的数据转换和处理