Python在防涝模型后处理中的应用
0 引言
城镇内涝灾害严重, 已引起各级政府的高度重视, 在国家及各级政府政策的引导下, 全国各地展开了城市防洪排涝规划的编制。随着全国、省、市各级政策文件的发布, 浙江省住房和城乡建设厅发布了浙江省工程建设标准《城镇防涝规划标准》 (DB331109-2015) , 并确定该标准为浙江省工程建设标准, 在此背景下, 浙江省排水防涝项目的规划与设计有了技术标准
在规划项目编制过程中, 常用MIKE软件建立城市排水及防涝模型进行管网与内涝模拟分析;不同的地区, 根据不同的地域特点, 提出适合该地区的模拟方案。面对众多模拟工况下生成的结果文件, 快速分析得到结果显得尤为重要, 由此笔者总结了一种基于Python的结果文件处理分析方法, 通过该方法, 能够快速得到分析结论, 便于后续规划设计工作的进行, 提高工作效率。本文以浙江省某地排水防涝项目为例, 对城市内涝模型的建立过程, 以及基于Python的模型结果处理分析方法进行说明。
1 基于Python的结果数据分析方法
1.1 结果分析需求
Mike软件是城市防洪排涝的常用软件, 其中的Mike Urban模块, 是城市排水管网模拟软件;而Mike Flood模块, 则是完整的洪水模拟工具。利用Mike软件, 能够搭建城市管网及城市内涝模型, 进行模拟分析。
利用Mike软件在进行管网分级及内涝风险评估时, 往往根据需要会划定多个不同的评价标准, 并加载多个不同的降雨、水位等边界条件, 这就会产生多个不同的工况模拟结果文件, 需要对其中的数据进行提取处理分析。一般采用的方法主要有以下2种:
(1) 方法一:结果文件内部直接编辑计算公式→计算结果导出至Excel。
(2) 方法二:结果文件导出至Excel→Excel中编辑计算公式进行计算。
当处理范围较大, 模型分析单元数较多时, 以上2种方法有极大的概率会出现系统报错、软件卡死的情况, 很可能会导致原文件数据的破坏;同时, 在数据处理的过程中较为费时费力, 也容易带来错误。
如何快速准确地对结果文件进行处理分析, 得到能够指导规划设计工作所需的结论, 成为规划设计工作中一个重要的环节。
1.2 Python简介
Python是一种不受局限、跨平台的开源编程语言, 其数据处理速度快、功能强大且简单易学, 在数据分析与处理中被广泛应用
1.3 数据处理思路
据上分析, 本文提出一种基于Python的模型结果文件处理分析方法。
1.3.1 分析方法的计算前置条件
(1) 管网排水能力分级。建立城市管网模型, 目的在于分析城市管网的排水能力情况, 通过排水能力分级结论, 指导分析管网存在的问题, 发现并指出管网系统中的瓶颈管段、大小管串接等问题, 以此作为分析结论, 针对性的提出管网改造与规划措施。
城市雨水管网的排水能力分析, 可根据管段在某重现期降雨条件下管道承压情况来判断, 即可通过提取管道内的实时水位过程数据进行计算分析, 即以管道充满度F作为评价标准:

式中F———管渠充满度;
W_level———水位高程, m;
P_inertlevel———管渠底高程, m;
P_Higth———管渠高度, m。
当F>1.0表示水位超过管道顶部, 即超过管道排水设计能力;当F≤1.0表示水位未超过管道顶部, 即满足管道排水设计能力。
(2) 城市内涝分析。建立内涝模型, 目的在于进行内涝风险评估分析, 包括高、中、低3个层次的风险区划分。根据不同的地形特点、城市重要等级, 可给定不同的评价标准, 根据风险评估结论, 可判断不同风险区产生的原因, 如地形低洼、管网排水能力不足等。同时根据分析结论, 提出适宜的内涝风险防治与改善措施。
城市内涝风险区的评估, 体现在地表积水深度上, 一般可通过提取地面积水深度过程数据, 按照《城镇防涝规划标准》提出的积水深度及持续时间要求, 也可根据地区的特殊要求, 制定评价标准, 对城市内涝风险情况进行分析。《城镇防涝规划标准》中对内涝风险等级划分标准见表1。
表1 内涝风险等级划分标准
Tab.1 Standards for flood risk classification

