HEC-RAS怎么结合GIS?洪水淹没范围咋画?
很多做水文水利制图的同学都会问:HEC-RAS怎么结合GIS?洪水淹没范围咋画? 这篇文章就围绕一个具体任务来讲:已经有河道、断面、DEM和流量成果时,如何把HEC-RAS与GIS结合起来,生成可检查、可出图、可交付的洪水淹没范围。
引言:HEC-RAS结合GIS画洪水淹没范围的基本思路
HEC-RAS本身负责水动力计算,GIS负责地形数据整理、空间定位、结果可视化和制图输出。简单说,HEC-RAS算出水面高程、流速、淹没深度等结果,GIS再把这些结果叠加到DEM、行政区、道路、建筑物等空间数据上,得到洪水淹没范围图。
实际工作中,常见流程不是“在GIS里随便画一圈”,而是:
- 用GIS准备DEM、河道中心线、断面线、边界线等基础数据。
- 在HEC-RAS中建立一维或二维水动力模型。
- 运行稳态流或非稳态流计算。
- 把HEC-RAS结果导出或在RAS Mapper中生成淹没范围。
- 在QGIS、ArcGIS Pro等GIS软件中检查、修正和制图。

背景:为什么HEC-RAS结果不能直接等同于洪水淹没范围图
HEC-RAS计算结果是水动力模拟结果,不等于最终的GIS专题图。尤其在交付成果中,洪水淹没范围通常还要经过坐标检查、地形匹配、孤立斑块处理、边界裁剪、符号化和版面整饰。
常见误区有三个:
- 只看水位,不看地形:洪水淹没范围本质上是水面高程与地面高程比较后的空间结果。
- 只导出图片,不导出GIS数据:报告截图不能满足空间分析、面积统计和叠加分析需求。
- 忽略坐标系统:DEM、河道、断面、行政边界如果坐标不一致,淹没范围会整体偏移,面积也会错误。
所以,HEC-RAS结合GIS的关键不是“能不能显示一片蓝色区域”,而是这片区域是否基于正确地形、正确坐标、正确水位结果,并且能被GIS软件复核。
原理:洪水淹没范围是怎么从HEC-RAS结果变成GIS面数据的
从原理上看,洪水淹没范围通常来自一个判断:某个位置的水面高程是否高于该位置的地面高程。如果水面高程大于地面高程,就可能被判定为淹没区域。
在HEC-RAS和GIS协同工作中,常见数据关系如下:
| 数据或结果 | 作用 | 常见格式 |
|---|---|---|
| DEM地形 | 提供地面高程,是判断淹没深度的基础 | GeoTIFF、IMG、Terrain |
| 河道中心线 | 定义河流走向和模型骨架 | Shapefile、GeoPackage、File Geodatabase |
| 断面线 | 一维HEC-RAS模型中提取河道断面地形 | Shapefile、GeoPackage |
| 流量或水位边界 | 驱动水动力模型计算 | 表格、DSS、手动输入 |
| 水面高程 | HEC-RAS计算得到的水位结果 | HEC-RAS结果文件、HDF |
| 淹没深度栅格 | 水面高程减去地面高程后的结果 | GeoTIFF、RAS Mapper图层 |
| 洪水淹没范围面 | 用于GIS制图、统计和叠加分析 | Shapefile、GeoPackage、GeoJSON |
如果使用HEC-RAS 5及以上版本,通常可以通过RAS Mapper直接管理Terrain、计算结果和淹没范围。GIS软件则更多用于前期数据整理和后期成果加工。
步骤:HEC-RAS怎么结合GIS绘制洪水淹没范围
步骤1:在GIS中准备DEM和基础矢量数据
首先在QGIS或ArcGIS Pro中准备数据。至少需要:
- 研究区DEM,最好是投影坐标系下的米制高程数据。
- 河道中心线,方向应尽量与水流方向一致。
- 断面线,一般要垂直于主河道,覆盖可能漫滩区域。
- 研究区边界,用于裁剪DEM和最终成果。
- 道路、居民点、建筑物、行政区等用于后期影响分析的数据。
这里要特别注意坐标系。HEC-RAS结合GIS时,建议所有数据统一为同一个投影坐标系,例如CGCS2000高斯投影、UTM投影或项目要求的地方坐标系。不要用经纬度坐标直接做距离、面积和高程关系判断。
步骤2:检查DEM高程单位和垂直基准
洪水淹没范围对高程非常敏感。DEM高程单位如果是米,而水位单位也是米,才能直接比较。如果DEM是英尺或存在未知垂直基准,结果会明显异常。
在GIS中建议先检查:
- DEM是否覆盖整个模型范围。
- DEM是否存在明显空洞、异常尖峰或平坦错误区。
- DEM水平单位和垂直单位是否一致。
- 河道附近高程是否符合实际地形。
- DEM分辨率是否满足制图尺度要求。
如果是小流域、城区内涝或精细洪水风险图,低分辨率DEM往往不够,需要更高精度的地形数据,如LiDAR点云生成的DEM或实测断面数据。
步骤3:在HEC-RAS中创建工程并导入地形
打开HEC-RAS,新建Project后进入RAS Mapper。添加Terrain时,可以选择GeoTIFF等栅格高程数据。HEC-RAS会基于该地形创建用于计算和显示的地形文件。
建议操作顺序如下:
- 新建HEC-RAS工程,保存到不含中文和特殊字符的路径。
- 打开RAS Mapper。
- 添加Terrain,并选择已经统一坐标系的DEM。
- 检查Terrain是否正确显示在地图窗口。
- 叠加河道、断面或研究区边界,确认位置没有偏移。
如果地形加载后与河道错位,优先检查坐标系定义,而不是直接手动平移数据。手动平移可能让图面看似正确,但会破坏空间分析精度。
步骤4:建立一维或二维HEC-RAS模型
HEC-RAS可以做一维、二维,也可以做一二维耦合。选择哪种方式,取决于研究目的和数据条件。
- 一维模型:适合河道主槽明显、洪水主要沿河道方向传播的场景。需要河道中心线、断面、糙率、边界条件等。
- 二维模型:适合漫滩扩散、城区淹没、复杂地形流动等场景。需要二维计算网格、地形、边界条件和糙率分区。
- 一二维耦合:适合主河道用一维表达、洪泛区用二维表达的场景。
如果只是想快速绘制一个洪水淹没范围,但没有可靠的流量过程、断面和边界条件,结果只能作为示意分析,不能当作正式水动力模拟成果。
步骤5:输入流量、水位边界和糙率参数
模型能否产生可信的洪水淹没范围,很大程度取决于边界条件和糙率参数。常见输入包括上游流量过程线、下游水位过程线、正常水深、侧向入流、曼宁糙率等。
曼宁糙率是描述地表或河道阻力的参数。河道、草地、农田、建设用地、林地的糙率不同,水流速度和水位也会不同。做二维模型时,可以在GIS中先准备土地利用面,再在HEC-RAS中作为Manning’s n Layer使用。
参数设置后,不要急着出图。应先做一次初算,检查计算是否稳定、流量是否连续、水面是否异常跳变。
步骤6:运行计算并在RAS Mapper中查看结果
计算完成后,在RAS Mapper中可以查看水面高程、淹没深度、流速等结果图层。绘制洪水淹没范围时,最常用的是Depth图层,也就是淹没深度。
通常可以这样检查:
- 打开Results结果图层。
- 选择对应方案和时间步。
- 查看Depth图层,确认淹没区是否沿河道及低洼地展开。
- 查看WSE图层,检查水面高程是否连续。
- 查看Velocity图层,识别异常高速区域。
如果淹没范围出现大片孤立区域、穿越山脊、断面附近突变或边界外扩过大,要回到模型和DEM中检查原因。
步骤7:导出洪水淹没范围到GIS
在RAS Mapper中,可以将结果导出为栅格或矢量数据。实际制图时,常见做法是先导出淹没深度栅格,再在GIS中根据深度阈值提取淹没范围。
例如,可以将Depth大于0的区域视为淹没区域。但实际项目中通常会设置一个最小深度阈值,例如排除极薄水层或数值噪声。阈值应根据项目规范和数据精度确定,不能随意设定。
在QGIS中的一般处理思路是:
- 加载HEC-RAS导出的Depth栅格。
- 使用栅格计算器提取深度大于阈值的区域。
- 将二值栅格转换为面数据。
- 删除很小的孤立斑块。
- 按研究区边界裁剪。
- 统计淹没面积,并与原始结果对比。
在ArcGIS Pro中也可以用Raster Calculator、Raster to Polygon、Eliminate Polygon Part、Clip等工具完成类似处理。
步骤8:在GIS中制作洪水淹没范围图
洪水淹没范围图不只是一个蓝色面。为了让读者看懂,应包含基础地理要素、淹没深度分级、比例尺、图例和必要标注。
建议至少包含:
- 研究区边界。
- 河流、水库、堤防或关键水工建筑物。
- 洪水淹没范围面。
- 淹没深度分级图,例如0-0.5米、0.5-1米、1-2米、2米以上。
- 道路、村庄、城区或重要设施。
- 坐标系统、数据来源和模拟情景说明。
如果是报告图,建议分别输出“洪水淹没范围图”和“洪水淹没深度图”。前者强调是否被淹,后者强调被淹多深。
常见坑:HEC-RAS洪水淹没范围画不准的原因
1. DEM坐标系和模型坐标系不一致
这是最常见的问题。表现为河道、断面、地形、结果图层相互偏移。解决方法是在GIS中统一投影,并确认数据不是只有坐标值而缺少坐标系定义。
2. 用经纬度坐标做模型
经纬度单位是度,不适合直接用于距离、面积和二维网格计算。HEC-RAS结合GIS时,建议使用投影坐标系,单位一般为米。
3. 断面线没有覆盖漫滩
一维模型中,断面太短会限制水面与地形的交互,导致洪水淹没范围被截断。断面应覆盖可能淹没的河谷和漫滩区域。
4. DEM精度不足
低分辨率DEM可能无法表达堤防、道路、沟渠和城市微地形,导致淹没范围过大或过小。城区洪水分析尤其要注意这一点。
5. 没有处理桥梁、涵洞和堤防
桥梁、涵洞、闸门、堤防等结构会显著影响水流。如果模型中没有表达这些控制因素,洪水淹没范围可能与真实情况差异很大。
6. 直接把所有Depth大于0的像元都当作淹没范围
数值模型可能产生很薄的水层或孤立像元。正式制图时,应结合最小深度阈值、最小斑块面积和地形连通性进行处理。
方法比较:用RAS Mapper、QGIS还是ArcGIS Pro画洪水淹没范围
| 方法 | 适合场景 | 优点 | 注意事项 |
|---|---|---|---|
| RAS Mapper直接出图 | 快速查看HEC-RAS计算结果 | 与模型结果联动,查看方便 | 制图表达和空间分析能力有限 |
| QGIS后处理 | 开源GIS制图、面积统计、格式转换 | 免费,支持GeoTIFF、GeoPackage等格式 | 需要熟悉栅格计算和矢量清理流程 |
| ArcGIS Pro后处理 | 工程制图、规范化成果管理、批处理 | 工具链完整,适合正式项目交付 | 需要许可,部分工具依赖扩展模块 |
| Python自动化处理 | 多场景、多频率、多方案批量出图 | 可重复、可批量、便于质量控制 | 需要掌握Rasterio、GeoPandas等库 |
如果只是初学,建议先用RAS Mapper看结果,再用QGIS完成洪水淹没范围提取和制图。如果是正式项目,ArcGIS Pro或Python批处理更适合做标准化成果。
检查清单:交付前必须核对的HEC-RAS与GIS结果
- 坐标系统:DEM、河道、断面、模型结果和研究区边界是否一致。
- 高程单位:DEM高程单位与HEC-RAS水位单位是否一致。
- 地形质量:河道、堤防、道路、低洼地是否在DEM中合理表达。
- 模型稳定性:计算是否收敛,水面高程是否异常跳变。
- 边界条件:上游流量、下游水位、糙率参数是否有来源依据。
- 淹没范围:是否存在不合理孤立斑块、穿山淹没、断裂或明显外扩。
- 面积统计:GIS统计面积是否使用投影坐标系计算。
- 成果格式:是否同时保存栅格深度图、矢量淹没范围和制图版面。
- 图面说明:是否标明模拟情景、重现期、数据来源和坐标系统。
FAQ:HEC-RAS结合GIS绘制洪水淹没范围常见问题
Q1:HEC-RAS怎么结合GIS最简单?
最简单的方式是用GIS准备DEM、河道和边界数据,在HEC-RAS中通过RAS Mapper加载地形并运行模型,再把Depth结果导出到QGIS或ArcGIS Pro中提取洪水淹没范围。
Q2:HEC-RAS洪水淹没范围可以直接导出Shapefile吗?
可以根据版本和结果类型导出GIS数据,但实际工作中更推荐先导出淹没深度栅格,再在GIS中按阈值转换为面。这样更方便控制最小淹没深度、清理孤立斑块和裁剪研究区。
Q3:画洪水淹没范围必须用ArcGIS吗?
不一定。QGIS也可以完成HEC-RAS结果的加载、栅格计算、矢量化、面积统计和制图。ArcGIS Pro在工程管理和制图规范方面更成熟,但不是唯一选择。
Q4:为什么HEC-RAS算出来的淹没范围和实际洪水不一致?
可能原因包括DEM精度不足、边界条件不准、糙率参数不合理、桥涵堤防未建模、降雨或支流入流遗漏、坐标系统错误等。需要从数据、模型和GIS后处理三个层面逐项排查。
Q5:洪水淹没范围面积应该怎么统计?
应在投影坐标系下统计面积。不要在经纬度坐标系中直接计算平方米或平方公里。可以先将淹没范围面投影到合适的米制坐标系,再用GIS字段计算器计算面积。
Q6:Depth大于0就一定是淹没区吗?
不一定。Depth大于0表示模型结果中存在水深,但可能包含极薄水层或数值噪声。正式成果通常需要设置最小深度阈值,并结合最小斑块面积和地形连通性进行清理。
结论:HEC-RAS负责计算,GIS负责验证和表达
回到开头的问题,HEC-RAS怎么结合GIS画洪水淹没范围?核心答案是:用GIS准备可靠的空间数据,用HEC-RAS完成水动力模拟,再把结果回到GIS中进行提取、检查、统计和制图。
真正可靠的洪水淹没范围,不是软件自动生成的一张蓝色图,而是经过坐标、高程、地形、边界条件、模型稳定性和GIS后处理共同验证的空间成果。初学者可以先掌握“DEM准备—HEC-RAS计算—Depth导出—GIS提取面—制图检查”这条主线,再逐步深入一维、二维和一二维耦合模型。