地震应急基础数据检查系统的设计与实现[1]
2016-10-13杨斌徐博高翔
杨 斌 徐 博 高 翔
地震应急基础数据检查系统的设计与实现[1]
杨 斌1,2)徐 博1,2)高 翔1,2)
1)山西省地震局,太原 030021 2)太原大陆裂谷动力学国家野外科学观测研究站,太原 030025
地震应急基础数据库是震后灾害快速评估及指挥决策的基础,数据的质量直接影响着指挥决策的准确性、实用性。由于数据库包含数据内容众多,来源多样,因此数据库更新时,对数据进行检查必不可少。本文以地震应急基础数据库为目标,研究了数据检查内容及检查方法,对数据库检查系统的整体架构、检查模块等进行了研究设计,并将之实现验证。
地震 数据检查 系统设计
前言
地震发生时地震应急指挥技术系统在地震应急基础数据库的支持下,可以迅速判断地震的规模、影响范围、经济损失、人员伤亡等情况,并据此提出一系列科学的救灾方案和调度方案,协助指挥人员实施各种地震救灾行为,实现地震应急信息快速传递、高效处理,提高应急救灾指挥与决策的技术水平,最大限度地减少震时的混乱和人员伤亡。地震应急基础数据库是整个系统的核心与关键,数据的质量直接影响着整个数据库的性能。目前,地震应急基础数据库包含79类数据,其中空间数据52项,属性数据27项。整个数据库以地市、区县、乡镇等行政区划为基础,其余空间数据和属性数据与之对应关联。空间数据的关联主要通过经纬度的空间对应,属性数据的关联则主要通过编码。由于系统计算的需要,空间数据与空间数据、空间数据与属性数据、属性数据与属性数据之间有着众多的关联关系。
每年数据更新时,数据编码的关联性,属性数据的准确性、完整性,空间数据拓扑关系的正确性,空间数据逻辑一致性等直接影响着系统产出的结果,都是数据检查的重点。我国从20世纪80年代就开始了数据质量控制理论和标准化的研究工作,但大量的研究则是在90年代中后期开展,中国科学院测量与地球物理研究所、武汉大学测绘遥感信息工程国家重点实验室等机构都在进行这方面的研究工作。目前的国内外各种研究机构以及地理信息企业在数据检查手段上,基本采用在地理信息软件平台上的自主二次开发,以实现在不同软件平台上的基础地理数据检查。由于研究开发实力的参差不齐,各单位自主开发实现的检查模块质量上也存在差距。广泛投入使用的基础地理数据检查模块产品还很缺乏。现在的一些研究情况基本上都是针对各个城市的特殊数据而定制的检查功能模块。本文将通过研究数据检查应遵循的原则及常用数据检查方法,针对地震应急基础数据库,研究数据检查规则方法及检查内容,设计并实现地震应急基础数据库检查系统。
1 数据检查原则与方法
1.1 数据检查原则
(1)方便性
数据检查是一项繁琐细致的工作,存在大量的重复性劳动,数据检查软件首要原则就是方便性,软件应通过研究数据检查的规则,进行标准化自动检查,减少人工干预,降低人为操作可能带来的错误率,使数据检查更为高效化、自动化。
(2)实用性
数据检查还应体现实用性,检查过程应将数据的错误尽可能的显示、输出,方便数据处理人员找到及修改错误数据。同时应方便数据处理人员对数据进行标注、保存、导出修改后的正确数据等。
(3)合理性
合理性也是数据检查应遵循的原则,数据检查应做到合理、有序。检查规则应全面合理,不能出现缺漏或自相矛盾的地方,同时检查可分层或分类进行,每一类检查对应一个检查内容,使得数据处理人员清晰明白检查思路及检查步骤。
1.2 检查方法
1.2.1 模板匹配法
模板匹配法可用于空间数据与属性数据的属性检查,每个数据的属性项由哪些项组成,每一项的定义都可以设计成标准控制模板规则表(范大昭,2001)。在本软件数据检查过程中,以地震应急基础数据库规范为标准文件制作标准模板规则表,将待检查数据的属性数据与标准模板规则表匹配,自动检查不符合标准的数据,图1表示的即为模板规则匹配法,图2为模板规则示例。
图2 模板规则表示例
Fig. 2 Representative cases of the template rule
1.2.2 用户自定义规则
空间数据之间的关系包含了相交、重叠、包含等。这些关系不但存在于同一点、线、面图层中,还存在于不同点、线、面图层中。例如数据检查过程中,既要检查居民地要素之间不能相交、重叠等,也要检查居民地图层与水系图层之间不能有相交、重叠等。除了这些检查内容,还有一些用户特定的检查内容,可以通过用户自定义规则来进行检查。例如某一行政区内的地震监测台站,其经纬度范围一般不会超过行政区划范围;某一区域内的高层建筑物面积不能超过房屋总面积等。
本软件对空间数据及属性数据的数据编码检查、空间数据的坐标、投影进行检查将主要利用用户自定义规则进行。
1.2.3 数据交叉检查
有些数据错误单纯的检查某一单一数据表是无法发现的,需要将多张数据表进行叠加、交叉分析才能发现。例如,由于人工录入或其他原因,属性数据中经纬度所示位置可能和其属性中标注的地名不符,这种错误单纯检查属性表是无法发现的,需通过叠加行政区划空间数据,交叉分析经纬度所在位置与属性项标注位置是否一致;再如房屋属性表中包含了各类型房屋面积及房屋总面积,单纯检查房屋属性表很难确定这些数字是否正确,通过将房屋属性表与人口表进行交叉分析可得到行政区划内的人均住宅面积,使用者可对人均住宅面积制定合理范围,超出范围后,计算机自动报警显示,通过人机交互最终确定数据是否正确。
本软件对数据逻辑一致性检查、数据合理性部分检查将主要利用数据交叉检查法进行。
1.2.4 人机交互检查
由于数据的不确定性,在目前情况下,有时还需要将数据进行分析、计算,将结果显示在计算机上,通过人工判断其正确与否。例如可对数据进行统计分析,找出其中远远超过或低于平均值的数据,对其进行判断;或者将新采集的数据与影像数据进行叠加显示,从而检查新数据的采集精度。
本软件对数据合理性部分检查将主要利用人机交互检查法进行。
2 系统设计与实现
地震应急基础数据库按照数据格式分,主要包含空间数据与属性数据两大类。整个数据库以地市、区县、乡镇等行政区划空间数据为基础,其余空间数据和属性数据通过数据编码与之对应关联。因此数据的编码正确与否是数据检查的首要任务。对于数据库,数据的合理性也十分重要。数据库中的数据大多带有自身的数据值,在数据收集时,某些专业数据的记录方式和我们日常习惯不一样,如果不经检查,直接倒入数据库,也会对系统的计算产出产生影响。所以通过对数据值本身的合理性检查,可以初步检验数据的合理性。除数据编码及数据合理性外,空间数据坐标是否符合规范要求、空间数据拓扑是否正确、数据的完整性、数据的逻辑一致性都是直接影响地震应急基础数据库使用的内容,也是我们检查软件设计的方向。
2.1 系统整体设计
根据系统目标及检查内容,地震应急基础数据检查系统的总体结构如图3所示。
(1)数据层。数据层由关系数据库和基础数据库组成,其中关系数据库用于存储数据检查的日志、检查规则配置文件及系统文件。基础数据库用于存储被检查的空间数据及属性数据。
(2)业务层。业务层包含了系统的各个检查功能模块,用以对被查数据的空间投影、空间拓扑、数据完整性、编码关联、编码一致、数据合理性、逻辑一致性等进行检查。
(3)表现层。即系统主程序界面,是与用户交互的主界面,承载的系统的主要功能及数据加载、数据导出、日志查询、版本显示等功能。
2.2 检查模块设计
检查模块是整个系统的核心,其检查效率及检查结果正确性的高低,直接影响着整个系统的性能。整个系统的检查模块共有六个,如图3业务层所示,各检查模块的检查内容如下:
(1)数据编码检查
整个数据库以地市、区县、乡镇等行政区划为基础,其余空间数据和属性数据与之对应关联。空间数据的关联主要通过经纬度的空间对应,属性数据的关联则主要通过编码。空间数据与属性数据、属性数据与属性数据之间的关联关系主要依靠数据编码实现,因此检查数据关联性就是检查数据编码之间的关联性。地震应急基础数据库的数据编码由14位数字组成,在数据库中的数据类型为字符型(char),其代码定义如图4所示。
上图所示代码中,1-6位表示省、市、县(市、区),采用《中华人民共和国行政区划代码(GB/T 2260-1995)》(中国国家标准化管理委员会,1995)中规定的代码;7-9位表示乡、镇或街道办事处代码,采用《县以下行政区划代码编制规则(GB 10114-88)》(中国国家标准化管理委员会,1989)的编码方法(001-099表示街道办事处,100-199表示镇,200-399表示乡);10-12位表示行政村、街区(国家统计局行政村、街区代码规则)或重点目标代码(重点目标代码本身占前两位,第三位补0),13—14位表示自然村或重点目标的序号(聂高众等,2002)。
数据库以地市、区县、乡镇等行政区划为基础,其余空间数据和属性数据与之对应关联,因此,行政区代码的准确性就至关重要。在行政区代码中,也存在关联。区县代码需要和地市代码关联、乡镇代码需要和区县代码关联、行政村代码需要和乡镇代码关联(杨斌等,2011)。数据关联检查时,需先检查行政区代码,保证行政区代码关联正确。数据代码关联关系如图5所示。
(2)数据合理性检查
对于数据库,数据的合理性也十分重要。坏数会大大破坏整个数据库的稳定性与可靠性,对整个应用系统的产出也会产生不利影响,降低系统产出结果的正确性。根据前文介绍的数据检查方法,数据合理性检查主要通过以下三个面进行:
①模板规则检查数据项本身的合理性
数据库中,每一类数据所包含的数据项,每一个数据项的数据类型、数据长度等都不相同,通过研究数据规范,定义模板规则,可实现自动检查所有数据的类型是否正确,数据长度是否符合规定等。
②用户自定义检查数据合理性
数据库中的数据大多带有自身的数据值,例如人口数、房屋面积、最高气温等。在数据收集时,某些专业数据的记录方式和我们日常习惯不一样,如果不经检查,直接倒入数据库,也会对系统的计算产出产生影响。所以通过用户自定义数据值的合理范围(如图6所示),可以初步检验数据的合理性。
③数据交叉检查数据合理性
通过数据之间的交叉计算,可进一步检验数据的合理性。例如数据库中人口数据可通过统计年鉴等渠道获得,数据值较为准确,通过以下公式:
房屋总面积/行政区划内总人口=行政区划内人均住宅面积
得出人均住宅面积,可对房屋数据进行一定程度的检验。
(3)逻辑一致性检查
逻辑一致性主要是检查空间数据在地理数据关系上的一致性,数据定义的统一性。即在同一个数据库内,空间数据的数据定义应该保持一致。例如,部分收集到的表格数据在依据其标识的经纬度进行空间化后,会出现所在空间位置与属性中标识不一致的情况,通过逻辑一致性检查,可发现此类错误。
(4)空间投影检查
此模块主要检查待查空间数据的空间投影是否正确。地震应急基础数据库收集到的数据投影有北京54、西安80、WGS84、克拉索夫斯基等多种地图投影,要想保证整个数据库的正确性,需对空间数据的投影进行检查纠正。尤其是公里格网人口、公里格网房屋等格网数据,不同的空间投影,会造成格网数据与其他数据叠加运算时,产生极大误差,直接影响后续业务系统的正常运行。
(5)空间拓扑检查
拓扑检查是空间数据检查的重点,空间数据中行政区划等面域是否闭合,道路等线性数据连接是否正确,空间数据是否正确的表达了目标之间的领接、包含等关系。
(6)数据完整性检查
数据完整性检查主要检查空间数据及属性数据的属性项是否完整,是否存在缺项,或每一项内是否有空缺数据等。
3 应用示例与结果分析
系统以Arcengine平台和C#语言为基础,同时结合数据库日常运行维护实践经验,实现了地震应急基础数据库的数据编码检查、数据合理性检查、错误提示、数据输出等功能,如图7所示。
用户界面上方是菜单栏,可对检查数据进行编码检查、合理性检查、数据提取、数据合并等操作。用户界面左下方是数据配置区域,主要进行待检查数据、检查报告、检查结果数据的配置;用户界面右下方是检查过程描述区域,用户可在此查看检查的详细过程。数据检查过程示意如图8所示。
软件对数据的检查结果主要是数据检查报告及检查后输出的检查数据库两个成果,示意图分见图9、图10。检查报告以excel表格的形式,记录了被检查数据的数据名称、检查类型、错误类型、错误数目等信息。检查后输出的检查数据库为mdb数据,并在数据库的每个数据表后,新增ErrorType字段记录错误类型,方便数据维护人员查找修改。
图9 数据检查报告示意图
Fig. 9 Data Inspection report
通过软件的实际使用发现,软件完成了系统设计的目标,实现了对地震应急基础数据库的数据编码、空间数据坐标、数据合理性等的检查。但由于影响数据质量因素是多阶段、多方面的,从数据获取到数据处理到数据输出都有数据误差的产生和扩散,本软件只是结合地震应急基础数据库规范,对数据编码及数据合理性的部分内容检查进行了探讨。其中数据交叉检查目前只涉及了房屋、人口等较少的数据,今后需要不断扩展数据交叉检查范围,提升数据相互验证能力。
4 结语
数据质量检查是一项系统工程,检查的结果直接影响着数据库质量,地震应急基础数据库又是地震应急指挥技术系统的核心,数据库的质量直接影响着震后灾害快速评估与指挥决策的准确性、可用性。目前地震应急基础数据库含79类数据,数据来源的多样性以及数据处理标准的不规范,使得数据检查不能忽略。本文研究探讨了数据检查的原则及方法,结合地震应急基础数据库,设计了数据检查软件的系统目标、系统架构及检查模块。并通过制定标准模板规则、用户自定义规则等,使系统的扩展性、灵活性增强,在实际应用中取得了较好效果,提高了地震应急基础数据库质量,为地震应急指挥技术系统产出质量的提升,打下了坚实的基础。
范大昭,2001.数字地图矢量数据检查的研究与实践.硕士论文,中国人民解放军信息工程大学测绘学院,28.
聂高众,陈建英,李志强等,2002.地震应急基础数据库建设.地震,22(3):105—112.
杨斌,程紫燕,宁亚灵,2011.基于SQL语言的地震应急基础数据库数据关联性一致性及可靠性检查.山西地震,36—39.
中国国家标准化管理委员会,1995.《中华人民共和国行政区划代码》(GB/T 2260-1995)北京:中国标准出版社
中国国家标准化管理委员会,1989.《县以下行政区划代码编制规则》(GB 10114-88)北京:中国标准出版社.
Design and Implementation of Basic Data Checking System of Earthquake Emergency
Yang Bin1, 2), Xu Bo1, 2)and Gao Xiang1, 2)
1) Earthquake Administration of Shanxi Province, Taiyuan 030021, China 2) Taiyuan Continental Rift Dynamics National Field Scientific Observation and Research Station, Taiyuan 030025, China
Earthquake database is the basis for rapid assessment and command decision after hazardous earthquakes, and the quality of the data command decision directly affects the accuracy and practicality. Since the database contains a number of data contents and diverse sources, the data checking is essential when the database is updated. In this paper, we studied the data checking contents and methods based on the database of earthquake emergency response, including the overall structure and module of the database, validation and implementation.
Earthquake; Data check; System design
[1] 基金项目 地震科技星火计划项目(XH14009Y)、地震行业科研专项(201208018)、山西省基础研究计划项目(2012021017)和地震应急青年重点任务(CEA_EDEM-201403)共同资助
[收稿日期]2015-03-20
[作者简介]杨斌,男,生于1981年。硕士,工程师。主要从事地震应急技术的研究。E-mail:ybsuning@163.com。
杨斌,徐博,高翔,2016.地震应急基础数据检查系统的设计与实现.震灾防御技术,11(1):144—152.
doi:10.11899/zzfy20160116