如何在 QGIS 中模拟洪水(5 种免费和付费方法)

要在
中展示洪水,你有五种选择,而且它们可以清楚地分成几类:其中两种能给出可测量的范围,一种能给出工程答案,另外两种能给出有说服力的画面。最快的可测量方法是使用数字高程模型,并在 raster 计算器中设置阈值,大约需要五分钟。最有说服力的画面是生成一张航拍图,大约需要一分钟。两者不能相互替代,这篇文章主要讲的是不要把它们混为一谈。
简短答案
其中三种方法给你一张可以测量的洪水地图。另外两种给你一张无法测量的洪水图片。
| 你需要什么 | 方法 | 你会得到什么 |
|---|---|---|
| 法律认可的洪水区 | Géorisques PPRI 或 TRI layer | 一张地图,免费,几分钟 |
| 可测量的大致范围 | 高程模型加阈值 | 一张地图,免费,5 分钟 |
| 真实研究所需的水深和流速 | 水动力模型 | 一张地图,数天,需要专业人员 |
| 用于展示的内容,地点无所谓 | ChatGPT、Gemini 或 Midjourney | 一张图片,没有坐标 |
| 用于展示的内容,且位于你自己的地点 | AI Edit,我们的 plugin | 一张始终位于地图上的图片 |
开始之前
下面所有内容都基于同一个画面:杜河穿过贝桑松市中心的 600 m 河段,左侧是位于台地上的老城,右岸是码头、露天泳池和一座河畔公园。

你还需要地面高程。在法国,IGN 的 RGE ALTI 通过 Géoplateforme 提供服务,以 image/x-bil;bits=32 格式请求时,你得到的是真实高程值,而不是高程的图片。在这个画面范围内,高程从河道中的 240.9 m 到林地斜坡上的 260.1 m,高差为 19 m。先测量这一点,因为它决定了是否值得继续做这件事。在此之前,我曾在 Nemours 用同样的练习,得到相同大小方形范围内 6.3 m 的高差,这对于这些方法来说过于平坦,无法展示任何效果。
注意这 19 m 中只有很少一部分位于城镇内。码头位于 242 m,老城所在的台地位于 245 m,因此历史中心比河流高出三米,而不是二十米。下面的一切都取决于这一点。

方法 1:Géorisques 官方洪水地图
在进行任何建模之前,先检查答案是否已经存在。Géorisques 由相关部委和 BRGM 运营,发布 PPRI 灾害区,以及针对法国 124 个高洪水风险地区的 Directive Inondation 洪水制图,包含三个灾害等级,并以 shapefile 以及 WMS 和 WFS 服务的形式,在开放许可下提供。将 WFS 直接加载到
中。
**适合场景:**问题具有监管性质,或者有人会问国家认定哪些地方容易发生洪水。**不适合场景:**你的地点不在覆盖范围内,或者你需要一个尚未被绘制的情景。
方法 2:高程模型和阈值
五分钟答案。加载高程模型,打开 raster 计算器,保留低于水位的每个栅格单元。在这里,("dem@1" <= 244) / ("dem@1" <= 244) 会在被淹地面上生成由 1 组成的 layer,其他地方为空。将它设置为蓝色,叠加在航拍图上。

它是可测量的:这个 layer 有面积,你可以统计其中包含的内容。但它也有两种粗糙之处,在向任何人展示之前都值得了解。
**第一,它是一个浴缸模型。**它会填满线以下的每个栅格单元,无论水是否真的能够到达那里。那两块孤立的蓝色区域,一块是顶部的停车场,一块是底部的庭院,并不是错误:我测得它们的高程分别为 244.1 m 和 243.9 m,确实低于水位。但它们与河流之间的地面高程为 245 m,因此真实洪水必须爬上一米高的干地才能进入。阈值无法知道这一点。它完全不知道哪些栅格单元与其他区域相连。
第二,把水位调高,粗糙之处就不再隐蔽。

