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

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

告别ArcGIS用GEEQGIS搞定流域DEM下载与地形分析附完整代码在GIS领域数字高程模型DEM是地形分析的基础数据。传统上ArcGIS凭借其完善的功能和稳定的性能成为DEM处理的首选工具。但对于预算有限的个人用户或小型团队来说ArcGIS高昂的授权费用往往成为一道难以逾越的门槛。今天我将分享一套完全免费的替代方案——Google Earth EngineGEE与QGIS的组合工作流让你无需ArcGIS也能高效完成从DEM获取到地形分析的全流程操作。这套方案特别适合以下场景你需要快速获取特定流域或研究区域的DEM数据你的预算有限无法承担商业GIS软件的费用你希望利用云端计算能力处理大规模地理数据你需要进行基础的坡度、坡向等地形分析1. 准备工作与环境配置1.1 注册与配置GEE账号Google Earth Engine是一个强大的地理空间分析平台提供海量的遥感数据和处理能力。要使用GEE首先需要访问Google Earth Engine官网并注册开发者账号等待Google审核通过通常需要1-2个工作日登录后进入代码编辑器界面https://code.earthengine.google.com/1.2 安装QGISQGIS是一款开源的地理信息系统软件功能强大且完全免费前往QGIS官网下载最新稳定版按照向导完成安装支持Windows、macOS和Linux首次启动后建议安装以下插件SCPSemi-Automatic Classification PluginQuickMapServices用于加载底图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 执行代码与数据导出将上述代码粘贴到GEE代码编辑器中替换YOUR_PROJECT和YOUR_ASSET_NAME为你的实际项目名称和资产名称点击Run执行代码在Tasks选项卡中点击Run开始导出任务导出完成后DEM文件将保存到你的Google Drive指定文件夹中3. 在QGIS中进行地形分析3.1 导入DEM数据打开QGIS创建一个新项目通过Layer→Add Layer→Add Raster Layer导入从GEE下载的DEM文件右键点击图层选择Properties→Symbology调整显示样式3.2 坡度分析坡度是地表倾斜程度的度量在QGIS中可以轻松计算打开Processing Toolbox如果未显示可通过View→Panels启用搜索并选择Slope工具在参数设置中输入DEM图层选择输出文件位置设置输出格式建议使用GeoTIFF点击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 地形阴影与可视化增强为了更直观地展示地形特征可以创建地形阴影使用Raster→Terrain Analysis→Hillshade工具设置适当的方位角Azimuth和高度角Altitude将生成的hillshade图层设置为DEM图层的底图并调整透明度4. 进阶技巧与性能优化4.1 处理大区域DEM数据当研究区域较大时可能会遇到以下问题问题解决方案GEE导出限制将区域分块处理然后合并内存不足降低处理分辨率或使用QGIS的Raster Calculator分步计算处理速度慢启用QGIS的多线程处理设置→Options→Processing4.2 精度验证与质量控制为确保数据质量建议与已知高程点如GNSS测量点进行对比验证检查DEM边缘是否存在异常值使用Raster→Analysis→Raster Calculator进行数据一致性检查4.3 自动化工作流对于需要频繁执行的任务可以创建QGIS Processing Model打开Processing Toolbox→Models→Create New Model拖入输入参数和处理算法保存模型以后可以直接调用5. 替代数据源与扩展应用除了SRTM DEMGEE还提供多种高程数据NASADEM全球30米分辨率SRTM的改进版ALOS World 3D全球30米分辨率日本ALOS卫星数据Copernicus DEM欧洲航天局提供的全球DEM在QGIS中这些数据可以用于更专业的分析水文分析流域划分、水流方向可视域分析Viewshed Analysis地形特征提取山脊线、山谷线我在实际项目中发现对于中小流域1000km²的分析这套GEEQGIS的组合完全能够满足需求而且处理速度往往比本地运行的ArcGIS更快特别是在需要多时相分析或大区域处理时GEE的云端计算优势更加明显。

相关文章:

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

告别ArcGIS!用GEEQGIS搞定流域DEM下载与地形分析(附完整代码) 在GIS领域,数字高程模型(DEM)是地形分析的基础数据。传统上,ArcGIS凭借其完善的功能和稳定的性能,成为DEM处理的首选工…...

移动气象站 屏幕款便携式自动气象站

屏幕款便携式自动气象站,作为可移动观测型气象站,以“超声波测风高精度传感器一体化集成”为核心技术,突破传统气象站布设繁琐、便携性差、数据精度不足的痛点,凭借轻快便携的支架设计、免调试快速布置、多传输方式适配等优势&…...

从理论到实践:信道利用率在停止-等待与回退N帧协议中的量化分析与优化

