APP下载

基于XSLT的地震应急成果生成应用研究

2019-04-01梁延龙李璇琼

防灾减灾学报 2019年1期
关键词:震区灾情文档

梁延龙,李璇琼

(四川建筑职业技术学院,四川 德阳 618000)

0 引言

中国是地震多发国家,随着社会经济的发展,地震造成的经济损失和人员伤亡都呈上升趋势。因此,地震发生后快速获取准确的灾情,采取有效的救援工作,是减轻灾害的最有效方法之一[1]。地震应急成果是指破坏性地震发生后,快速进行震情、灾情的评估与处理,提供震中位置、灾区范围、人员伤亡、经济损失、次生危险等一系列评估结果,为指挥部成员提出及时的“提醒”和相关的辅助信息,方便做出决策救灾方案、下达实施指令。

针对地震应急成果的快速生成,国内学者也做了大量的研究。例如分级评估法[2]将地震灾害损失分为4个级别进行评估,并提出了评估时效性问题;基于人口统计方法[3]进行区域震害灾情定性快速评估;利用GIS技术建立震害评估模式[4],快速评估地震灾情。

本文主要从地震应急成果生成效率方面进行讨论,地震应急成果的内容来源于一系列的地震应急计算模型,如何快速进行地震应急模型计算,并把模型计算结果转换成地震应急成果所需的内容一直是地震应急领域研究的主要方向,XLST技术在模型结果转换上具有快速、灵活及可定制等特性。本文详细介绍了XSLT的概念及其工作原理,并对XSLT在地震应急成果生成中的应用进行了研究。

1 XSLT概述及工作原理

1.1 XSLT概述

XSLT(Extensible Stylesheet Language Transformations,可扩展样式表转换语言) 是由W3C组织于1999年11月16日发布的一个标准,负责XML文档的转换[5]。它详细规定了转换所需要的词汇表和词汇表中的词汇对应的语义。由于XSLT所具有的优异特性,它越来越多地使用在不同XML文档格式转换的场合中,从一种逻辑结构的XML向另一种逻辑结构的XML转换,或是转换为可浏览的HTML文档等。XSLT还可以向输出文件中增加全新的元素,或去掉一些元素。它可以重新安排这些元素并对元素进行分类,测试并确定显示那些元素等[6]。

使用 XSLT 有很多优点[7]:

(1) 功能强大。XSLT提供了如条件判断、排序、表达式求值等手段来实现各种变换的要求;

(2) XSLT符合XML语法,可以利用XML各种良好的可扩展性和工具;

(3) XSLT是W3C制定的标准,通用性有保证,使用者不必考虑工作运行的平台或是编程语言的不兼容性等。

1.2 XSLT工作原理

XSLT本质上是一种XML转换语言,可以把一个或多个XML文档转换成其它XML文档。XSLT工作流程如图1所示,核心流程是使用XSLT处理器处理两个基于XML规范的输入树,并生成一个最终目标树。

图1 XSLT工作流程Fig.1 XSLT workflow

XSLT把源XML文档看做源树,把它转换为一个不同结构的目标树。源树与目标树是分离的,可以通过过滤和重新排序源树、增加任意的结构,构造出和源树结构截然不同的目标树。XSLT处理器的工作就是用XSLT模板把XML来源文件转换成另一种XML输出文件。XSLT处理器先启动XML分析器去读取来源XML文件,XML分析器再将获取的相关信息回报给XSLT处理器,XSLT处理器用XSLT模板把XML来源文件转换成另一种XML输出文件。XSLT在地震应急成果生成的应用中,主要工作是编写适用于地震应急计算模型的XSLT模板。XSLT模板的内容基于地震应急计算模型输入参数所描述的转换规则,并定义用于转换的指令元素,用这些指令书写的文档称作样式表。XSLT模板编写完成后,可通过XSLT处理器把源XML文档转换为地震应急计算模型所需的目标XML文档。

2 基于XSLT地震应急评估与现行地震应急评估方法对比

基于XSLT地震应急评估方法和现行地震应急评估方法有共同点也有区别。共同点是两种方法的模型输入数据来源都是地震模型计算结果;区别在于两种方法获取模型输入数据的方式不同,前者是通过XLST模板快速提取地震模型结果生成模型输入XML文件,后者是直接建立数据库链接读取地震模型结果生成模型输入XML文件。下面从计算效率和灵活性方面对两种方法进行对比。

