LID 英文的全称是Low Impact Development,是20世纪90年代末发展起的暴雨管理面源污染处理技术,旨在通过分散的,小规模的源头控制来达到对暴雨所产生的径流和污染的控制,使开发地区尽量接近于自然的水文循环。
    LID 低影响开发是一种可轻松实现城市雨水收集利用的生态技术体系,其关键在于原位收集自然净化就近利用回补地下水
    主要包含:生态植草沟下凹式绿地雨水花园绿色屋顶地下蓄渗透水路面

SWMM模型LID部分的代码在lid.c 和lid.h文件中,

SWMM模型中支持的LID措施类型包含了五种:BIO_CELL ( bio-retention cell 生物截留单元)  ,   INFIL_TRENCH ( infiltration trench 渗透沟), POROUS_PAVEMENT( porous pavement 透水铺装),  RAIN_BARREL( rain barrel  雨水桶) ,VEG_SWALE( vegetative swale 植被浅沟). 类型定义位于lid.c文件中。 如果需要增加自定义的类型可以在lidTypes 枚举类型中增加。

enum LidTypes {BIO_CELL,                // bio-retention cellINFIL_TRENCH,            // infiltration trenchPOROUS_PAVEMENT,         // porous pavementRAIN_BARREL,             // rain barrelVEG_SWALE                // vegetative swale
}

每种LID措施在模型计算过程最多含有5层。分别是SURF,SOIL,STOR,PAVE,DRAIN。 定义在lid.c中

enum LidLayerTypes {SURF,                    // surface layerSOIL,                    // soil layerSTOR,                    // storage layerPAVE,                    // pavement layerDRAIN};                  // underdrain system

模型开始计算前,在Project.c文件中根据INP文件的输入创建lid objects。代码位于 Project.c文件createObjects函数中。

    // --- create LID objects                                                  //(5.0.019 - LR)lid_create(Nobjects[LID], Nobjects[SUBCATCH]);                             //(5.0.019 - LR)

validateLidProc函数对每个lid措施的参数进行校验,如果参数出错会打印异常,这些异常就是在SWMM模型运行时候经常出现的,比如和LID措施相关的错误:

1 ////  Error messages added for SWMM5 LID edition. ////                         //(5.0.019 - LR)
2 #define ERR183 "\n  ERROR 183: no type specified for LID %s."
3 #define ERR184 "\n  ERROR 184: missing layer for LID %s."
4 #define ERR185 "\n  ERROR 185: invalid parameter value for LID %s."
5 #define ERR186 "\n  ERROR 186: invalid parameter value for LID placed in Subcatchment %s."
6 #define ERR187 "\n  ERROR 187: LID area exceeds total area for Subcatchment %s."

参数校验主要时候检查每个LID措施是否有相应的层。另外还会对一些参数的大小进行比较,比如萎蔫点的值应当小于田间持水量的值等。

   //... check pavement layer parametersif ( LidProcs[j].lidType == POROUS_PAVEMENT ){if ( LidProcs[j].pavement.thickness  <= 0.0 ||   LidProcs[j].pavement.kSat       <= 0.0 ||   LidProcs[j].pavement.voidFrac   <= 0.0||   LidProcs[j].pavement.voidFrac   >  1.0||   LidProcs[j].pavement.impervFrac >  1.0 )report_writeErrorMsg(ERR_LID_PARAMS, LidProcs[j].ID);}//... check soil layer parametersif ( LidProcs[j].soil.thickness > 0.0 ){if ( LidProcs[j].soil.porosity      <= 0.0 ||   LidProcs[j].soil.fieldCap      >= LidProcs[j].soil.porosity||   LidProcs[j].soil.wiltPoint     >= LidProcs[j].soil.fieldCap||   LidProcs[j].soil.kSat          <= 0.0||   LidProcs[j].soil.kSlope        <  0.0 )report_writeErrorMsg(ERR_LID_PARAMS, LidProcs[j].ID);}//... check storage layer parametersif ( LidProcs[j].storage.thickness > 0.0 ){

完成了LID措施的参数校验后,开始进行循环计算。

getLidOutflow函数中计算每个LID措施在单位面积上的出流。在getLidOutflow函数中有fluxRates这个变量,这是一个函数指针,通过这个函数指针,根据每个LID措施的类型,指向某个类型的计算函数。这样保证每个LID措施调用的计算方式都是一致的。

    //... determine which flux rate function to useswitch (theLidProc->lidType){case BIO_CELL:        fluxRates = &biocellFluxRates;  break;case INFIL_TRENCH:    fluxRates = &trenchFluxRates;   break;case POROUS_PAVEMENT: fluxRates = &pavementFluxRates; break;case RAIN_BARREL:     fluxRates = &barrelFluxRates;   break;case VEG_SWALE:       fluxRates = &swaleFluxRates;    break;

完成计算后,返回单位面积上的出流。

参考链接:http://www2.epa.gov/science-and-technology/water

http://gp.zhulong.com/topic_LID.html

转载于:https://www.cnblogs.com/WaterInfor/archive/2013/02/02/2890010.html

SWMM模型代码LID(Low Impact Development)模块分析相关推荐

