版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SL/T863—2026数字孪生水利专业模型集成与服务技术要求1范围本标准规定了数字孪生水利专业模型在输入输出数据标准化、封装、登记与测试、服务发布与调用等环节技术要求。本标准适用于数字孪生水利建设中涉及的水文、水力学、水资源、水生态环境、泥沙动力学、水土保持、水利工程安全及调度等水利专业模型的集成与服务。2规范性引用文件下列文件中的内容通过文中的规范性引用而构成本标准必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本标准;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本标准。GB/T17143.6—1997信息技术开放系统互连系统管理第6部分:日志控制功能GB/T44158—2024信息技术云计算面向云原生的应用支撑平台功能要求SL/T797—2020水利空间数据交换协议SL/T809—2021水利对象基础数据库表结构及标识符SL/T837—2021数字孪生水利数据底板地理空间数据规范ISO/IECTS23167:2020信息技术—云计算—通用技术与方法(Informationtechnology—Cloudcomputing—Commontechnologiesandtechniques)3术语与定义下列术语和定义适用于本标准。3.1数字孪生水利专业模型digitaltwinwaterresourcesmodel基于水循环自然规律,通过数学方法表征物理流域要素变化、人类活动规律和相互关系,包括机理分析模型、数理统计模型和混合模型等。3.2容器技术containertechnology将应用程序及其所有依赖环境封装成标准化单元的虚拟化技术。3.3模型封装modelencapsulation基于容器技术,将数字孪生水利专业模型程序、配置文件及其运行依赖进行统一处理,并转换为可在容器环境中部署与运行的模型镜像的过程。3.4初始条件initialcondition描述水利专业模型运行起始时刻各参数物理量,如地下水位、地下径流量、河道水位、土壤含水量等。3.5边界条件boundarycondition限制水利专业模型求解区域边界上的变量,如温度、压力、流速等。SL/T863—20264缩略语下列缩略语适用于本标准。Containerd:容器运行时(ContainerDaemon)NetCDF:网络通用数据格式(NetworkCommonDataForm)JSON:对象表示法(JavaScriptObjectNotation)5总则本标准的目的是依托数字孪生平台实现水利专业模型的标准化集成和统一服务,主要流程包括输入输出标准化、模型封装、模型登记与测试、服务发布与调用四个环节(如图1所示),基本要求如下:a)模型提供方应提供水利专业模型及其实例化结果,采用多模型协同构建的水利专业模型应作为单一水利专业模型进行封装。b)水利专业模型应按照GB/T17143.6—1997的要求具备运行日志记录功能,运行日志应包含运行状态、运行进度等信息。6输入输出要求6.1一般要求水利专业模型输入输出要求如下:a)输入输出数据要求应涵盖数据内容、数据文件及文件格式。b)数据文件宜按照数据类别、学科类别、业务范畴、访问频次等进行划分,每个数据文件可包含多个数据项。c)文件格式宜采用NetCDF、JSON等格式,可根据模型输入输出数据的维度与结构复杂度确定。6.2数据内容6.2.1输入数据内容输入数据内容可分为基础数据、模型参数数据、初始条件数据、边界条件数据等,相关内容示例2SL/T863—2026详见附录A.2~A.4。输入数据内容要求如下:a)基础数据宜参照SL/T797—2020、SL/T809—2021、SL/T837—2021的要求获取与命名。b)模型参数数据可基于实地测量、概化求解条件或模型运行迭代获取。c)初始条件数据可基于模型初始化过程中的模型变量和模型状态参数获取。d)边界条件数据可基于水工程调度规则、指令等控制模型持续求解的内外部约束条件获取。6.2.2输出数据内容模型输出数据内容可分为基础输出数据和拓展输出数据。基础输出数据由模型计算直接获得,拓展输出数据由基础输出数据加工后获得。相关内容示例详见附录A.2~A.4。6.2.3数据项命名数据项命名要求如下:a)数据项中文名称宜根据数据项所记录或描述的内容确定。b)数据项英文名称宜根据数据项中文名称对应的英文或汉语拼音确定。英文名称应采用大写字母,由多个单词组成时,应以下划线“”进行连接。英文名称中不应出现空格或其他特殊字符。c)数据项中英文命名应采用行业内约定俗成的名称。6.3数据文件数据文件要求如下:a)数据文件命名应基于其记录的输入输出数据类型与具体内容确定,并宜采用{数据内容类型英文名称〉(数据项英文名称〉的形式。示例:boundaryconditionpa,其中“boundarycondition”指数据内容类型英文名称,“pa”指数据项英文名称。b)可依据数据文件内容添加中文注释。中文注释可采用(数据内容类型中文名称)(数据项中文名称〉的形式。示例:内外边界条件数据等时段面雨量,其中“内外边界条件数据”指数据内容类型中文名称,“等时段面雨量”指数据项中文名称。c)英文命名及中文注释中不应出现空格或其他特殊字符。d)对于计算耗时长、输出数据文件数量较多的水利专业模型,其输出数据文件宜根据模型输出需求及模型输出时间步长实现动态输出。6.4文件格式6.4.1NetCDF等文件格式对于模型输入输出数据结构复杂、数据维度大于二维的数据文件,应采用NetCDF等文件格式。数据的描述形式应包括全局属性、变量和维度(内容示例详见附录A.5),要求如下:a)全局属性可存储单值输入输出数据或以字符串形式表达的数据文件地址等信息。b)变量可存储以数组形式组织的输入输出数据。c)维度应存储变量的长度,其数据类型应为整型。6.4.2JSON等文件格式对于模型输入输出数据维度小于或等于二维的数据文件,应采用JSON等文件格式。数据的描述形式应包括键属性、值属性、维度(内容示例详见附录A.5),要求如下:a)键属性的数据类型应为字符串型,宜用于标识模型的不同输入输出数据项。3SL/T863—2026b)值属性的数据类型可为整型、浮点型、字符型、字符串型或数组,宜用于存储模型输入输出数据项的数值。c)维度应存储变量的长度,其数据类型应为整型。7封装要求7.1一般要求模型封装一般要求如下:a)模型开发语言应具备在常用操作系统编译与执行的条件。b)模型宜具备在自主可控的软硬件环境中运行的条件。c)应基于容器技术对模型进行封装,模型镜像应包括模型运行所需的第三方依赖库和运行模块。7.2模型封装应基于Containerd的容器技术将模型及其运行依赖环境整体封装(操作示例详见附录B),要求如下:a)以源代码、动态链接库或可执行程序形式提供的模型,应按照ISO/IECTS23167:2020的要求提供完整的运行时依赖环境,并封装为独立镜像。b)以服务接口形式提供的模型,应提供模型运行所需的依赖环境,并封装为独立镜像。c)模型镜像名称宜以小写英文字母或汉语拼音开头。名称其余部分可包含小写英文字母、汉语拼音、连接线“一”、点“.”、冒号“:”或数字。d)模型镜像名称最大长度应为255位字符,且应明确表达其含义。e)模型镜像名称宜包括模型提供单位、模型类别、模型名称及版本号。示例:yrihr-xaj:1.0.1,其中“yrihr”指模型提供单位的简写,“xaj”指模型名称的简写,“1.0.1”指模型版本号。8模型登记与测试8.1一般要求模型登记与测试一般要求如下:a)模型登记中文名称应采用(提供单位)一(模型特性)一(模型名称)的形式。b)数字孪生平台应具备开展模型测试所需的功能条件。c)模型应先完成登记,再开展测试。8.2登记要求模型的登记信息应包括模型分类、模型中文名称、模型英文名称、模型开发语言、模型版本号、模型提供单位、模型镜像地址、占用内存、存储空间、CPU核心数、平台架构以及GPU需求,并宜包括模型简介、模型使用说明等。登记示例详见附录C。8.3测试要求已登记模型应通过数字孪生平台驱动测试计算,并正确返回模型计算结果。9服务发布与调用9.1一般要求测试完成的模型应由数字孪生平台管理方进行服务发布与调用,一般要求如下:4SL/T863—2026a)数字孪生平台管理方应遵循ISO/IECTS23167:2020的规定,将模型发布为可异步调用的服务接口,服务接口应具备可发现性、互操作性及安全性。b)应向模型使用方提供模型服务的调用文档及示例。c)模型服务的全生命周期管理宜符合GB/T44158—2024规定的云计算运维要求。9.2 服务发布要求服务发布要求如下:a)发布的模型服务应包含服务名称、请求地址、请求方式、请求参数及参数示例等内容;b)应明确请求参数的格式和类型,并应提供参数默认值。9.3 服务调用要求模型使用方应按要求提供回调地址、验证密钥、参数字段名、参数值等内容。5SL/T863—2026附录A(资料性)模型输入输出数据示例A.1模型输入输出数据示例说明为便于参考与应用,本附录以数字孪生专业模型中水文、水力学模型的输入输出数据内容作为示例,具体内容可根据实际情况进行调整。A.2集总式水文模型数据内容表结构可参照SL323。输入数据中的基础数据示例见表A.1。表A.1输入数据基础数据流域基本信息字段名称英文名称数据结构数据类型维度排序单位默认值备注流域面积BASAREA单值单精度浮点型-km²-特征河长LENGTH单值单精度浮点型-km-不透水面积比例IM单值单精度浮点型-0输入数据中的模型参数数据示例见表A.2。表A.2输入数据模型参数数据字段名称英文名称数据结构数据类型维度排序单位默认值备注上层张力水蓄水容量比例WUMX单值单精度浮点型-0.2张力水蓄水容量曲线方次B单值单精度浮点型-0.4深层蒸散发系数C单值单精度浮点型-0自由水蓄水容量曲线方次EX单值单精度浮点型-1.5平均张力水蓄水容量WM单值单精度浮点型-mm120下层张力水蓄水容量比例WLMX单值单精度浮点型-0.9自由水蓄水容量SM单值单精度浮点型-mm25蒸散发能力折算系数K单值单精度浮点型-1地下水日出流系数KG单值单精度浮点型-0.3壤中流日出流系数KI单值单精度浮点型-0.3河网蓄水消退系数CS单值单精度浮点型-0.8计算步长KK单值单精度浮点型-h1河网汇流滞时时段数LAG单值整型-3子河段数MP单值整型-06SL/T863—2026输入数据中的初始条件数据示例见表A.3。表A.3输入数据初始条件数据初始状态字段名称英文名称数据结构数据类型维度排序单位默认值备注数量维度LEN维度整型-20用于声明数组长度马法初始流量QXSIGS一维数组单精度浮点型LENm³/s1.5,1.5,1.5,1.5,1.5,1.5,1.5,0,0,0,0,0,0.0,0.0,0.0,0,0初始总基流QSIGS一维数组单精度浮点型LENm²/s2.1,2.1,2.1,2.1,2.1,2.1,2.1,2.1,2.1,0,0,0,0,0,0,0,0,0,0,0下层张力水含水量WLPS单值单精度浮点型-mm20自由水蓄量SPS单值单精度浮点型-mm5深层张力水含水量WDPS单值单精度浮点型-mm50上层张力水含水量WUPS单值单精度浮点型-mm10初始时刻地表径流量QSPS单值单精度浮点型-m³/s21.5初始时刻地下径流量QGPS单值单精度浮点型-m³/s2.5产流面积比FRPS单值单精度浮点型-0.1输入数据中的边界条件数据示例见表A.4和表A.5。表A.4输入数据边界条件数据等时段面雨量字段名称英文名称数据结构数据类型维度排序单位默认值备注时间维度TM维度整型--用于声明数组长度等时段面雨量值PA一维数组单精度浮点型TMmm-开始时间BGTM单值字符串--格式参照GB/T7408.1要求结束时间EDTM单值字符申--格式参照GB/T7408.1要求时间间隔DT单值整型-h1时间间隔单位DTUNIT单值字符申-h7SL/T863—2026表A.5输入数据边界条件数据蒸发字段名称英文名称数据结构数据类型维度排序单位默认值备注时间维度TM维度整型--用于声明数组长度蒸发量值ETP一维数组单精度浮点型TMmm-开始时间BGTM单值宇符申--结束时间EDTM单值字符申--时间间隔DT单值字符串-h1时间间隔单位DTUNIT单值字符串-h输出数据中的基本输出数据示例见表A.6。表A.6输出数据基本输出数据出口流量过程字段名称英文名称数据结构数据类型维度排序单位默认值备注时间维度TM维度整型——用于声明数组长度流量值Q一维数组单精度浮点型TMm²/s—开始时间BGTM单值字符串——格式参照GB/T7408.1要求结束时间EDTM单值字符串——格式参照GB/T7408.1要求时间间隔DT单值字符串—h1时间间隔单位DTUNIT单值字符申—hs、min、h、d、T、M分别代表秒、分、小时、日、旬、月A.3一维水动力学模型数据内容输入数据中的基础数据示例见表A.7、表A.8。表A.7输入数据基础数据断面信息字段名称英文名称数据结构数据类型维度排序单位默认值备注断面位置维度LOC维度整型5断面起点距-高程数据对最大数量维度POINTNUMMAX维度整型断面要素维度TOPOGRAPHY维度整型-4断面数量维度DMNUM维度整型断面曼宁DMMANNING一维数组单精度浮点型DMNUM断面地形数据DMTOPOGRAPHY三维数组单精度浮点型DMNUM,POINTNUMMAX,TOPOGRAPHY用于存储各个断面起点距-高程以及断面点位置x、y坐标值的变量8SL/T863—2026表A.7输入数据基础数据断面信息(续)字段名称英文名称数据结构数据类型维度排序单位默认值备注断面位置DMLOC二维数组DMNUM,LOC在断面位置维度上的列分别为:1.断面编号;2.断而起点x坐标值;3.断面起点y坐标值;4.断面终点x坐标值;5.断面终点y坐标值表A.8输入数据基础数据河道断面拓扑字段名称英文名称数据结构数据类型维度排序单位默认值备注河道数量维度HDNUM维度整型—断面间距维度TOPR———河道最大断面数量维度HDDMNUMMAX|———汉点最大关联断面数量维度COUPLEDDMNUMMAX———沒点数量维度JUNCTIONNUM各河道关联断面编号及断面间距数据HDDMTOPR三维数组双精度浮点型HDNUM,HDDMNUMMAX,TOPR汉点编号及关联断面编号数据COUPLEDDM二维数组双精度浮点型JUNCTIONNUM,COUPLEDDMNUMMAX输入数据中的模型参数数据示例见表A.9。表A.9输入数据模型参数数据控制参数字段名称英文名称数据结构数据类型维度排序单位默认值备注输出时间间隔OUTPUTDT单值整型-s30模型计算结果输出的时间间隔控制参数输出时间间隔单位OUTPUTDTUNIT单值字符串--输出时间间隔单位(h:小时;min:分钟;s:秒)时间步长DT单值整型--模型计算的时间步长模拟时间TFINAL单值单精度浮点型--9SL/T863—2026输入数据中的初始条件数据示例见表A.10。表A.10输入数据初始条件数据一维初始场字段名称英文名称数据结构数据类型维度排序单位默认值备注数量维度NUM维度整型—断面、网格数量水力要素参数维度TYPE维度整型4模型的状态参数的种类,对于一维模型维度为4,要素种类分别为断面ID、水位、流量、流速;对于二维模型维度为4,要素种类为节点编号、水位、水平流速、竖直流速水力要素参数STS二维数组双精度浮点型NUM,TYPE-输入数据中的边界条件数据示例见表A.11~表A.13。表A.11输入数据边界条件数据入流信息字段名称英文名称数据结构数据类型维度排序单位默认值备注开始时间BGTM单值字符申—人流序列的开始时刻,格式参照GB/T7408.1要求结束时间EDTM单值字符串—入流序列的结束时刻,格式参照GB/T7408.1要求时间间隔DT单值整型—1入流序列之间的时间间隔值时间间隔单位DTUNIT单值字符串h时间间隔的时间单位入流方位BRLENGTH一维数组双精度浮点型INNUM—对于结构网格的二维水动力:表示各个入流口的宽度入流边界流量序列INFLOW二维数组双精度浮点型TM,INNUM—以列的形式存在,其值为不同时刻的流量值(单位:m³/s),其列的索引对应各个入流口编号的索引(例如第1列的数据为入流边界1的流量序列值)时间维度TM维度整型—从起始时刻开始算起,该值取决于模拟的总时长和时间间隔[例如,若模拟总时长为5h,时间间隔为1h,则时间维度为6(6=5/1+1)]10SL/T863—2026表A.11输入数据边界条件数据入流信息(续)字段名称英文名称数据结构数据类型维度排序单位默认值备注入流维度INNUM维度整型-—入流口的数量,该值与预处理时绘制的入流口的数量保持一致入流类型INFLDIR一维数组双精度浮点型INNUM-对于结构网格的二维水动力:入流类型为该值为对应入流口的入流方向值(direction值)表A.12输入数据边界条件数据出口边界字段名称英文名称数据结构数据类型维度排序单位默认值备注时间间隔DT单值整型-1用于表征出流流量边界序列值的时间间隔时间间隔单位DTUNIT单值字符串-h用于表征出流流量边界序列值时间间隔的单位(h:小时:min:分钟;s:秒)时间维度TM维度整型--从起始时刻开始算起,该值取决于模拟的总时长和时间间隔[例如,模拟总时长为5h,时间间隔为1h,则时间维度为6(6=5/1+1)]出流维度OUTNUM维度整型-1与出流边界的数量保持一致出流方位BRLENGTH一维数组整型OUTNUM-100填写出流边界的Tag值(取值为-100~-200)出流类型OUTFLDIR一维数组整型NINNUM-1:水位边界;2:流量边界;3:水位流量边界;4:开放边界出流时序过程OUTFLOW二维数组双精度浮点型TM,DOUTNUM|-数组为两列对应一个出口,多个出口边界时,以此往后排出口时序维度DOUTNUM维度整型--该值为出口数量的2倍水位流量维度ZQDIM维度整型--存储水位流量关系曲线数据,ZQ值为出口边界数量的2倍水位流量关系对维度ZQNUM维度整型--水位流量关系对的最大数量11SL/T863—2026表A.12输入数据边界条件数据出口边界(续)字段名称英文名称数据结构数据类型维度排序单位默认值备注水位流量关系曲线ZQ二维数组双精度浮点型ZQNUM,ZQDIM—出口维度NINNUM维度整型时间间隔单位DTUNIT单值字符串-h用于表征出流流量边界序列值时间间隔的单位(h:小时;min:分钟;s:秒)表A.13输入数据边界条件数据线源配置字段名称英文名称数据结构数据类型维度排序单位默认值备注开始时间BGTM单值字符申--格式参照GB/T7408.1要求结束时间EDTM单值字符申--格式参照GB/T7408.1要求时间间隔DT单值整型--时间间隔单位DTUNIT单值字符串--线源数量SOURCENUM维度整型--河段数目最大值MAXSECTIONNUM维度整型--时间维度TM维度整型-河段数目SECTIONNUM一维数组整型SOURCENUM-河段首断面ID|SECTIONSTARTID二维数组整型SOURCENUM,MAXSECTIONNUM-河段末断面IDSECTIONENDID二维数组整型SOURCENUM,MAXSECTIONNUM-线源流量Q二维数组单精度浮点型SOURCENUM,TM-输出数据中的基本输出数据示例见表A.14。表A.14输出数据基本输出数据断面过程数据字段名称英文名称数据结构数据类型维度排序单位默认值备注断面数量维度MN维度整型--时间维度TM维度整型--水力要素维度IDQZV维度整型--12SL/T863—2026表A.14输出数据基本输出数据断面过程数据(续)字段名称英文名称数据结构数据类型维度排序单位默认值备注计算结果数据RESULT三维数组单精度浮点型MN,IDQZV,TM-用于存储一维水动力模型的计算结果,沿着水力要素维度方向各列的值分别为:1.断面编号;2.断面流量;3.断面水位;4.断面流速输出时间间隔DT单值单精度浮点型--输出时间间隔单位DTUNIT单值字符串-s时刻数TOTALTM单值整型--输出开始时间BGTM单值字符串--格式参照GB/T7408.1要求输出结束时间EDTM单值字符串--格式参照GB/T7408.1要求A.4 二维水动力学模型数据内容输入数据中的基础数据示例见表A.15和表A.16。表A.15输入数据基础数据非结构网格地形数据字段名称英文名称数据结构数据类型维度排序单位默认值备注节点数量维度PC维度整型--用于声明数组长度网格数量维度TC维度整型--用于声明数组长度节点要素维度PAC维度整型--用于声明数组长度网格拓扑维度TAC维度整型--用于声明数组长度网格拓扑数据TITIT2T3T4二维数组整型TC,TAC-用于存储网格拓扑数据,沿着网格拓扑维度方向,各列数据为:1.网格编号;2.第一个节点编号;3.第二个节点编号;4.第三个节点编号;5.第四个节点编号。当第四个节点与第一个节点编号一致时,为三角形,反之为四边形,节点排列的方向为逆时针节点要素数据PIXYZTMI二维数组整型PC,PAC-13SL/T863—2026表A.16输入数据基础数据结构网格地形数据字段名称英文名称数据结构数据类型维度排序单位默认值备注行数NROWS维度整型--列数NCOLS维度整型--地形BATHY二维数组双精度浮点型NROWS,NCOLS-结构网格二维水动力模型的地形高程数据文件土地利用FLAG二维数组双精度浮点型NROWS,NCOLS-结构网格二维水动力模型的土地利用类型文件入流位置INFLOWFLAG二维数组双精度浮点型NROWS,NCOLS-结构网格二维水动力模型的人流口位置文件、包含入流口的编号、起止点坐标、入流类型信息输入数据中的模型参数数据示例见表A.17。表A.17输入数据模型参数数据控制参数字段名称英文名称数据结构数据类型维度排序单位默认值备注模拟总时间TFINAL单值双精度浮点型s-模拟洪水总历时时间步长DT单值双精度浮点型-0.01默认值为0.01,模型计算时第一步的计算步长,通常采用0.01时间步长单位DTUNIT单值字符申---s输出时间间隔单位(h:小时;min:分钟;s:秒)输出时间间隔OUTPUTDT单值双精度浮点型模型计算结果间隔多长洪水历时输出一次,单位为秒(s)输出时间间隔单位OUTPUTDTUNIT单值字符申-s-输出时间间隔单位(h:小时;min:分钟;s:秒)输入数据中的初始条件数据示例见表A.18。14SL/T863—2026表A.18输入数据初始条件数据初始场字段名称英文名称数据结构数据类型维度排序单位默认值备注数量维度NUM维度整型一断面、网格数量水力要素参数维度TYPE维度整型4模型的状态参数的种类,对于一维模型维度为4,要素种类分别为断而ID、水位、流量、流速;对于二维模型维度为4,要素种类为节点编号、水位、水平流速、竖直流速水力要素参数STS二维数组双精度浮点型NUM,TYPE输入数据中的边界条件数据示例见表A.19和表A.20。表A.19输入数据边界条件数据边界时序字段名称英文名称数据结构数据类型维度排序单位默认值备注开始时间BGTM单值字符串-入流序列的开始时刻,格式参照GB/T7408.1要求结束时间EDTM单值字符申--入流序列的结束时刻,格式参照GB/T7408.1要求时间间隔DT单值整型-h1入流序列之间的时间间隔值时间间隔单位DTUNIT单值字符串-h时间间隔的时间单位(结构化网格二维水动力模型仅支持h单位)时间维度TM维度整型从起始时刻开始算起,该值取决于模拟的总时长和时间间隔(例如,模拟总时长为5h,时间间隔为1h,则时间维度为5/1+1=6)边界维度INNUM维度整型-入流口的数量,该值与预处理时绘制的入流口的数量保持一致15SL/T863—2026表A.19输入数据边界条件数据边界时序(续)字段名称英文名称数据结构数据类型维度排序单位默认值备注边界类型INFLDIR一维数组双精度浮点型INNUM对于结构网格的二维水动力;入流类型为该值为对应入流口的入流方向值(direc-tion值);对于非结构网格的二维水动力;该值为入流边界的类型其中:1为流量边界;2为水位边界边界方位BRLENGTH一维数组双精度浮点型INNUM一对于结构网格的二维水动力:表示各个入流口的宽度;对于非结构网格的二维水动力:表示各个入流边界的类型。其中:1为水位边界;2为流量边界;3为水位流量边界;4为开放边界边界流量序列INF1.OW二维数组双精度浮点型TM,INNUM—以列的形式存在,其值为不同时刻的流量值,其列的索引对应各个入流口编号的索引。例如,第1列的数据为入流边界1的流量序列值表A.20输入数据边界条件数据下渗字段名称英文名称数据结构数据类型维度排序单位默认值备注开始时间BGTM单值字符串——下渗序列的开始时刻,格式参照GB/T7408.1要求结束时间EDTM单值字符申——下渗序列的结束时刻,格式参照GB/T7408.1要求时间间隔DT单值整型—1下渗序列值的时间间隔时间间隔单位DTUNIT单值字符申—h下渗序列值的时间间隔的单位16SL/T863—2026表A.20输入数据边界条件数据下渗(续)字段名称英文名称数据结构数据类型维度排序单位默认值备注时间维度TM维度整型--该值取决于模拟的总时长和时间间隔(例如,模拟总时长为5h,时间间隔为1h,则时间维度为5/1+1=6)下渗维度INNUM维度整型--该值与土地利用类型的数量保持一致下渗序列INFILTRATION二维数组双精度浮点型TM,INNUMmm-以列的形式存在,其值为不同时刻的下渗值,其列的索引对应各个土地利用类型编号的索引输出数据中的基本输出数据示例见表A.21。表A.21输出数据基本输出数据水流演进成果字段名称英文名称数据结构数据类型维度排序单位默认值备注开始时间BGTM单值字符申--格式参照GB/T7408.1要求结束时间EDTM单值字符串-格式参照GB/T7408.1要求时间间隔DT单值整型-h1时间间隔单位DTUNIT单值字符串-h节点数量MN维度整型--单元数量CELLNUM维度整型--变量维度ZZBUV维度整型--地形维度XYZBDIM维度整型-3拓扑维度TOPRDIM维度整型-5节点地形XYZB二维数组单精度浮点型MN,ZYZBDIMm-网格拓扑TOPR二维数组单精度浮点型CELLNUM,TOPRDIM-初始时刻水流状态0二维数组单精度浮点型MN,ZZBUV-第1时刻水流状态1二维数组单精度浮点型MN,ZZBUV-……二维数组单精度浮点型MN,ZZBUV-其余时刻参照上行输出17SL/T863—2026输出数据中的拓展输出数据示例见表A.22。表A.22输出数据拓展输出数据洪水风险图信息字段名称英文名称数据结构数据类型维度排序单位默认值备注网格单元数量CELLNUM维度整型——用于声明数组长度最大淹没水深MAXDEPTH一维数组单精度浮点型CELLNUM—最大流速MAXV一维数组单精度浮点型CELLNUM—洪水到达时间TARRIVAL一维数组单精度浮点型CELLNUM—洪峰到达时间TMAXH一维数组单精度浮点型CELLNUM—淹没时长TDURING一维数组单精度浮点型CELLNUM—最高水位MAXETA一维数组单精度浮点型CELLNUM—A.5 数据格式文件NetCDF格式文件示例如下。//.nc文件组织实例,以新安江模型的时段降雨输入为例NetCDFfile:/路径/pa.nc(dimensions:TM=625;variables;floatPA(TM=625);//globalattributes::BGTM=“YYYY-MM-DDhh:mm:ss”;:EDTM=“YYYY-MM-DDhh:mm:ss”;:DT=1;//int:DTUnit="H";}JSON格式文件示例如下。[{"key":"argl",“value”:“字符串示例”),{"key":"arg2","value":10//整型示例),{"key":"arg3","value":1.20//浮点数示例),{"key":"arg4","value":[1.2,1.3]//数组数据示例)]18SL/T863—2026附录B(资料性)模型封装示例B.1 模型封装示例说明为便于参考与应用,本附录以数字孪生专业模型中水文、水力学模型的封装过程作为示例,具体内容可根据实际情况进行调整。B.2 集总式水文模型封装示例本示例以动态链接库形式的新安江模型为例,介绍集总式水文模型的封装过程,示例代码语言为Python。新安江模型镜像运行的主程序用于实现模型输入输出对模型动态链接库的调用和模型运行,以下为主程序代码示例。importctypesimportargparsefromNetCdfHandlerimportNetCdfHandlerfromFileHandlerimportFileHandlerimportloggingparser=argparse.ArgumentParser(prog="xaj”,usage="pythonxajprogram")parser.addargument(”—control”,type=str)#parser.addargument("--basin”,type=str)parser.addargument("——p",type=str)parser.addargument(”——em”,type=str)parser.addargument(”——out”,type=str)ifname=='main':args=parser.parseargs()logging.info("startcalculate....")try:nh=NetCdfHandler()fh=FileHandler()controldata=nh.readControl(args.control)pData=nh.readPorEm(args.p,“PA”)emData=nh.readPorEm(args.em,“ETP”)timeData=nh.readTime(args.p)fh.generateWatershed(”/data/watershed.txt”,controldata) #流域特征参数fh.generateTime(”/data/time.txt”,timeData)#时间间隔(程序默认是小时,h)fh.generateControl("/data/parameter.txI",controldata) #写入控制参数fh.generatePEM("/data/P.txt",pData,“pa") #写人降雨值fh.generatePEM("/data/EM.txt",emData,“ftp”)mydll=ctypes.CDLL('/data/XAJ.so')inputdir="/data/"inputdirbyte=bytes(inputdir,encoding='utf8')mydll.RunXAJ(inputdirbyte,inputdirbyte,inputdirbyte)q=fh.readOutputFile(”/data/Q.txt”)nh.createOutput(timeData,q,args.out)exceptctypes.CDLL.Errorase:logging.error(e)raiseeexceptExceptionase:logging.error(e)raisee19SL/T863—2026拉取模型运行环境基础镜像,并在拉取的ubuntu基础镜像中安装NetCDF4等软件包,配置模型的运行环境,以下为基础容器镜像构建代码示例。dockerrun-td--nameubuntuubuntu:20.04aptinstallpython3-pippip3installnetcdf4-ihttps:///simple镜像封装需先编写Dockerfile,并在Dockerfile文件中定义模型镜像的参数接口,以下为Docker-file文件编写示例。FROMyrihr-meshing-base:0.0.1COPYYXxaj.py/dataCOPYNetCdfHandler.py/dataCOPYFileHandler.py/dataCOPYXAJ,so/dataWORKDIR/dataENTRYPOINT["python3","YXxaj.py"]B.3 一维水动力学模型封装示例本示例以动态链接库形式的一维水动力模型为例,介绍一维水动力模型的封装过程,示例代码语言为Python。一维水动力模型镜像运行的主程序用于实现模型输入输出对模型动态链接库的调用和模型运行,以下为主程序代码示例。importnumpyasnpimportargparseimport...fromBC1DimportModellDBCConditionfromTOPO1DimportModel1DTOPOfromPumpimportHydroMPMPumpfromSluiceimportHydroMPMSluicefromReservoirLakesimportHydroMPMReservoirLakesfromPLSourceimportPLSourceparser=argparse.ArgumentParser(prog=’prwri-hydrompm1D',usage=’pythonbydrompmild’)parser.addargument("--dm”,type=str)parser.addargument("--river”,type=str)parser.addargument("--inflow”,type=str)parser.addargument("--outflow",type=str)parser.addargument("--parld”,type=str)parser.addargument("--output",type=str)parser.addargument("--plsource”,type=str)parser.addargument("--pumpld",type=str)parser.addargument("--sluiceld”,type=str)parser.addargument("--reservoirld",type=str)parser.addargument("--pumpout”,type=str)parser.addargument("--sluiceout",type=str)parser.addargument((”--reservoirout”,type=str)parser.addargument(”--sts",type=str)ifname=='main';args=parser.parseargs()dmncpath=args.dmrivernepath=args.riverinflownc=args.inflow20SL/T863—2026outflownc=args.outflowparlD=args.parldoutputnepath=args.outputstsncpath=args.stsplsourcencpath=args.plsourcepumppath=args,pumpldsluicepath=args,sluiceldreservoirpath=args.reservoirldpumpoutputncpath=args,pumpoutsluiceoutputnepath=args.sluiceoutreservioroutputncpath=args,reservoiroutprojectspath=os,path.join(os.getewd(),'Projects')ModelName='1DModel'Model=ModellD()Model.runlD(projectspath,ModelName,outputnepath,dmnepath=dmnepath,rivernepath=rivernepath,inflownepath=inflowne,outflownepath=outflowne,controlnepath=par1D,plsourcenepath=plsourcenepath,pumppath=pumppath,sluicepath=sluicepath,reservoirpath=reservoirpath,pumpoutputnepath=pumpoutputnepath,sluiceoutputnepath=sluiceoutputnepath,reservioroutputnepath=reservioroutputnepath,stsncpath=stsncpath)拉取模型运行环境基础镜像,并在拉取的ubuntu基础镜像中安装NetCDF4、gfortran等软件包,配置模型的运行环境,以下为基础容器镜像构建代码示例。dockerrun-td--nameubuntuubuntu:20.04aptinstallpython3-pipaptinstallgfortranpip3installnetedf4-ihttps:///simple镜像封装需先编写Dockerfile,并在Dockerfile文件中定义模型镜像的参数接口,以下为Docker-file文件编写示例。FROMprwrihydrompmepubase:09121WORKDIR/prwri/ModelENVNETCDF=/usr/local/netedf4ENVPATH=$NETCDF/bin:SPATHENVLDLIBRARYPATH=$NETCDF/lib:$LDLIBRARYPATHCOPYBC1D.py/prwri/Model/COPYTOPOID.py/prwri/Model/COPYModel1D.py/prwri/Model/COPYReservoirl.akes.py/prwri/Model/COPYPump.py/prwri/Model/COPYSluice.py/prwri/Model/COPYPLSouree.py/prwri/Model/ENTRYPOINT["python3","/prwri/Model/Model1D.py"]B.4 二维水动力学模型封装示例本示例以动态链接库形式的二维水动力模型为例,介绍二维水动力模型的封装过程,示例代码语言为Python。二维水动力模型镜像运行的主程序用于实现模型输入输出对模型动态链接库的调用和模型运行,以下为主程序代码示例。21SL/T863—2026fromFileHandlerimportFileHandlerfromNetCdfHandlerimportNetCdfHandlerimport...fh=FileHandler()nh=NetCdfHandler()parser=argparse.ArgumentParser(prog="yrihr-yrcc2d",usage="pythonmeshingprogram")parser.addargument("--inflow”,type=str)parser.addargument("--sediment”,type=str)parser.addargument(”--outflow”,type=str)parser.addargument("--sts”,type=str)parser.addargument(”—outfile”,type=str)parser.addargument(”——outstn”,type=str)parser.addargument("--outQZ”,type=str)ifname=='main':logging.info(“Startinig!~~~!”)args=parser.parseargs()inflow=args.inflowsediment=args,sedimentoutflow=args.outflowsts=args.stsoutputfile=args.outfileoutfilestn=args,outstnoutfileQZ=args.outQZdata=fh.yrec2dxiayoucreatetxtfile(inflow,sediment,outflow,sts)#,gridqeallogging.info("Fileconversioncompleted!")hasepath='/yrec2d'varoutputfile=basepath+'/out/'print('start===========')so=ctypes.CDLL(basepath+'/yrecQinHe.so')result=so.maincuda()fh.yrec2dxiayououtputconvert(varoutputfile,outputfile,data,outfilestn)fh.yrec2dxiayououtputconvertQZ(varoutputfile,outfileQZ,data)拉取模型运行环境基础镜像,并在拉取的ubuntu基础镜像中安装NetCDF4软件包,配置模型的运行环境,以下为基础容器镜像构建代码示例。dockerrun-td--nameubuntu12.2.2-devel-ubuntu22.04aptinstallpython3-pippip3installnetedf4-ihttps:///simple镜像封装需先编写Dockerfile
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学2025年情绪调节方法主题班会说课稿
- 服装仓库消防安全建设方案
- 粘结层施工工程方案
- 公路桥梁防腐蚀技术方案
- 蔬菜采后保湿贮存方案
- 2026年医院手术分级管理与术前讨论制度试题
- 2026年资助绩效考核知识竞赛模拟题库
- 2026年项目团队绩效考核题库
- 2026年电力设备维护与检修安全规程题
- 2026年社保基金欺诈冒领追缴工作实务培训题库
- 养老社区2025年定位手环协议
- 2026年医学微生物学复习押题宝典通关考试题库附答案详解【突破训练】
- 2026云南楚雄州武定县事业单位选调37人备考题库及答案详解(真题汇编)
- 高中政治必修+选必核心答题术语(简化版)
- 经典酒店设计案例分析
- (2026春新版)北师大版二年级数学下册全册教学设计
- 22G101 混凝土结构施工图 平面整体表示方法制图规则和构造详图(现浇混凝土框架、剪力墙、梁、板)
- 2026年高考作文备考训练之题目解析及范文:人们常说凡事要“尽我所能”也要“敬我不能”
- P-III曲线水文频率计算电子表格程序
- 大管轮实习记录簿【范本模板】
- 数学七年级下学期1.28 平行线-角度旋转问题
评论
0/150
提交评论