(1)计算效率:地震应急预评估有多个模型计算组成,如图 2所示。地震模型输入XML文件生成的快慢会直接影响到整个地震应急预评估的计算效率,例如建筑物破坏计算模型的输入XML文件需要使用区县地震影响范围模型的结果,一般区县地震影响范围的结果数据都在100条以上,使用现行地震应急评估方法获取此数据效率比较低,而XSLT模板可以快速获取此数据并生成模型输入XML文件。根据系统演练测试结果,使用现行地震应急评估方法计算整个地震应急预评估流程,需要大约10分钟时间;而使用基于XSLT地震应急评估方法计算此流程,只需要大约4分钟时间。

图2 地震应急预评估流程Fig.2 Earthquake emergency pre-assessment process

(2) 灵活性:现行地震应急评估方法一般是把读取地震模型结果的方法写入到了地震模型里,如果数据来源地震模型的结构有变动,就需要设计此模型的程序员亲自进行修改,灵活性不高。基于XSLT地震应急评估方法使用XSLT模板来读取地震模型结果,XSLT模板一般以XSL文件的格式存储于本地或存储到数据库表,如果数据来源有变动,可以由非程序设计人员对XSLT模板进行修改。相对来说,基于XSLT地震应急评估方法的灵活性好,可操作性和可配置性高。

3 XSLT在地震应急成果生成中的应用

地震应急预评估流程(图2) 中的模型计算大部分都使用了XSLT模板,下面在其中挑选了三个有代表性的XSLT地震模型应用进行了分析,主要分析XLST在地震模型应用中的转换模板和目标XML文件。主要包括地震参数提取应用、死亡人数合计应用和震区重要目标判定模型应用。

3.1 XSLT在地震参数提取中的应用

地震参数提取是从其他模型结果中获取地震三要素信息(发震时刻、震级、震中位置经纬度),可以通过XSLT直接获取其他模型的计算结果,使用XSLT中的过滤指令转换成模型所需的目标XML文档(XSLT转换图和转换模板如图3和图4所示),地震参数可以应用到其他地震计算模型和灾情文档生成中。地震参数提取源XML和目标XML文档内容如图 5和图6所示。

图3 地震参数提取XSLT转换Fig.3 EarthquakeparameterextractionofXSLTtransformation

图4 地震参数提取XSLT转换模板Fig.4 Earthquake parameters extract the XSLT transformation template

图5 地震参数提取源XML文档Fig.5 Earthquake parameters extract the source XML document

图6 地震参数提取目标XML文档Fig.6 Earthquake parameters extract the target XML document

3.2 XSLT在死亡人数合计中的应用

死亡人数合计,需要把死亡人数计算模型的输入结果XML作为源XML文档,可以通过XSLT中的sum函数获取源XML死亡人数节点的合计(XSLT转换图和转换模板如图 7和图8所示),输入死亡人数合计数量,死亡人数合计数量可用于灾情文档生成。

图7 死亡人数合计XSLT转换Fig.7 The death toll adds up to the XSLT transformation

图8 死亡人数合计XSLT转换模板Fig.8 The death toll adds up to the XSLT transformation template

3.3 XSLT在震区重要目标判定模型中的应用

由于灾情文档生成中需要获取震区重要目标判定结果列表,但是震区重要目标判定模型输入结果无法直接满足灾情文档生成所需要的格式,所以需要把震区重要目标判定模型的输入结果作为源XML文档,通过XSLT中的定位和增加指令(XSLT转换图和转换模板如图9和图10所示),编写XSLT模板以获得满足格式的目标XML文档。

图9 震区重要目标判定模型XSLT转换Fig.9 Earthquake region important objective decision model XSLT transformation

图10 震区重要目标判定模型XSLT转换模板Fig.10 Earthquake region important objective decision model XSLT transformation template

4 结论

借助XSLT技术可以快速的组织地震应急模型所需的数据,从不同的来源XML文档规范为模型所需的XML结构化文档,提高了地震应急模型的计算效率,从而加快了地震应急成果的生成速度。

本文详细描述了XSLT的概念及其工作原理,并结合多个应用XSLT技术的地震应急计算模型,分别阐述了XSLT在地震参数提取、死亡人数合计、震区重要目标判定模型、震区泥石流危险等级判断模型等地震应急模型中的应用,说明XSLT在地震应急成果生成中具有方便、快捷、准确、实用的特点。

猜你喜欢

震区灾情文档
2022年6月全球灾情
浅谈Matlab与Word文档的应用接口
流浪卫星
2021年12月全球灾情
有人一声不吭向你扔了个文档
汶川地震 十年十人
基于RI码计算的Word复制文档鉴别
接连地震
灾情再显城市短板
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat