HEC-RAS怎么结合GIS?洪水淹没范围咋画?

GIS基础理论
Dr.GIS
wowwwai GIS研习社 · 工具流程与项目排障

很多做水文水利制图的同学都会问:HEC-RAS怎么结合GIS?洪水淹没范围咋画? 这篇文章就围绕一个具体任务来讲:已经有河道、断面、DEM和流量成果时,如何把HEC-RAS与GIS结合起来,生成可检查、可出图、可交付的洪水淹没范围。

引言:HEC-RAS结合GIS画洪水淹没范围的基本思路

HEC-RAS本身负责水动力计算,GIS负责地形数据整理、空间定位、结果可视化和制图输出。简单说,HEC-RAS算出水面高程、流速、淹没深度等结果,GIS再把这些结果叠加到DEM、行政区、道路、建筑物等空间数据上,得到洪水淹没范围图。

实际工作中,常见流程不是“在GIS里随便画一圈”,而是:

  1. 用GIS准备DEM、河道中心线、断面线、边界线等基础数据。
  2. 在HEC-RAS中建立一维或二维水动力模型。
  3. 运行稳态流或非稳态流计算。
  4. 把HEC-RAS结果导出或在RAS Mapper中生成淹没范围。
  5. 在QGIS、ArcGIS Pro等GIS软件中检查、修正和制图。
HEC-RAS结合GIS绘制洪水淹没范围流程图,包含HEC-RAS洪水淹没范围制图步骤
HEC-RAS结合GIS绘制洪水淹没范围的典型流程:GIS准备数据,HEC-RAS计算,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会基于该地形创建用于计算和显示的地形文件。

建议操作顺序如下:

  1. 新建HEC-RAS工程,保存到不含中文和特殊字符的路径。
  2. 打开RAS Mapper。
  3. 添加Terrain,并选择已经统一坐标系的DEM。
  4. 检查Terrain是否正确显示在地图窗口。
  5. 叠加河道、断面或研究区边界,确认位置没有偏移。

如果地形加载后与河道错位,优先检查坐标系定义,而不是直接手动平移数据。手动平移可能让图面看似正确,但会破坏空间分析精度。

步骤4:建立一维或二维HEC-RAS模型

HEC-RAS可以做一维、二维,也可以做一二维耦合。选择哪种方式,取决于研究目的和数据条件。

  • 一维模型:适合河道主槽明显、洪水主要沿河道方向传播的场景。需要河道中心线、断面、糙率、边界条件等。
  • 二维模型:适合漫滩扩散、城区淹没、复杂地形流动等场景。需要二维计算网格、地形、边界条件和糙率分区。
  • 一二维耦合:适合主河道用一维表达、洪泛区用二维表达的场景。

如果只是想快速绘制一个洪水淹没范围,但没有可靠的流量过程、断面和边界条件,结果只能作为示意分析,不能当作正式水动力模拟成果。

步骤5:输入流量、水位边界和糙率参数

模型能否产生可信的洪水淹没范围,很大程度取决于边界条件和糙率参数。常见输入包括上游流量过程线、下游水位过程线、正常水深、侧向入流、曼宁糙率等。

曼宁糙率是描述地表或河道阻力的参数。河道、草地、农田、建设用地、林地的糙率不同,水流速度和水位也会不同。做二维模型时,可以在GIS中先准备土地利用面,再在HEC-RAS中作为Manning’s n Layer使用。

参数设置后,不要急着出图。应先做一次初算,检查计算是否稳定、流量是否连续、水面是否异常跳变。

步骤6:运行计算并在RAS Mapper中查看结果

计算完成后,在RAS Mapper中可以查看水面高程、淹没深度、流速等结果图层。绘制洪水淹没范围时,最常用的是Depth图层,也就是淹没深度。

通常可以这样检查:

  1. 打开Results结果图层。
  2. 选择对应方案和时间步。
  3. 查看Depth图层,确认淹没区是否沿河道及低洼地展开。
  4. 查看WSE图层,检查水面高程是否连续。
  5. 查看Velocity图层,识别异常高速区域。

如果淹没范围出现大片孤立区域、穿越山脊、断面附近突变或边界外扩过大,要回到模型和DEM中检查原因。

步骤7:导出洪水淹没范围到GIS

在RAS Mapper中,可以将结果导出为栅格或矢量数据。实际制图时,常见做法是先导出淹没深度栅格,再在GIS中根据深度阈值提取淹没范围。

例如,可以将Depth大于0的区域视为淹没区域。但实际项目中通常会设置一个最小深度阈值,例如排除极薄水层或数值噪声。阈值应根据项目规范和数据精度确定,不能随意设定。

在QGIS中的一般处理思路是:

  1. 加载HEC-RAS导出的Depth栅格。
  2. 使用栅格计算器提取深度大于阈值的区域。
  3. 将二值栅格转换为面数据。
  4. 删除很小的孤立斑块。
  5. 按研究区边界裁剪。
  6. 统计淹没面积,并与原始结果对比。

在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提取面—制图检查”这条主线,再逐步深入一维、二维和一二维耦合模型。