一种城市基础设施安全监测数据报表的自动生成方法
2020-12-28滕德贵
李 超 滕德贵 胡 波
(1. 重庆市勘测院, 重庆 401121; 2. 重庆市智能感知大数据产业技术协同创新中心, 重庆 401121)
0 引言
随着城市基础设施建设加速,在自动化安全监测系统逐渐普及的背景下,多数建设工程的安全监测项目数据和成果在进行处理时,需要生成各类数据成果报表[1-2]。在对这些数据进行报表生成时,格式要求差异较大,多数行业用户常用方式是使用Office办公软件进行数据组织和拖拽报表,不能满足不同用户对海量监测数据的智能管理和对报表样式自定义配置的个性化要求,报表生成的自动化程度低、出错概率较高[3-4],少部分监测系统软件采用模板定制及web自动生成的报表[5-7],针对性强,未考虑通用性及兼容性,适用面窄,难以推广使用,国内外针对通用监测报表的研究较少。
本文研究实现了一种城市基础设施安全监测数据的报表自动生成方法,以解决现有技术中存在的在处理安全监测数据生成报表时,生成报表不能智能化的满足不同用户对海量监测数据的入库管理和对报表样式进行自定义配置的个性化要求,报表生成的自动化程度低、可靠性低的技术问题。
1 需求分析
一套完整的监测数据成果报表解决方案包括数据入库、数据整理、变形计算、报表组织输出等步骤[9-11],为实现灵活度、可靠性、自动化程度高的安全监测通用智能报表生成系统与方法,本文结合城市基础设施安全监测专业相关标准与技术规范,广泛且深入地调研了国内监测行业对数据报表的共性和个性化需求。
(1)数据入库要灵活高效:基础性的原始监测数据具有多源和异构的特征,例如传统人工监测数据、手机App采集数据、自动化传感器采集数据等,针对安全监测数据的入库需要实现标准化处理及批量化入库;
(2)数据预处理要智能化:原始监测数据不可避免会存在粗差,智能化的进行数据预处理,需对数据进行粗差自动探测、清洗和实时计算预警;
(3)报表数据的分类组织要灵活:不同建设单位或不同类型的监测项目,甚至同一个项目中,相同类型的监测输出的报表分类不尽相同,例如几何水准监测点,在不同场景下可分别对应拱顶沉降、竖向位移、道床下沉等分类名称,需要根据项目要求灵活组织;
(4)报表支持的类型要全面:一般来说,报表类型包括原始数据报表、监测日报、监测期报以及在特殊时段的自定义报表,用户在使用时要能方便地选择报表时段和报表类型;
(5)监测维度和特征值的输出要支持配置:一种监测类型通常会有多个监测维度,不同的监测维度需支持选择性输出;同一监测维度需支持初始值、本次测值、本次变化量、累计变化量、变化速率、控制阈值等特征值的选择性输出;
(6)报表风格样式要灵活可定制:不同地域或不同行业用户对报表成果格式的要求不尽相同,需要有选择性地输出监测统计分析表、监测详细数据表、监测过程曲线图和对比分析图表等;在细节方面对数据取位、时间格式、文本字体、曲线类型也有要求,这就需要能够提供灵活多样的报表形式定制功能。
2 自动化报表方法设计实现
2.1 数据标准化入库
基础设施建设施工及运营过程中的采集的各种安全监测数据,例如位移、应力、振动、环境变量等,可通过不同方式获取,如图1所示,包括传统人工测量、手机APP半自动化测量、智能传感器的全自动化监测和第三方异构数据库的同步抓取等;而对于智能传感器的自动化监测方式,同一数据类型也会因为用到的设备厂商或型号不一样,使得监测数据具有不同的格式[8]。设计各种监测类型的标准数据表,利用ICE、Mqtt等通信协议,通过Excel/Xml/Json/Http短报文等形式,将多源异构的安全监测数据标准化处理,并批量化并行入库。表1是平面位移监测的标准数据表结构设计,设计完成后提交数据库引擎生成相应数据库表,即可进一步接收各种来源的原始监测数据,表结构可根据业务需要动态调整设计并更新。
数据在入库的同时对数据的基本属性、测点名称、监测时间、新旧点名冲突、粗差等进行校验预处理,并根据差分运算规则进行自动计算,自动计算的方式支持实时或定时触发,计算可得到本次变形量、累计变形量、变形速率等数据形成平面计算成果数据管理表。
表1 平面位移监测的标准数据表结构设计
2.2 数据分类组织
对于不同用户,报表输出的数据维度不确定,数据项对应的名称也不固定。为实现报表的灵活分类,设计可配置的数据维度管理表,用来批处理分类查询标准化处理后入库的安全监测数据,智能生成监测结果分类数据表,完成安全监测数据的多层级分组。
如图2所示,以平面位移监测数据分类举例说明:先定义平面位移监测的数据维度,具体有5个维度,其中“X方向位移、Y方向位移、Z方向位移”是用户需要导出的维度,通过在点位信息表中将各维度的自定义描述信息“基坑坑顶X位移、基坑坑顶Y位移、基坑坑顶竖向位移”按点配好后批量导入并更新到数据维度管理表,再通过选择web界面的工点下拉菜单和时间控件,即可查询出以自定义分类命名的三张数据表,如图4所示,数据记录按点名排序,完成安全监测数据的自定义分类组织。用户还可根据需要设置“数据取位”和“是否导出”等选项。
2.3 报表模板的双向配置
针对不同用户的个性化报表要求,首先进行报表模板的结构化解析,通过多类别的智能书签对报表模板中所包含标准组件进行编辑处理;其次结合待生成报表的内容和风格,设计报表模板的参数配置表,在项目数据库中对文字、图表内容及格式进行参数详细定制,通过模板配置与数据库联动配置的双向定制化,实现不同格式的报表成果输出。
(1)基于书签的报表模板的结构化解析
首先结合行业多个用户提供的报表成果,梳理具有较好普适性的标准模板。根据报表所包含的内容,分成各个标准定义的模块,例如封面、目录、监测概况、综述分析、数据表、曲线可视表达、数字签章等模块,并通过Word书签编辑器对这些标准模块增加书签,模板结构的组成支持调整与拓展。通过规范命名的书签形式,可对后续内容的自动编辑进行定位。比如:对“综述分析”模块部分,新增书签“tag_0_综述分析”,后续如需整体填充或修改“综述分析”的内容,自动定位到该书签执行相关操作如图3所示。
同时可进行颗粒度更精细的文字类、表格类、图形类详细条目属性的模板解析。例如:对于文字条目属性,报表的封面构件包含:报表编号、项目名称、工点名称、报告日期、报表出具单位等文字类属性,针对每个属性点,新增相应的文字类书签,如:新增书签“tag_1_报告日期”、“tag_1_项目名称”等。上述条目属性书签的数量不受限制,支持嵌套,例如标准组件类书签中可含有文字类书签,只需保证条目属性书签的唯一性即可。
(2)基于数据库的双向联动配置
上述包含各类书签的报表模板配置完成后,通过与数据库联动配置的双向定制,设计报表模板的参数配置表,对标准组件、文字、表格、图形的内容及风格进行参数详细定制,参数主要包括以下方面:报表类型、数据块名称、属性名称、书签标识、操作参数、内容参数、风格参数,等等。在配置好这些参数后,根据字段“书签标识”与模板中的书签对应关联,从而形成模板设计与数据库配置的双向联动机制。
在配置模板文字类详细条目的内容与风格时,以某用户监测日报封面的合同编号的处理为例,如表2所示。
表2 某用户监测日报封面的参数配置示例
在报表生成并输出时,程序自动搜索和定位封面书签“tag_1_合同编号”,并执行合同编号内容“2018-KC-0272”替换操作,同时赋予“黑体、四号、加粗”的字体风格,形成符合参数配置表的文字内容与风格。
在配置模板表格类详细条目的内容与风格时,首先定义数据表的字段构成与排序,再设置图表的搭配表达方式。例如:针对“深层水平位移”的数据表格,定义其字段组成及排序为“深度、初始测值、本次测值、上次累计值、本次累计值、本次变化、变化速率、地质土层”,设置其图表搭配方式为“图形表格嵌套”,后续程序会根据上述参数自动预览生成相应数据表和图形并进行填充。
(3)不同风格的监测报表在线输出
基于上述双向配置的设计,针对不同的用户的个性化需求,只需针对模板进行简要梳理配置,即可实现成果报告的快速在线生产输出。其中最主要的差异之处体现在报告的组成结构、图表的配合方式和曲线输出位置等。
3 结束语
本文对多源异构数据的标准化入库、数据自定义分类组织、报表模板的双向配置三方面进行研究,基本实现了满足不同用户的安全监测数据报表的自动生成方法。实践表明,通过将多源异构的安全监测数据标准化处理,采用监测维度管理表实现数据灵活分类的机制,再针对不同的用户单位的监测报告模板进行Word书签和报表参数配置,就能实现报表的自动敏捷生成,兼容性好,效率较高,出错概率低,为解决生产应用中报表自动化批量输出提供了新的技术思路,后期还将针对提升模板配置的精细化程度和大数据量项目报表的输出效率做进一步研究。