1. 信道利用率的核心概念与实战意义 第一次接触信道利用率这个概念时,我也被各种公式绕得头晕。直到在卫星通信项目中踩过几次坑才真正明白:信道利用率就是衡量你把通信线路"压榨"到什么程度的标尺。想象你租了条高速公路送货,总不…...

景区气象站是什么

景区气象站监测项目包含负氧离子、pm2.5、pm10、温度、湿度、气压、含氧量、噪音、风速、风向等,是一款用于林业、景区、公园、环保、气象、农业等领域的实时环境气象监测与发布的监测系统,主要针对景区、湿度公园空气质量环境进行集中监控和管理&#x…...

河道水质在线监测系统

河道水质监测系统,以“立杆式微型站太阳能供电”为核心设计,主打“无需基建、便捷部署、精准监测”,彻底打破传统监测模式的局限。系统主要由基础支架(含立杆、地笼、ABS防腐耐蚀防护箱)、供电系统、监控主机、水质传感…...

00 | 从零打造Claude Code:AI编程Agent完整解析(一)——引言篇

从零打造Claude Code:AI编程Agent完整解析(一)——引言篇 声明: 📝 作者:甜城瑞庄的核桃(ZMJ) 原创学习笔记,欢迎分享,但请保留作者信息及原文链接哦~ 本系列文章深度解析如何从零开始构建一个类似Claude Code的AI编程助手,涵盖Agent循环、工具系统、提示词工程、权限…...

融合 PSO 的改进鲸鱼优化算法(PSO‑ImWOA)无人机三维航迹规划研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...

.NET 9容器化避坑清单,12个导致K8s滚动更新失败的隐藏陷阱及修复代码

