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

告别ArcGIS!用GEE+QGIS搞定流域DEM下载与地形分析(附完整代码)

告别ArcGIS!用GEE+QGIS搞定流域DEM下载与地形分析(附完整代码)

在GIS领域,数字高程模型(DEM)是地形分析的基础数据。传统上,ArcGIS凭借其完善的功能和稳定的性能,成为DEM处理的首选工具。但对于预算有限的个人用户或小型团队来说,ArcGIS高昂的授权费用往往成为一道难以逾越的门槛。今天,我将分享一套完全免费的替代方案——Google Earth Engine(GEE)与QGIS的组合工作流,让你无需ArcGIS也能高效完成从DEM获取到地形分析的全流程操作。

这套方案特别适合以下场景:

  • 你需要快速获取特定流域或研究区域的DEM数据
  • 你的预算有限,无法承担商业GIS软件的费用
  • 你希望利用云端计算能力处理大规模地理数据
  • 你需要进行基础的坡度、坡向等地形分析

1. 准备工作与环境配置

1.1 注册与配置GEE账号

Google Earth Engine是一个强大的地理空间分析平台,提供海量的遥感数据和处理能力。要使用GEE,首先需要:

  1. 访问Google Earth Engine官网并注册开发者账号
  2. 等待Google审核通过(通常需要1-2个工作日)
  3. 登录后进入代码编辑器界面(https://code.earthengine.google.com/)

1.2 安装QGIS

QGIS是一款开源的地理信息系统软件,功能强大且完全免费:

  • 前往QGIS官网下载最新稳定版
  • 按照向导完成安装(支持Windows、macOS和Linux)
  • 首次启动后,建议安装以下插件:
    • SCP(Semi-Automatic Classification Plugin)
    • QuickMapServices(用于加载底图)

1.3 准备研究区域边界数据

你需要准备研究区域的矢量边界文件(如Shapefile),这是后续DEM裁剪的基础。确保你的边界文件:

  • 采用WGS84坐标系(EPSG:4326)
  • 文件大小不超过GEE的上传限制(通常10MB以内)
  • 包含明确的几何信息

2. 在GEE中获取DEM数据

2.1 上传边界数据到GEE

在GEE代码编辑器中,点击"Assets"选项卡,然后选择"New"→"Shape files"上传你的边界文件。上传完成后,记下生成的asset路径(格式为projects/your-project-name/assets/your-file-name)。

2.2 编写DEM提取代码

以下是一个完整的DEM提取脚本,可以直接在GEE代码编辑器中使用:

// 1. 加载研究区域边界 var roi = ee.FeatureCollection('projects/YOUR_PROJECT/assets/YOUR_ASSET_NAME'); // 2. 获取SRTM DEM数据(全球30米分辨率) var dem = ee.Image('USGS/SRTMGL1_003').select('elevation'); // 3. 裁剪DEM到研究区域 var clippedDem = dem.clip(roi); // 4. 可视化设置 Map.centerObject(roi, 8); Map.addLayer(roi, {color: 'red'}, 'Study Area'); Map.addLayer(clippedDem, {min: 0, max: 5000, palette: ['blue', 'green', 'yellow', 'red']}, 'DEM'); // 5. 导出DEM到Google Drive Export.image.toDrive({ image: clippedDem, description: 'DEM_Export', scale: 30, region: roi.geometry(), maxPixels: 1e13, folder: 'GEE_Exports', crs: 'EPSG:4326' });

2.3 执行代码与数据导出

  1. 将上述代码粘贴到GEE代码编辑器中
  2. 替换YOUR_PROJECTYOUR_ASSET_NAME为你的实际项目名称和资产名称
  3. 点击"Run"执行代码
  4. 在"Tasks"选项卡中点击"Run"开始导出任务
  5. 导出完成后,DEM文件将保存到你的Google Drive指定文件夹中

3. 在QGIS中进行地形分析

3.1 导入DEM数据

  1. 打开QGIS,创建一个新项目
  2. 通过"Layer"→"Add Layer"→"Add Raster Layer"导入从GEE下载的DEM文件
  3. 右键点击图层,选择"Properties"→"Symbology"调整显示样式

3.2 坡度分析

坡度是地表倾斜程度的度量,在QGIS中可以轻松计算:

  1. 打开"Processing Toolbox"(如果未显示,可通过"View"→"Panels"启用)
  2. 搜索并选择"Slope"工具
  3. 在参数设置中:
    • 输入DEM图层
    • 选择输出文件位置
    • 设置输出格式(建议使用GeoTIFF)
  4. 点击"Run"执行计算

3.3 坡向分析

坡向表示坡面的朝向,对太阳辐射和植被分布等研究很重要:

# 在QGIS Python控制台中也可以使用以下代码进行坡向分析 processing.run("gdal:aspect", {'INPUT':'/path/to/your/dem.tif', 'ZEVENBERGEN':False, 'TRIG_ANGLE':False, 'ZERO_FLAT':False, 'COMPUTE_EDGES':False, 'OUTPUT':'/path/to/output/aspect.tif'})

3.4 地形阴影与可视化增强

为了更直观地展示地形特征,可以创建地形阴影:

  1. 使用"Raster"→"Terrain Analysis"→"Hillshade"工具
  2. 设置适当的方位角(Azimuth)和高度角(Altitude)
  3. 将生成的hillshade图层设置为DEM图层的底图,并调整透明度

4. 进阶技巧与性能优化

4.1 处理大区域DEM数据

当研究区域较大时,可能会遇到以下问题:

问题解决方案
GEE导出限制将区域分块处理,然后合并
内存不足降低处理分辨率或使用QGIS的"Raster Calculator"分步计算
处理速度慢启用QGIS的多线程处理(设置→Options→Processing)

4.2 精度验证与质量控制

为确保数据质量,建议:

  1. 与已知高程点(如GNSS测量点)进行对比验证
  2. 检查DEM边缘是否存在异常值
  3. 使用"Raster"→"Analysis"→"Raster Calculator"进行数据一致性检查

4.3 自动化工作流

对于需要频繁执行的任务,可以创建QGIS Processing Model:

  1. 打开"Processing Toolbox"→"Models"→"Create New Model"
  2. 拖入输入参数和处理算法
  3. 保存模型,以后可以直接调用

5. 替代数据源与扩展应用

除了SRTM DEM,GEE还提供多种高程数据:

  • NASADEM:全球30米分辨率,SRTM的改进版
  • ALOS World 3D:全球30米分辨率,日本ALOS卫星数据
  • Copernicus DEM:欧洲航天局提供的全球DEM

在QGIS中,这些数据可以用于更专业的分析:

  1. 水文分析(流域划分、水流方向)
  2. 可视域分析(Viewshed Analysis)
  3. 地形特征提取(山脊线、山谷线)

我在实际项目中发现,对于中小流域(<1000km²)的分析,这套GEE+QGIS的组合完全能够满足需求,而且处理速度往往比本地运行的ArcGIS更快,特别是在需要多时相分析或大区域处理时,GEE的云端计算优势更加明显。

http://www.jsqmd.com/news/610342/

相关文章:

  • Windows下3DGS环境搭建避坑实录:从CUDA版本冲突到子模块安装,我的4070Ti踩坑全记录
  • 坐标系工艺参数的设定
  • 论文阅读:arixv 2026 ClawSafety: “Safe“ LLMs, Unsafe Agents
  • 无公网IP解决方案:OpenClaw内网穿透对接千问3.5-9B
  • 代码审计 | Log4j2 —— CVE-2021-44228 JNDI 注入与递归解析的完整链路分析
  • 2026年地坪修补厂家权威名录:防火地坪漆/厂房高强度空鼓灌浆料/固化地坪染色剂/固化地坪龟裂纹修复剂/选择指南 - 优质品牌商家
  • 使用Alpine配置WSL ssh门户内
  • 2026年MBA辅导值不值得报:笔试EMBA培训、笔试EMBA辅导、笔试MEM培训、笔试MEM辅导、管理类联考培训选择指南 - 优质品牌商家
  • Figma+Cursor联动实战:5分钟搞定AI设计稿生成(含最新manifest导入避坑指南)
  • FreakStudio捎
  • 第7章 序列凸近似(SCA)与迭代优化
  • 智能农业四情监测系统
  • 张量并行(Tensor Parallelism)全面深度解析
  • .NET 9容器化避坑清单,12个导致K8s滚动更新失败的隐藏陷阱及修复代码
  • OpenClaw跨平台同步:Qwen3-14b_int4_awq实现多设备任务接力
  • 打开PCCAD(AutoCAD2013-2017版本)即死机;AutoCAD2018含以上版本,则PCCAD打开正常
  • 开源项目 Agentic OS 实战指南:手把手教你从 ANOLISA 源码安装
  • JAVA多线程并发编程:并发容器与线程协作实战
  • 【实战 03】本地小模型真的能跑 Text2SQL 吗?Qwen2.5-7B 这种“平替”方案的实际表现
  • Windows下OpenClaw安装详解:Qwen3-14b_int4_awq模型接入与调试
  • 融合 PSO 的改进鲸鱼优化算法(PSO‑ImWOA)无人机三维航迹规划研究(Python代码实现)
  • 别再被CVX报错劝退了!手把手教你用inv_pos和rel_entr函数搞定MATLAB凸优化
  • 为什么你的C# 13主构造函数反而变慢了?揭秘字段初始化顺序、属性注入与依赖解析的致命时序冲突
  • ARM与x86架构差异及32/64位开发实践
  • Servlet 服务器 HTTP 响应
  • OpenClaw隐私保护技巧:Qwen3.5-9B-AWQ-4bit本地处理敏感证件照
  • 2026Q2上海企业投资香港审批流程全解析及服务商选型指南:国际海牙认证、大使馆公证认证代办、学历证明海牙认证选择指南 - 优质品牌商家
  • 逆向思维破解滑块验证码:当YOLOv5遇上双缺口与JS混淆
  • Mojo+Python混合编程避坑手册:5个致命安装错误及对应修复命令(附官方源码验证)
  • 高阻态原理与应用:数字电路的隐身术