  1. SAP低代码开发(Low Code Development)解决方案的一些使用截图

  2. SAP云平台上的Low Code Development(低代码开发)解决方案

    Jerry之前曾经陆续写过一些文章,介绍SAP各种开发工具和开发平台: 那些年我用过的SAP IDE SAP智能机器人流程自动化解决方案 如何使用SAP Intelligent Robotic Pro ...

  3. 水文模型有哪些?SWAT模型、VIC模型、HEC模型、HSPF模型、HYPE模型、SWMM模型、FVCOM模型、Delft3D模型等应用

    目录 ㈠ 从小白到精通SWAT模型学习建模方法.实例应用.高级进阶 ㈡ R+VIC模型融合实践技术应用及未来气候变化模型预测 ㈢ HEC-RAS一维.二维建模方法及实践技术应用 ㈣ HEC-HMS水文 ...

  4. python灰色模型代码_几行代码搞定ML模型,低代码机器学习Python库正式开源

    机器之心报道 机器之心编辑部 PyCaret 库支持在「低代码」环境中训练和部署有监督以及无监督的机器学习模型,提升机器学习实验的效率. 想提高机器学习实验的效率,把更多精力放在解决业务问题而不是写代 ...

  5. 苏建林DGCNN模型代码详解

    1.说明 以下代码为苏神参加百度信息抽取比赛提出的DGCNN模型代码,其源码基本是没有注释的,所以本文对大部分代码做了注释,可能有不对的地方,可以指出.另一个就是对keras3.x版本下Attenti ...

  6. 【CSS】课程网站 Banner 制作 ① ( Banner 栏测量 | Banner 盒子模型代码 | 代码示例 )

    文章目录 一.Banner 栏测量 1.盒子模型尺寸测量 2.背景测量切图 二.Banner 盒子模型代码 1.HTML 标签结构 2.CSS 样式 3.显示效果 绘制下图矩形框内容 : 一.Bann ...

  7. php kingcms 模型调用,KingCMS 中模板、模块、模型区别

    模板 就是前台网页的基础样子,生成前台网页时,会根据模板向其中填充数据库中的数据,以显示一个具有特定样子.具有特定数据的网页.在 KingCMS 2009 版本中,模板位于 template 文件夹. ...

  8. Bringing Old Photos Back to Life模型代码分析1(数据载入部分)

    (1)Bringing Old Photos Back to Life原理和测试 (2) Bringing Old Photos Back to Life模型代码分析1(数据载入部分) Bringin ...

  9. Python 调用 SCIP 求解器的选址模型代码示例

    本文介绍 Python 语言调用 SCIP 求解器,求解选址模型的代码示例. 安装 SCIP 和 PySCIPOpt 安装 SCIP 求解器的教程: SCIP | 数学规划求解器SCIP超详细的使用教 ...

  10. 2016年大数据Spark“蘑菇云”行动代码学习之AdClickedStreamingStats模块分析

    2016年大数据Spark"蘑菇云"行动代码学习之AdClickedStreamingStats模块分析     系统背景:用户使用终端设备(IPAD.手机.浏览器)等登录系统,系 ...

最新文章

  1. AB1601读触摸芯片ASC0106的IIC波形图
  2. CVE-2021-29454——Smarty模板注入
  3. [css] 说说你对table-layout的理解,它有什么运用场景?
  4. Shell shift的使用方法
  5. Intellij idea 自动生成serialVersionUID
  6. hdu_3555 bomb
  7. Unity IOC简单认知
  8. PHP数据处理:合并数据、详情数据
  9. STM32——电容触摸按键
  10. web前端仿网易云官网
  11. 你们要的日文AI实时字幕来了,谷歌浏览器VS小白浏览器AI大比拼
  12. 分布式存储Ceph之PG状态详解
  13. dos命令、find、findstr、ping、nbtstat、netstat、net、at、ftp、telnet、tasklist、taskkill、netsh...
  14. 理解浏览器的历史记录
  15. linux修改时区时间est->cst
  16. Quartus II实验二 运算部件实验:并行乘法器
  17. android 跳转oppo应用中心_Android 遍历手机应用,跳转应用市场详情页面
  18. 【PHP项目部署一】PHP环境配置
  19. 腾讯QQ团队开源分布式后台服务引擎msec
  20. 不知道你有没有听说过所谓编程知识也是有半衰期的?

热门文章

  1. ax200蓝牙驱动linux,AX200蓝牙驱动
  2. 2021国内市场CRM软件排行榜
  3. 2022焊工(初级)上岗证题目及在线模拟考试
  4. newifid1网页服务器,newifi d1刷老毛子固件测试
  5. excel如何批量查询手机号归属地
  6. java毕业设计基于javaweb+mysql数据库实现的在线学习网站|在线课堂含论文+开题报告
  7. ISA Server 新手完全进阶指南
  8. 如何在Debian8.6 jessie上使用小度Wifi
  9. 【安全科普】AD域安全管理(一)
  10. 挂机宝是服务器还是虚拟主机,挂机宝是云虚拟主机吗