第一章:.NET 9容器化部署的核心演进与K8s适配全景 .NET 9标志着微软在云原生交付范式上的关键跃迁——其运行时、SDK与基础镜像深度重构,为容器化场景注入原生优化能力。与以往版本相比,.NET 9默认启用AOT(Ahead-of-Time&#xff…...

律所主任如何高效监控所里几百个案子的进度

结论律所主任想要高效监控所里几百个案子的进度,纯靠人工询问或 Excel 表格是无法实现的,必须依托数字化管理工具(如"案件云"系统)。通过建立可视化案件看板、设置关键节点与期限自动化预警,以及实现全所云端…...

Mojo+Python混合编程避坑手册:5个致命安装错误及对应修复命令(附官方源码验证)

第一章:MojoPython混合编程避坑手册:5个致命安装错误及对应修复命令(附官方源码验证) Mojo 是 Modular 官方推出的高性能编程语言,原生兼容 Python 语法,但其工具链对环境依赖极为敏感。初学者在配置 MojoP…...

OpenClaw多模型对比:Phi-3-vision-128k-instruct与纯文本模型任务效率实测

OpenClaw多模型对比:Phi-3-vision-128k-instruct与纯文本模型任务效率实测 1. 测试背景与目标 最近在尝试用OpenClaw搭建个人自动化工作流时,遇到了一个实际需求:需要定期从特定网页抓取内容并生成分析报告。这个任务既包含图文信息提取&am…...

2025届最火的五大AI论文网站横评

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在生成式人工智能技术于学术写作里被广泛施行当下,维普平台正式推出了AIGC内容检…...

Apache APISIX Dashboard API权限绕过导致RCE(CVE-2021-45232)复现

Apache APISIX是一个动态、实时、高性能API网关,而Apache APISIX Dashboard是一个配套的前端面板。 Apache APISIX Dashboard 2.10.1版本前存在两个API/apisix/admin/migrate/export和/apisix/admin/migrate/import,他们没有经过droplet框架的权限验证&…...

2025届必备的六大AI辅助写作平台横评

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 进行学术写作以及内容创作之际,使文本的AI生成痕迹得以降低,这是提升…...

AI 时代,计算机专业学生该怎么学?昂

整体排查思路 我们的目标是验证以下三个环节是否正常: 登录成功时:服务器是否正确生成了Session并返回了包含正确 JSESSIONID的Cookie给浏览器。 浏览器端:浏览器是否成功接收并存储了该Cookie。 后续请求:浏览器在执行查询等操作…...

VsCode插件避坑指南:我为什么卸载了这些热门插件(附替代方案)

VSCode插件避坑指南:我为什么卸载了这些热门插件(附替代方案) 第一次打开VSCode的插件市场时,那种感觉就像走进了一家琳琅满目的糖果店——每个插件都包装精美,下载量动辄百万,五星好评如潮。但当我真正开始…...

不满意Oh My Zsh启动卡顿,来试试Starship吧城

pagehelper整合 引入依赖com.github.pagehelperpagehelper-spring-boot-starter2.1.0compile编写代码 GetMapping("/list/{pageNo}") public PageInfo findAll(PathVariable int pageNo) {// 设置当前页码和每页显示的条数PageHelper.startPage(pageNo, 10);// 查询数…...

Leetcode只二叉树中序遍历(python解法)

1.题目描述 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入:root [1] 输出:[1]2.解决方法: 中序遍历就是先遍历左子树然后…...

工业模拟量传感器抗干扰设计与实践

1. 工业现场模拟量传感器的干扰挑战在工业自动化领域,模拟量传感器就像一位敏感的"听诊器",它能精确捕捉生产过程中的各种物理量变化。但现实中的工业环境往往充斥着各种"噪音"——大功率电机启停产生的电磁干扰、变频器工作时的谐波…...

靠两台电脑,月入10万,一个中年人的实战分享

阿阳到底是谁?凭什么能做到 月入10万 ?先跟大家说个实话啊,我不是什么大牛,也没啥 光 环。我就是个普通人,普通的家庭,普通的脑子,普通的起点。唯一不普通的,可能就是——我辞职得比…...

代码之外周刊(第期):当技术让一切趋同,我们还剩什么?克

1. 前言 本文详细介绍如何使用 kylin v10 iso 文件构建出 docker image,docker 版本为 20.10.7。 2. 构建 yum 离线源 2.1. 挂载 ISO 文件 mount Kylin-Server-V10-GFB-Release-030-ARM64.iso /media 2.2. 添加离线 repo 文件 在/etc/yum.repos.d/下创建kylin-local…...

龙芯k - 走马观碑组MPU驱动移植谖

先回顾:三次握手(建立连接)核心流程(实际版) 为了让挥手流程衔接更顺畅,咱们先快速回顾三次握手的实际核心,避免上下文脱节: 第一步(客户端→服务器)&#xf…...

Windows环境SonarQube与SonarScanner实战:从零搭建代码质量守护体系

1. 为什么你的项目需要SonarQube? 每次提交代码前,你是不是总在担心那些隐藏的Bug会悄悄溜进生产环境?我见过太多团队在深夜被紧急报警叫醒,原因往往只是一行没处理好的空指针异常。SonarQube就像个24小时值班的代码质检员&#x…...

Arduino TFT库:寄存器级驱动与双芯片兼容设计

1. 项目概述TFT 库是一个专为 Arduino 平台设计的轻量级图形驱动库,核心目标是支持 Seeed Studio 推出的 2.8 英寸 TFT 触摸屏扩展板(v1.0 版本)。该硬件模块采用双芯片方案:显示控制器可选用 SPFD5408A 或 ST7781R 其中之一&…...

Python主流框架全解析

以下是 Python 常用框架的分类解析:一、Web 开发框架1. Django定位:全能型框架,内置 ORM、模板引擎、路由系统等特点:开箱即用(如自带后台管理、用户认证)遵循 MVC 设计模式(MTV 变体&#xff0…...

前端使用AI试水报告读

1 实用案例 1.1 表格样式生成 本示例用于生成包含富文本样式与单元格背景色的Word表格文档。 模板内容: 渲染代码: # python-docx-template/blob/master/tests/comments.py from docxtpl import DocxTemplate, RichText # data: python-docx-template/bl…...

STM32时钟系统解析与启动配置实践

1. STM32单片机启动时的时钟源选择机制刚接触STM32开发时,我总有个疑问:在main函数执行前,单片机是怎么跑起来的?特别是在我们还没配置系统时钟之前,CPU靠什么时钟在工作?这个问题困扰了我很久,…...

Laravel vs 主流PHP框架:终极对决

好的,我们来对比一下 Laravel 与其他一些主流 PHP 框架的特点和适用场景。这种对比通常涉及多个维度,包括易用性、性能、功能丰富度、社区支持等。以下是一个简要的对比表格,总结了 Laravel 与其他几个常见 PHP 框架(Symfony, Cod…...

一文搞懂 MySQL 主从复制

目录 一、什么是 MySQL 主从复制? 主从复制的核心作用(我们为什么要用它?) 二、主从复制的底层原理:大白话拆解全流程 先搞懂 2 个核心文件 再认识 3 个关键线程 完整同步流程,一步一步讲明白 步骤 …...

macos简单配置openclaw贝

1 实用案例 1.1 表格样式生成 本示例用于生成包含富文本样式与单元格背景色的Word表格文档。 模板内容: 渲染代码: # python-docx-template/blob/master/tests/comments.py from docxtpl import DocxTemplate, RichText # data: python-docx-template/bl…...