**适合场景:**你需要一个快速、可测量且明确标注性质的第一版结果。**不适合场景:**这个数字会被重要相关方引用。
方法 3:水动力模型
HEC-RAS、TELEMAC 或 Iber 接受河道几何、糙率和流量作为输入,并返回在地点范围内变化的水深和流速。这才是真正的洪水研究,而且有多个
桥接到这些工具。
**适合场景:**交付成果是一项研究。**不适合场景:**你只有三天时间且没有水动力工程师,这其实是大多数时候的情况。
方法 4:询问 ChatGPT、Gemini 或 Midjourney
截取地图画面,粘贴到其中任何一个工具里,描述洪水,然后得到一张图片。速度很快,而且在水的视觉效果上通常很有说服力。但有两个问题。它们不知道你的地面哪里高、哪里低,所以水会流向更适合生成画面的地方。而且返回的是没有坐标的普通图片文件,因此永远无法回到地图上,与其他内容并列显示。
**适合场景:**你想要一种氛围,用于非正式用途。**不适合场景:**有人了解这个地点。
方法 5:QGIS 中的 AI Edit(我们的产品)
一个
plugin,会根据你写下的指令重新绘制屏幕上的航拍图,并将结果作为一个 map layer 返回,精确叠加在原始航拍图上。下面是同一个画面,要求生成一场大洪水,没有附带其他内容。

现在使用本页开头的高程模型作为参考,附上相同的 prompt,并告诉模型如何读取它:深色表示低处,亮色表示高处,在地面开始升高的位置停止。


这就是为什么要在
内完成这件事,而不是在浏览器中完成:项目中已经打开的任何 layer 都可以作为指导交给模型。这里使用的是高程模型,但也可以是方法 1 中的 Géorisques 灾害区,或方法 2 的输出结果。
为了诚实起见,还有一件没有奏效的事情。第三次运行在指令中加入了过多的负面规则,“让所有更亮的区域完全保持干燥”,结果返回了原始照片,完全没有变化。描述水要做什么,而不是列出它不能做什么。
**适合场景:**你需要让不懂得阅读灾害地图的人真正看懂洪水。**不适合场景:**交付成果是一个数字。结果是一张图片,在将其转换为形状之前,其中任何内容都无法测量。
应该使用哪种方法
把它们结合起来。方法 1 或 2 给你可以据此辩护的范围,方法 5 给你人们能理解的图像,而第二种方法之所以可信,只是因为你把第一种方法的结果提供给了它。绝不要在没有旁边放置测量范围的情况下发布生成的洪水图,并且始终将其标注为模拟结果。
人们常问的问题
生成的洪水图可以放进公共文件吗?
可以,但必须标注为模拟结果,绝不能标注为照片或预报。我们的输出会因此标记为 AI 生成。将测量范围放在旁边,让人们看到这个数字从何而来。
我可以从生成的图片中测量洪水面积吗?
不可以。它只是像素。请测量方法 1 或方法 2 的结果,它们是真实几何数据,并将生成图片用于它擅长的事情。
阈值应该使用什么水位?
先从高程模型中读取河道高程,然后从这个数值开始逐步上调。这里的河道约为 241 m,因此 244 m 代表上涨三米。不查看实际高程就随意选择一个整数水位,最终可能会意外淹没整座城镇。
这在法国以外也适用吗?
方法适用。数据会改变:你需要所在国家的高程模型,以及该国发布的任何灾害地图。其他部分仍然是同一个 raster 计算器和同一个 prompt。
来源
- Géorisques,由生态转型部和 BRGM 运营,2026 年 8 月 31 日阅读。法国 124 个高洪水风险地区的 PPRI 灾害区和 Directive Inondation 洪水制图,三个灾害等级,在 Licence Ouverte 2.0 下提供 shapefile、WMS 和 WFS。
- 通过 Géoplateforme 提供的 IGN RGE ALTI,Licence Ouverte。2026 年 8 月 31 日以
image/x-bil;bits=32格式读取的高程值。 - 航拍图:IGN BD ORTHO,Licence Ouverte。
- 所有图示均于 2026 年 8 月 31 日在
中制作,使用上述画面范围。
完整的 AI Edit 指南涵盖了这个 plugin 的完整使用流程,如何在 QGIS 中重新设计一条街道则将同样的方法应用于另一项工作。QGIS AI 中心汇总了我们所有的指南。