注: (1) 积水深度的控制要求是指城镇干道中至少双向各一条车道的积水深度不超过限值; (2) 括弧内为地面积水流速超过2m/s的积水深度控制要求; (3) 积水时间、积水深度的控制要求需同时满足。
1.3.2 基础数据的要求
模型结果文件主要包括以下几个方面:
(1) 城市管网排水能力分级分析:1、2、3、5年一遇2h短历时降雨条件下, 管网模型运行结果文件见图1。
(2) Mike Flood结果文件:不同降雨遭遇对应水位条件下, 内涝模型运行结果文件, 见图2。
1.3.3 Python计算过程
结果文件数据分析主要步骤如下: (1) 导入模块并检索特定扩展模块许可。Python提供了大量模块供用户进行通用编程, 最常用的有arcpy, numpy, math, sys, array, string等, 使用这些模块功能前, 必须用import进行导入; (2) 按指定路径提取结果文件, 并读取需要的数据, 进行分类赋值; (3) 建立分析边界条件, 进行数学计算; (4) 形成计算结果文件, 并依需进行图形显示; (5) 生成能够导入AutoCAD的结果文件, 便于规划设计的使用。部分计算过程代码见表2。
2 应用案例
本文以浙江某地排水防涝项目为例, 梳理地形、管网、气象等资料, 建立城市管网模型及防涝模型, 加以不同的降雨与水位工况, 进行模型计算, 通过对比一般结果文件处理方法与采用前述基于Python的结果文件处理方法, 分析该方法的应用优势。
该模型的计算数据量如下:建模面积:44.1km2。管网模型:全长126.8km, 管网分段数1 705。内涝模型网格数:1 037 901 (1 299×799) 。
2.1 时间效益分析
方法一、方法二是通过在模型内部或导出至Excel文件进行计算, 可以认为是人工计算, 在计算过程中, 设备配置、数据量大小等在一定程度上影响了计算所需时间, 作者在对各方法进行试验时发现, 当数据量达到一定值后, 方法一、方法二容易出现软件卡顿现象, 甚至于导致源文件的破坏, 且所需的时间也较长, 综上, 各方法的时间效益分析如表3所示。
2.2 准确率效益分析
方法一、方法二通过手动编辑进行计算时, 一旦规划设计人员有所疏漏就会造成结果的错误, 而有时候这些错误不一定能及时发现, 连带地对后续分析及方案的制定带来影响;而方法三, 只需提供模型运行结果原文件, 便以黑匣子的形式进行计算分析, 直接得出结论, 中间无人为错误的带入, 能够有效提高分析的准确率。
2.3 结果可视化效益
方法一、方法二在分析计算完成后, 对数据量的分析需要进行图表编辑, 再以饼图、柱状图等形式进行显示, 而与设计常用软件CAD的衔接, 则只能以图片引用的形式, 不能准确实现坐标同步, 而方法三在进行分析过程中, 始终与基础资料所用的坐标系建立联系, 在分析结束时, 即以同坐标输出结果文件, 并能准确导入至CAD。方法三的可视化效果举例如下:
(1) 排水能力分析结论:管网排水能力分析结果主要包括不同重现期管网长度、比例及分布等情况 (见图3、图4) 。
(2) 内涝风险评估分析结论:内涝风险评估结果主要包括风险区面积、比例, 以及风险区分布情况等 (见图5~图7) 。
(3) 结果文件输出与CAD结合 (见图8、图9) 。结果输出文件能够直接输出至规划设计常用软件AutoCAD中, 保证与规划设计底图———路网水系图坐标一致, 便于设计人员进行后续规划措施的制定。
规划设计工作中, 常用软件为AutoCAD, 故在CAD中直观显示管网分级结论及内涝风险分布情况, 能友好的指导规划设计人员判断分析区域内的管网、地形等存在的问题, 如瓶颈管段的快速提取等, 大大提高了设计人员的工作效率。
3 结语
本文提出的基于Python的Mike模型结果处理方法, 并以浙江省某地排水防涝项目结果处理分析为例, 对该方法的应用效果进行分析, 可知方法具有快、准、可视优点, 在规划设计工作中能大大提高工作效率。
参考文献
[1]赵萍, 周凌, 王永.浙江省《城镇防涝规划标准》编制实践与探索[J].给水排水, 2015, 41 (4) :38-40.
[2]周凌, 赵萍, 王永.浙江省《城镇防涝规划标准》的编制思考[J].中国给水排水, 2014, 30 (16) :1-5.
[3]张秀贤.城区排涝排水综合设计降雨探析[J].水利规划与设计, 2017, (1) :49-52.
[4]巨擘.ArcGIS中应用Python脚本提高数据生产力的研究[J].测绘技术装备, 2017, 19 (3) :12-15.
[5]方圣辉, 张玉贤, 佃袁勇, 等.基于Python的ArcGIS地理数据批处理[J].测绘和空间地理信息, 2015, 38 (1) :1-2.
[6]彭海波, 向洪普.基于Python的空间数据批量处理方法[J].测绘和空间地理信息, 2011, 34 (4) :81-85, 87.
[7]孙宁, 蒲英霞.使用Python函数式编程进行空间回归分析[J].地理信息世界, 2009, (3) :66-69.