- 博客(54)
- 资源 (4)
- 收藏
- 关注
原创 SWMM深度二次开发专题13:二维水动力模拟-耦合模拟
摘要:本文介绍了城市内涝模拟中一维二维耦合模型的应用方法,重点阐述如何通过武理排水管网系统实现地下管网与地面内涝的交互模拟。详细说明了二维水动力模块(IRectProject)的调用流程,包括SWE_open等核心函数的组合使用方式,并提供了两种一维模型数据输入方法:配置文件设置或独立实例传递。文中包含完整的C++代码示例,展示耦合模拟的具体实现过程,以及路径处理、资源释放等关键操作。通过实际案例项目演示了模拟结果的输出和可视化方法,为城市排水系统模拟分析提供了实用技术方案。
2026-01-07 17:44:43
837
原创 SWMM深度二次开发专题12:二维水动力模拟-基准案例
本文介绍了武理排水管网模拟分析系统中的二维水动力模块功能及使用方法。该系统提供可执行程序SweCalling.exe和SweCalling_cuda.exe,支持通过命令行调用进行二维水动力模拟。文中详细说明了基准案例(Bump_restemerged、Dry_Dam_Break等)的测试方法,包括配置文件修改、命令执行步骤以及结果可视化处理。通过Matlab脚本可实现模拟结果的动态展示,验证了模型在复杂地形、激波捕捉、侧向流量交换等方面的性能。该模块为排水管网模拟提供了可靠的水动力计算工具。
2026-01-07 14:26:51
441
原创 SWMM深度二次开发专题11:网络分析-管网合并
本文介绍了使用武理排水管网模拟分析系统实现SWMM模型自动合并的方法。通过二次开发的swmm_mergeProject函数,可以避免手动编辑inp文件的繁琐操作。文章详细说明了合并前提条件(要素不能重名)、函数参数说明(输入文件路径和结果文件路径)以及具体实现步骤,包括路径处理、函数调用和编译运行过程。最后展示了两个独立管网模型合并后的效果,验证了该方法的可行性。该技术为城市排水系统多区域模型整合提供了高效解决方案。
2026-01-07 10:14:38
502
原创 SWMM深度二次开发专题10:网络分析-管网简化
文章摘要: 本文介绍了排水管网模型简化方法,通过trim和simplify函数可有效提高计算效率。trim函数可裁剪起端枝状管段,移除不必要的末端构造;simplify函数能合并串联同管径管段。两个函数配合使用可将管网简化至最简状态,且不影响模拟精度。文中提供了C++实现案例,包括路径处理函数、管网裁剪和管段合并的具体代码示例。案例项目配置了VS2022开发环境,详细说明了文件目录设置和函数调用方法,为管网模型优化提供了实用解决方案。
2026-01-06 17:11:09
596
原创 SWMM深度二次开发专题9:网络分析-管网提取
摘要:本文介绍了如何从排水管网模型中提取部分管网进行分析。通过使用networkClass的extract函数,可以基于指定节点提取相连管网,并将提取结果标记为访问状态1。随后利用projectClass的swmm_exportExtractedProject函数将提取的管网输出为独立inp文件。案例项目位于\software\tutorial\exp_network_extract文件夹,包含C++项目和管网模型数据。文章详细说明了路径处理、管网提取实现代码及编译运行方法,最终可输出提取管网中所有连接的节
2026-01-06 16:06:56
293
原创 SWMM深度二次开发专题8:网络分析-最短路径查询
本文介绍了如何利用networkClass类中的findShortestPath函数获取排水管网模型中两点间的最短路径。主要内容包括:1)项目文件结构说明;2)路径处理相关函数的实现;3)通过networkClass实例调用findShortestPath函数获取节点间最短路径的具体代码实现;4)主函数调用示例;5)编译运行结果展示。该方法可应用于排水管网模拟分析系统中,通过节点索引和路径数组返回最短路径信息。
2026-01-06 15:40:25
421
原创 SWMM深度二次开发专题7:网络分析-获取网络
文章摘要: 本文介绍了武理排水管网模拟分析系统中networkClass的网络分析功能实现方法。主要内容包括:1)通过projectClass获取网络拓扑对象networkClass的步骤;2)案例项目配置说明及路径处理函数实现;3)使用networkClass进行节点连接分析和度计算的代码示例。文中详细展示了如何获取节点上下游管段信息、计算节点度等网络分析操作,并提供了完整的项目配置和main函数实现方案。该案例位于\software\tutorial\exp_network_getNetwork文件夹,
2026-01-06 15:21:01
320
原创 SWMM深度二次开发专题6:年径流总量控制率及年径流污染总量削减率的计算
摘要:本文介绍了海绵城市设计中"年径流总量控制率"和"年径流污染总量削减率"的计算方法。通过武理排水管网模拟分析系统,可基于SWMM模型结果计算总体及单个汇水子面积的径流控制率(rvcr)和污染削减率(prr)。径流控制率计算公式为rvcr=(V_TP-V_SR)/V_TP×100,污染削减率计算考虑下渗和LID措施去除的污染物量。文中详细说明了水量平衡和质量平衡的计算原理,并提供了C++实现案例,包括路径处理函数和outputReaderClass类的应用方法,用于
2026-01-05 17:17:57
1026
原创 SWMM深度二次开发专题5:模型克隆与并行计算
摘要:本文介绍了利用SWMMCPP实现排水管网模型深度克隆与并行计算的方法。通过projectClass类的构造函数实现模型内存复制,支持多线程并行模拟多个管网模型。案例包含路径处理函数、模型克隆实现(SwmmProjectClone)及8个模型同时计算的多线程应用。详细说明了VS2022项目配置、文件路径设置及代码实现要点,最后展示了编译运行结果。该方法为管网优化算法提供了高效的计算框架,可扩展应用于参数敏感性分析等场景。
2025-12-31 12:27:20
313
原创 SWMM深度二次开发专题4:元素坐标点获取和修改
摘要: 本案例演示了通过SWMMCPP接口和projectClass类获取排水管网模型元素坐标的方法。主要内容包括:1)项目配置说明,包括输出目录设置和依赖文件准备;2)路径处理函数实现,用于获取可执行文件路径;3)两种坐标获取方式:通过ISwmmProperty接口动态转换获取(支持子汇水区、节点和管段坐标),以及直接使用projectClass成员变量获取。案例强调无需单位转换,并提供了完整的代码示例,帮助掌握武理排水管网模拟分析系统的使用方法。
2025-12-31 11:10:18
699
原创 SWMM深度二次开发专题3:模型参数的获取和修改
本文介绍了SWMM排水管网模拟分析系统的开发案例实现方法。主要内容包括:1)案例项目结构说明,包含VS2022 C++项目和管网模型数据;2)路径处理函数实现,用于获取可执行文件路径;3)通过接口获取模型数据的实现,包括汇水子面积、节点等对象的属性获取。文章详细展示了如何使用SWMMCPP接口动态获取管网模型中的各类参数信息,如汇水面积、坡度、污染物初始累积量等,并提供了完整的代码示例。该案例可用于学习排水管网模拟分析系统的开发方法。
2025-12-30 17:35:30
954
原创 SWMM深度二次开发专题2:模拟计算及结果读取
摘要: 本案例演示了如何通过C++调用SWMMCPP库进行排水管网模拟分析。主要内容包括:1)项目配置与路径处理函数实现,确保可执行文件能正确访问模型数据;2)使用ISwmmSimulation接口类实现管网模拟流程,包括初始化、计算和结果输出;3)通过ISwmmOutRead接口类读取模拟结果文件。案例提供了完整的代码实现,展示了从模型加载、模拟计算到结果读取的全过程,并包含错误处理和进度显示功能,可作为排水管网模拟分析的开发参考。
2025-12-29 17:11:49
592
原创 SWMM深度二次开发专题1:开发环境设置(Windows操作系统)
摘要:武理排水管网模拟分析系统是基于SWMM深度二次开发的成果,支持一维、二维耦合水动力计算。系统提供C++开发平台,包含SWMMCPP.dll、SweSolver.dll等核心模块,支持CUDA加速。开发环境配置包括设置GDAL路径、添加头文件和库文件。通过Visual Studio创建项目并调用API接口,可实现排水管网模拟计算。系统附带验证案例和开发教程,适用于桌面程序和WebAPI开发。
2025-12-26 18:19:47
1046
原创 SWMM二次开发6:SWMM结果文件读取
文章摘要: 本文介绍了如何为SWMM(暴雨径流管理模型)编写自定义接口函数来读取out文件数据。由于SWMM未提供原生接口,作者创建了两个文件(swmm5_iface.h和swmm5_iface.c)实现该功能。主要功能包括:打开/关闭out文件(swmm_openOutFile/swmm_closeOutFile)、获取模拟结果(swmm_getSwmmResult)、查询元素名称和索引(swmm_getOutName/swmm_getOutIndex)以及获取元素属性(swmm_getOutProper
2025-12-01 17:19:31
319
原创 SWMM二次开发5:SWMM结果文件格式解析
摘要:本文详细解析了SWMM模拟结果二进制文件(out文件)的结构与读取方法。文件包含7个部分:开始部分(28字节基础信息)、对象名称、对象属性、结果变量说明、时间信息、计算结果和结束部分。重点介绍了如何通过计算偏移量定位数据,包括利用结束部分记录的起始位置快速定位。文件采用二进制格式存储,需使用fseek、fread等函数读取,其中计算结果部分按时间步长存储,每个步长包含时间戳和各类对象的计算结果(4字节浮点数)。文章还详细说明了各类对象(子流域、节点、连接)的属性标识码和结果变量标识码,为二次开发提供技
2025-12-01 12:18:21
761
原创 SWMM二次开发4:模拟过程中读取计算结果
摘要:本文介绍了SWMM模型两种接口函数的使用方法:1)swmm_getValue可在模拟过程中实时读取当前步长的结果数据;2)swmm_getSavedValue可在模拟完成后查询任意步长的历史结果。通过C++代码示例演示了两种函数的调用方式,包括获取汇水区径流量等参数,并展示了运行结果的时间步长转换和输出格式。两种方法分别适用于实时监控和结果后处理场景,为SWMM模型结果提取提供了灵活的技术方案。(150字)
2025-12-01 11:05:02
260
原创 SWMM二次开发3:获取管网元素的属性
本文介绍了SWMM模型接口函数的使用方法,主要包括四个关键函数:swmm_getCount用于获取各类模型元素的数量;swmm_getName根据索引号获取元素名称;swmm_getIndex根据名称获取元素索引号;swmm_getValue用于获取元素的静态属性或计算结果。文章通过代码示例详细演示了每个函数的具体调用方式,包括参数设置和返回值处理,并展示了实际运行结果。这些接口函数为SWMM模型的二次开发提供了基础功能,可用于获取模型元素信息、属性和计算结果。
2025-11-30 14:50:39
692
原创 SWMM二次开发2:SWMM接口函数的调用
本文介绍了如何在C++控制台程序中调用SWMM计算模块。首先创建C++项目并配置SWMM头文件和库文件路径,添加swmm52.lib库。然后编写代码,通过swmm_run函数调用SWMM模块,传入模型文件(.inp)、报告文件(.rpt)和结果文件(.out)路径。最后编译运行程序,注意需将可执行程序与SWMM的dll文件放在同一目录下。该演示展示了SWMM计算模块的基本调用方法,为后续SWMM应用开发提供了参考。
2025-11-30 13:03:38
367
原创 SWMM二次开发1:SWMM计算模块编译
本文介绍了SWMM模型二次开发的方法,重点讲解了如何通过C/C++语言在Visual Studio 2022环境下编译SWMM计算模块。主要内容包括:1)获取SWMM源代码和API文件;2)创建动态库项目并配置属性;3)导入源代码文件;4)完成编译生成dll和lib文件。该过程既可直接使用官方提供的接口文件,也可通过修改源代码实现算法改进和功能扩展。文中详细展示了项目创建、文件导入和编译的具体操作步骤,为SWMM二次开发提供了完整的技术指导。
2025-11-30 11:42:13
536
原创 排水模型16:SWMM控制功能(Controls)使用详解
摘要:SWMM模型的控制功能允许在模拟过程中通过条件判断动态调控水泵、管道等设施。控制规则采用IF-THEN-ELSE结构,支持AND/OR逻辑运算和优先级设置。条件语句比较对象属性与值或另一对象属性,动作语句可改变设施状态或设置参数值。持续性控制通过控制曲线实现变量间的动态关联,如闸门开度随流量变化。控制曲线在曲线编辑器中定义,建立条件值与控制参数间的映射关系。
2025-11-26 16:14:35
146
原创 排水模型15:SWMM节点treatment特性使用详解
SWMM模型的treatment属性可模拟节点中污染物去除过程,通过输入方程实现水质处理功能。方程支持两种计算方式:浓度方式(C=)直接输出污染物浓度,去除率方式(R=)计算污染物去除比例。方程可使用多种变量(如流量、水深、停留时间等)和数学函数(三角函数、对数函数等)。案例展示了如何设置TSS和COD的去除方程,如C=0.5TSS表示出水浓度降低50%,R=0.5R_TSS表示COD去除率为TSS的一半。该功能将节点转化为简易水处理构筑物,为水质模拟提供灵活工具。
2025-11-26 15:25:12
251
原创 排水模型14:SWMM土地利用landuse使用详解
摘要:本文介绍了SWMM模型中土地利用的定义与使用方法。在定义方面,通过Quality->Land Uses模块设置土地利用名称、清扫参数及污染物累积/冲刷函数(包括幂函数、指数函数、饱和函数等4种累积模型和3种冲刷模型),重点解释了Availability参数的实际含义。在使用方面,需在汇水子面积属性中分配土地利用占比,并通过Initial Buildup或设置前期干燥天数初始化污染物量。文章通过对话框截图和公式详细说明了各参数的物理意义和单位要求,为面源污染模拟提供了操作指南。(149字)
2025-11-26 12:23:54
361
原创 排水模型13:SWMM进行年径流总量控制率是否达标的评价方法
本文介绍了径流总量控制率的评价方法和判定标准。通过SWMM模型计算径流总量控制率时,可采用两种降雨数据:实际年降雨或设计日降雨量。实际年降雨需采用典型年或多年的小时步长降雨数据进行模拟,计算结果与目标值对比判定是否达标。设计日降雨量需转化为3小时降雨过程线后输入模型,此时要求径流控制率达到100%才算达标。文章详细说明了芝加哥曲线法的应用步骤,并提供了设计降雨量重现期计算工具的使用方法。这些方法为海绵城市建设中径流控制效果的评估提供了技术支撑。
2025-11-26 10:07:06
522
原创 排水模型12:SWMM低影响开发措施LID controls使用详解
摘要:SWMM模型中LID措施实施分为两个阶段:首先在"水文学→LID控制"菜单创建LID控制对象并配置5层结构属性;然后在子汇水区属性编辑器中分配LID措施,设置控制单元尺寸及径流捕获比例。需注意LID面积包含于子汇水区总面积中,不透水率等参数仅适用于非LID部分。实施时需通过LID组编辑器添加措施,使用LID使用编辑器配置单元数量、处理面积比例等23项参数,并可生成包含12项指标的时间序列详细报告文件。(148字)
2025-11-25 15:24:20
109
原创 排水模型11:SWMM低影响开发措施LID controls定义详解
摘要:SWMM模型中的LID模块可模拟多种低影响开发措施的水文、水力及水质功能,包括生物滞留池、雨水花园等7种类型。每种LID设施通过表面层、透水路面、土壤层等功能层的垂直组合进行定义,各层需设置厚度、孔隙率等关键参数。模型通过水量平衡计算跟踪水分运动,可评估年径流控制率等海绵城市指标。不同LID类型具有特定的参数要求,如生物滞留池需设置土壤层导水率,渗透铺面需考虑堵塞因子等。该模块为海绵城市设计提供了重要的量化评估工具。(149字)
2025-11-25 12:46:35
325
原创 排水模型10:SWMM时间序列timeseries数据使用详解
本文介绍了时间序列数据的应用场景、格式规范及解析方法。时间序列可用于记录温度、降雨量、水位等随时间变化的参数,支持两种数据格式:相对时间(小时数或h:mm格式)和绝对时间(日期/时间格式)。数据可通过编辑对话框或外部文件导入,文件需遵循特定格式要求。关键区别在于不同用途采用不同解析方法:降雨数据仅保留非零时段,其他数据通过插值计算中间值;超出时间范围时,降雨数据归零,其他数据保持首末值。文中通过具体示例展示了两种解析方式的结果差异,并强调了时间间隔一致性的重要性。
2025-11-24 17:49:56
160
原创 排水模型9:SWMM快速建模
本文介绍了SWMM快速建模方法,重点阐述了如何通过编辑inp文件格式快速构建排水管网模型。主要内容包括:1) 通过掌握inp文件数据块组织方式,将数据量大且格式简单的节点、管段、汇水子面积等主干数据采用文本编辑处理;2) 详细说明了使用Excel模板工具实现数据转换的步骤,包括GIS数据处理、坐标导出及数据拷贝方法;3) 提供了建模过程中的注意事项和默认值设置建议。该方法能显著提高建模效率,适合处理大规模管网数据的基础建模工作。
2025-11-24 15:49:52
67
原创 排水模型8:EXCEL格式的管段节点数据转换为GIS格式的管网数据
本文介绍了如何将管网勘测的Excel表格数据转换为GIS格式。首先通过设置地图坐标系,将节点数据保存为CSV后导入ArcGIS并导出为Shapefile格式。对于管段数据,需要先补充起止节点坐标信息,使用特定工具处理后再导入GIS系统。最后通过属性关联与字段计算器,将CSV中的管段属性数据合并至对应的GIS图层中,确保节点与管段采用相同坐标系。该方法实现了电子表格数据向GIS格式的完整转换,便于后续管网分析与管理。
2025-11-18 10:57:04
607
原创 排水模型7:汇水子面积的属性赋值
本文介绍了利用GIS技术计算汇水子面积平均坡度及不透水面积比例的方法。首先通过地形栅格数据生成地面坡度栅格,再使用面域统计功能获得各汇水子面积的平均坡度值;对于不透水面积比例,则需将矢量图层转为栅格图,处理空值后计算面积加权平均值。文章详细说明了ArcGIS工具的操作步骤和参数设置,包括坡度计算、栅格转换、统计分析和数据关联等关键环节,并指出了软件使用中可能出现的字段错位问题及解决方法。通过该方法可获得准确的区域水文分析参数。
2025-11-17 17:37:03
711
原创 排水模型6:汇水子面积的划分
摘要:本文介绍了利用GIS技术划分汇水子面积的方法。首先准备管网节点数据和汇水总范围数据,通过泰森多边形工具生成初始分区。然后使用汇水总面积对多边形进行裁剪,并添加必要的属性字段。最后为避免建模时命名冲突,对汇水子面积进行重命名处理,在ObjectID前添加"s_"前缀。该方法能够自动保存每个汇水子面积对应的出口节点ID,为后续建模工作提供便利。(149字)
2025-11-17 16:16:04
286
原创 排水模型5:节点井底高程自动计算
本文介绍了管网节点井底高程的自动计算方法。节点井底高程取相连管段管底高程的最小值,需在建立管网拓扑关系后计算。使用Excel VBA宏工具实现自动化计算,提供下载链接。操作步骤包括:1)为节点图层添加invertEle和maxDepth属性;2)将节点和管段数据导入Excel工具;3)计算后将结果导回GIS系统。详细说明了数据导出为CSV格式、Excel表格处理以及结果回传GIS的具体操作方法,并配有操作界面截图说明。该方法通过自动化计算简化了管网高程数据处理流程。
2025-11-17 15:43:51
354
原创 排水模型4:管网拓扑关系的建立
本文介绍了排水模型网络拓扑结构的建立方法。通过管段的snode和tnode字段记录上下游节点信息形成拓扑关系,要求管段绘制顺序与坡度方向一致。操作步骤包括:1)使用Feature Vertices to Points工具生成起点(snode)和终点(tnode)点图层;2)通过空间联合将节点ID传递给起点和终点图层;3)将节点ID赋给管段图层的snode和tnode字段;4)通过标注检查拓扑关系是否正确。该方法利用GIS工具实现了管网连接关系的自动化建立,为排水系统分析提供基础数据支撑。
2025-11-17 14:59:27
451
原创 排水模型3:节点数据的生成及属性赋值
本文介绍了利用ArcGIS几何网络功能自动生成排水管网节点的方法。首先通过创建几何网络自动生成节点图层,并设置端点相交判断精度。然后利用地面高程栅格数据为节点赋地面标高值,通过Extract Multi Values to Points工具实现属性赋值。最后为节点图层添加nodeType、invert、maxDepth等属性字段,区分普通节点和排放口节点。该方法解决了CAD图纸中节点数据缺失的问题,实现了管网节点高程信息的自动提取和属性设置,为排水管网建模提供了基础数据支持。
2025-11-17 14:31:11
558
原创 排水模型2:CAD格式的地面高程数据处理
本文介绍了将CAD高程数据转换为GIS栅格数据的方法。首先需确保CAD高程点位于同一图层,通过SQL筛选导入GIS数据库并处理数据类型转换。接着导入建模范围边界数据,生成TIN文件后转换为栅格数据,其中cell size参数需根据模型规模设置(大规模10-20米,小规模2-5米)。最终可获得满足建模需求的栅格高程数据。该方法实现了CAD与GIS数据格式的有效转换,为后续建模提供基础数据支持。
2025-11-17 13:24:50
400
原创 排水模型1:CAD格式的管网数据处理
本文介绍了将CAD排水管网数据转换为GIS格式的技术方法。首先明确了CAD中管段绘制的6项规范要求,包括图层管理、流向表示和节点标识等。其次提出了利用CAD现有属性字段(如图层名、线型比例等)存储管网断面尺寸、上下游标高等关键信息的具体方案。最后详细说明了将CAD数据导入ArcGIS数据库的操作流程,包括创建个人数据库、设置坐标系、筛选导入管段数据等步骤。该方法为排水管网建模提供了标准化的数据预处理方案,为后续节点自动生成等操作奠定了基础。
2025-11-17 12:59:02
444
原创 VS2022编译Qt项目ui文件无法生成moc_XXXX.cpp文件的解决办法
的语句,由于VS认为XXXX类是普通C++类所以按照ClInclude Include的方式进行编译,缺少moc过程,因此不会生成moc_XXXX.cpp文件.解决办法就是将改为这样就会进行moc操作生成moc_XXXX.cpp文件,从而正确进行编译。
2025-07-28 17:51:27
373
原创 在linux操作系统中离线编译GDAL库
这种方法可以在联网的机器上进行源代码的下载和编译,不过编译的结果需要可以拷贝到其他机器上使用。这种方式就是在联网的机器上下载源代码,拷贝到目标机器上进行编译安装。但是一般来说目标机器都是用做服务器的,一般不会进行大量其他操作,只是让你把资料拷贝上去进行部署,很少在服务器上进行大量编译安装操作。首先需要在联网的计算机上下载GDAL库及其依赖库的源代码,考虑到v10操作系统中的编译器版本比较老,##在相同架构的cpu及操作系统的机器上进行编译。##直接在目标机器上编译。
2025-01-19 12:38:31
950
2
原创 linux操作系统离线安装dotnet
选择linux的x64版本文件进行下载,下载文件为压缩包,将压缩文件拷贝至离线机器的目录下,什么目录无所谓,进入该目录,然后执行如下命令解压缩:tar -zxvf dotnet-sdk-3.1.301-linux-x64.tar.gz。上图中dotnet-sdk-8.0.404-linux-x64.tar.gz即为下载的文件,其余文件夹及文件为解压后生成的文件,其中/home/jinxi/dev/HTwater/dotnet为dotnet解压文件夹。命令打开该文件,在文件末尾添加。文件会解压至当前文件夹。
2025-01-12 17:28:43
916
原创 ubuntu22.04系统配置qgis二次开发环境
编译好的QGIS如果能运行,说明其开发的环境也配置好了,可以直接包含编译目录中的src或者build(这个目录是1.7中创建的用于存放编译过程文件和编译结果文件的文件夹)中的头文件,以及包含build/output/lib中的库文件,进行二次开发。但是qgis源码编译后获得的开发环境中的qt环境是不完全的,比如qtcharts这个模块没有,如果二次开发的软件中需要用到qtcharts,那么你还需要自己编译完整的qt开发环境。mkdir -p ${HOME}/dev/cpp/apps //创建安装目录。
2023-12-31 19:39:51
2135
QgisSWMM是一款基于QGIS地理信息平台二次开发的专业软件,专注于城市排水管网系统的水文水动力模拟分析
2026-02-24
excel表格式的管网数据根据节点名称与管段起止节点名称的对应关系,为管段添加起止节点的坐标
2025-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