高 洋 闵照旭 颜其中(云南省地震局,昆明 650224)
地震监测数据三维交互式实时显示系统的开发1
高洋闵照旭颜其中
(云南省地震局,昆明 650224)
高洋,闵照旭,颜其中,2016.地震监测数据三维交互式实时显示系统开发.震灾防御技术,11(2):412—419. doi:10.11899/zzfy20160225
随着中国地震局“十五”网络项目的完成,云南省测震台网的日常地震监测工作都基于网络数据库系统,而现有的数据显示系统未与数据库系统有效结合。本文结合“十五”中国数字地震观测网络项目数据库系统,运用三维数据可视化、交互式图形界面技术开发了可实时显示三维地震监测数据信息的软件系统,改变了原有显示系统实时性、可操作性差和无法显示地震数据三维空间信息及时空变化关系的状况。
地震监测数据三维数据可视化交互式图形界面
在科学研究领域中,对研究对象进行实际观测、科学实验以及理论计算等科研工作都将产生大量的科学数据。如何有效地使用和解释这些观测数据和处理结果已成为科学工作者所关注的热点。通过直观的视觉方式描述和认识科学数据是研究人员易于接受的数据解释手段(唐泽圣等,1999),因此将科学观测数据和处理结果以可视化方式呈现的各种数据显示系统应运而生。
地震监测作为一项兼具观测性和理论性的工作,在日常监测工作中将产生大量的观测和处理数据,地震监测工作者和科研人员同样需要合适的数据显示系统,对观测和计算得到的各类地震数据进行显示和解释分析。就云南省测震台网的情况而言,一直以来所使用的数据显示系统多是以二维静态的图形图像来描述地震监测数据的空间位置和属性。然而,地震监测工作产出的观测和计算数据多为三维离散数据,现有数据显示系统的二维显示解释方式无法描述地震监测数据的三维空间信息,存在数据显示解释效率低、无法充分利用三维数据信息、显示视野受限制、显示内容单一、交互操作性差等问题(高级等,2008)。随着“十五”中国数字地震观测网络项目的完成,云南省测震台网的日常地震监测工作都基于网络系统,地震监测数据信息的传输、处理以及存储方式较以往有了较大改变,台网地震数据信息的管理维护都是以“十五”中国数字地震观测网络项目网络数据库为基础。现有的数据显示系统尚无法与数据库系统有效结合,测震台网的地震速报定位结果和自动定位程序定位结果等地震监测数据缺乏合适的实时显示工具。
综合以上因素,开发能够实现数据三维可视化功能,具有实时性及可操作性强的地震监测数据显示系统成为当前云南省地震监测工作的迫切需求。我国在地学数据三维可视化显示系统软件研制方面尚属于起步阶段(颜辉武等,2005)。本文结合云南省测震台网监测产出数据的特点,对地球科学数据三维可视化交互理论、技术以及实现方式进行了研究,并在此基础上利用TCL/TK脚本语言、C++程序设计语言与Kitware Inc.公司的三维可视化工具包VTK (The Visualization Toolkit),在地震监测数据三维可视化显示系统软件研制方面做出了尝试,开发了与“十五”网络数据库结合的能够三维显示地震监测数据的实时交互式显示系统。
固体地球物理三维数据模型和可视化应用技术是21世纪具有开拓性的前沿研究领域(戴广宏,1997)。地震监测研究工作由目前的监测、描述评估向未来的模型预报和决策支持系统发展,即对以数据为主的资料和信息进行合成和分析,进而给出三维可视的图形图像,以供分析和决策(高洋等,2004)。为紧跟国际科学前沿,结合测震台网实际工作需求,着眼未来发展趋势,笔者开始了地震监测数据三维交互式实时显示系统的开发工作。显示系统的开发内容主要包括了基本数据信息资料准备、系统功能分析和开发设计以及显示系统程序开发及功能实现几个方面。
首先收集整理了显示系统所使用的地震监测数据,如台站参数、台网监测速报控制线参数、台网监测范围内地形参数、断层参数以及行政区划界线参数等云南省测震台网基本监测数据信息。根据开发工具和功能需求,对包括地震定位结果在内的地震监测数据资料的格式、范围进行处理,对数据的完整性和准确性进行验证。
然后对显示系统进行功能分析和开发设计。显示系统主要包括实现显示系统与网络数据库系统的结合、实时数据的三维静态和动态显示、图像结果输出以及显示系统交互式操作等基本功能。显示系统设计目标是满足现阶段台网缺少地震定位结果实时显示软件的需求,增加地震定位结果的显示度,为云南省地震监测、预报及现场应急指挥工作提供直观的三维可视化显示工具。
最后通过程序开发工作实现基本数据信息的三维交互显示功能,增加显示系统的显示信息;完成显示系统与数据库的数据接口程序,实现显示系统与“十五”测震项目数据库系统的结合,能够对数据库数据进行实时读取;实现地震定位结果三维显示功能,通过多种方式表现地震定位结果的各种属性;实现序列地震定位结果动态三维显示功能,通过动态演示功能表现序列地震时空关系变化;实现显示系统图像结果实时输出功能;开发完善可交互式操作的图形界面(GUI);整合图形操作界面与各数据显示功能模块,完成显示系统软件开发。
云南省“十五”数字地震观测网络项目建设完成后,台网在硬件能力方面等到了显著的提高。在“十五”项目期间,更新了大量服务器、高性能处理机以及大屏幕显示器等硬件设备;软件方面则引入了网络数据库系统,改变了以往数据的读取存储方式。台网软硬件方面的发展对数据显示系统提出了新的要求,同时也成为新显示系统开发的基础。结合现有软硬件条件及显示系统的功能设计目标,系统采用了以下技术方法开发实现。
2.1系统开发与运行环境
现阶段,云南省测震台网的日常地震监测工作都基于网络系统,地震监测数据信息的传输、处理以及存储方式都较以往有了较大改变,开始依托于网络数据库系统。如测震台网地震数据信息的管理维护是以“十五”项目网络数据库为基础,此数据库为基于LINUX操作系统的MYSQL数据库系统;而台网的地震速报信息发布系统所使用的数据信息则是以EQIM系统的数据库为基础。在日常工作中,测震台网人员所使用的操作系统包括SCO UNIX、SUSE LINUX以及Windows XP等,显示系统客户端的开发平台使用了台网工作人员更为熟悉的为Windows XP操作系统。为使显示系统能够方便地进行跨平台移植、与网络数据库进行实时数据操作以及系统模块功能的实现与结合,选择TCL/TK脚本语言、VTK(Visualization ToolKit)可视化工具包以及C++等语言工具进行显示系统的开发,系统组成结构如图1所示。
图1 系统框架图Fig.1 The diagram of system frame
2.2系统图形交互界面开发
根据测震台网软硬件条件相关工作要求,完成对地震数据显示系统基本功能的开发设计。以开发设计为依据,使用TCL/TK脚本语言对图形操作界面进行开发,建立具有参数修改、功能实现以及可交互式操作的图形界面。
TCL/TK语言诞生于20世纪80年代,经过多年的发展已经成为一种成熟稳定、功能多样、扩展性强的可嵌入式脚本语言,其中TCL是Tool Command Language的缩写,而TK是一个X window的工具包,是TCL语言在X Window系统中的应用(John等,2010)。选择TCL/TK语言作为显示系统图形交互界面的开发工具是因其具有以下优点:TCL脚本语言和TK工具包为在X Window系统中创建图形用户界面提供了强大便捷的编程环境;良好的延伸、嵌入和集成性使TCL语言能够同C++、JAVA等语言协同工作,这十分有利于显示系统三维显示模块及数据库接口模块的开发;优秀的兼容性使TCL语言开发的应用程序可以在UNIX、LINUX以及Windows等多种操作系统上稳定运行,这也符合台网当前多操作系统并行使用的要求;TCL语言作为开源工具,其免费使用、开发快捷、易于部署等特点也具有明显的优势。
2.3系统三维显示模块开发
科学数据可视化的实质是将科学观测、计算中得到的过程及结果数据通过计算机图形学和图像处理技术在屏幕上显示出来,并进行交互处理的过程(唐泽圣等,1999)。为了实现地震监测数据信息三维可视化功能,采用了VTK(Visualization ToolKit)可视化工具包进行数据可视化编程的工作。VTK是美国Kitware公司开发的一套可以用于进行三维计算机图形图像处理以及可视化的C++类库,其中包含了许多优秀的图像处理和图形生成算法,封装了大量可以直接使用的类和库函数,能够对数据进行各种变换和操作,具有开源、可移植、面向对象的优点,并且能够在C++、TCL、Java、Python等语言环境下进行计算机三维图形可视化、图像处理及相关软件的开发(William等,2000)。
图2 VTK的框架结构Fig.2 The framework of VTK
用VTK工具包来生成图形和进行可视化应用十分便捷。首先,采用数据流水线(Data Pipeline)机制来处理数据;其次,建立适当的目标图形对象来显示数据。如图2所示,可以根据需要建立自己的可视化流程。vtkObject是VTK类库的基类,它为整个可视化流程提供基本方法;vtkSource是vtkObject的派生类和vtkFilter的父类,它为整个可视化流程定义具体的行为和接口,vtkFilter是vtkSource的派生类,它接收数据源中的数据,将原始数据转换为可以直接用某种算法模块进行处理的类型;vtkMapper是所有Mappers的基类,从Filter接受数据,将经过各种Filter处理后的应用数据映射为几何数据,为原始数据与图像数据之间定义接口;vtkActor类用来表达绘制场景中的一个实体,将几何数据的属性告诉绘制对象,最后用vtkRender类显示图像结果,最终完成一次数据可视化的处理过程(苏智剑等,2010)。
VTK工具包所具有的功能及优点,为数据显示模块功能的实现及与操作界面的结合提供了可靠的保证。因此,采用此工具包对显示系统中三维显示模块进行开发,实现本系统显示三维监测数据及包含时空关系的地震数据信息的功能。
2.4系统数据接口模块开发
完成显示系统与网络数据库和测震台网速报系统的数据接口模块程序是实现地震监测数据实时显示的关键。系统数据接口模块的主要功能是实现显示系统以被动方式实时接收台网速报系统的地震定位速报结果,以主动方式对地震自动定位结果、速报目录以及正式地震目录等数据库的实时查询,并将查询结果转换为显示系统所需格式,以主动及交互的方式发送至显示系统。C++语言作为几大主流编程语言之一,具有开发便捷、性能稳定高效、功能全面、通用性强等特点。同时,TCL语言对C++语言具有良好的支持,这一特点使得利用C++语言开发的系统数据接口模块能够与显示系统其它模块协同工作、充分结合。因此,可利用C++语言编写显示系统与MYSQL数据库系统及台网速报系统的数据接口模块,完成显示系统对地震监测数据的实时读取、传输、转换及存储操作。
显示系统的功能设计目标是满足现阶段云南省测震台网缺少台网基本数据信息及地震定位速报结果实时显示软件的需求,增加测震台网地震监测产出数据的显示度。同时,实现显示系统与“十五”网络数据库系统和速报系统的结合、完成地震定位速报结果的实时三维显示、实现地震序列动态三维显示以体现其时空关系、输出显示结果图像以及显示系统交互式操作等基本功能。
按照显示系统的设计要求及开发规划,笔者利用TCL/TK语言、VTK工具包及C++语言完成了云南省测震台网地震监测数据三维交互式实时显示系统的开发工作,基本实现了系统各功能模块的设计目标,并以应用软件的形式提供给台网工作人员使用。
3.1显示系统图形用户界面
显示系统图形用户界面是台网工作人员及科研工作者直接面对的操作界面,作为显示系统的客户端将向用户提供图像数据显示及交互式操作的功能。如图3所示,图形用户界面主要分为三个功能区域。界面左侧为图像显示窗口,此窗口是显示系统的主要显示功能区域,包括台站分布、监测速报控制线、监测范围内三维地形、断层信息以及行政区划界线等基本数据,实时接收的地震定位速报结果及从数据库中查询得到的历史地震目录信息都将以三维可视化图像方式在此窗口显示。界面右上部分为功能按钮区域,此区域整合了数据接口、图像输出存储及部分基础功能模块,为用户提供了对显示系统进行操作的各种功能按钮,如实时监控选项、基础数据显示选项、数据库查询、地震序列动态演示、显示结果图像输出等。用户可以根据需求对显示系统进行相关操作。界面右下列表区域为地震目录信息列表,此列表提供显示窗口中实时发生的地震及通过查询数据库得到的历史地震的地震目录信息。图形用户界面整合了显示窗口、用户操作界面及其他功能模块,使显示系统各功能模块成为一个完整的软件系统。
图3 显示系统图形用户界面Fig.3 The graphical user interface of display system
3.2显示系统的交互式操作
一直以来,云南省测震台网所使用的数据显示系统多是以二维静态的图形图像来描述地震监测数据的空间位置和属性,无法描述地震数据的三维空间信息,显示内容单一、缺乏可操作性。本系统基于三维数据显示,实现了地震监测数据的空间位置和属性的三维可视化图像显示,而数据三维可视化显示的一个重要特征就是可进行交互式操作。如前文所述,可以通过图形用户界面中的功能按钮对显示窗口中部分显示对象进行选择性操作,实现责任区内三维地形、断层、监控范围的交互显示功能,如图4(a)所示。通过鼠标对显示窗口中图形显示对象的操作,则是显示系统实现的另一个重要交互式操作功能。在显示窗口中,用户能够利用此功能对三维图像场景进行整体的平移、旋转、缩放,此交互操作功能使用户能够通过不同视角显示和观察三维数据对象,如图4(b)所示。
图4 显示系统功能Fig.4 The function of displayment system
3.3地震序列时空特征的动态显示
地震的发生,在时间上一般呈一个序列,在空间上往往成一个簇或一个带。这样一个地震序列必然存在着某种关系。这种关系可能是复杂的,对这种关系的认识也许是多方法、多途径的。但是至少有一种方法是最直接的,即序列地震震源参数的三维成像。成像的结果至少能够揭示地震序列或地震簇中地震事件在时间和空间上的相互关系(中国地震局监测预报司,2007)。根据功能设计,显示系统实现了序列地震震源参数的三维动态显示功能。用户可以利用显示系统查询“十五”网络数据库获取历史地震序列的地震震源参数信息,通过点击PLAY功能按钮对序列地震震源参数按时间顺序进行三维动态演示,结合对显示窗口中三维图像场景的平移、旋转、缩放等交互操作,用户可以直观观察地震序列的时空关系特征,此三维动态显示功能对研究认识地震的孕育与发生过程具有重要意义。以下是实现序列地震震源参数三维动态显示的部分代码内容:
近年来云南省及相邻地区发生了多次破坏性地震,直观体现地震事件时空关系成为云南省地震监测、预报及现场应急指挥工作的迫切需求。该显示系统能够对序列地震震源的时空信息进行动态三维显示,基本实现了此应用需求的功能目标。
根据云南省测震台网的软硬件环境及自身应用需求,笔者利用TCL/TK脚本语言、C++程序设计语言与VTK三维可视化工具包,开发了与“十五”网络数据库结合并能够三维显示地震监测数据的实时交互式显示系统,基本实现了功能设计目标。显示系统界面友好,使用方便,操作性强,在实际工作中取得了较好的效果。同时,该系统的部分功能仍需进一步完善,如系统数据查询功能较单一,没有提供更为个性化的查询选择;系统的显示输出存储产品现阶段仅有图片形式,根据用户需求,提供视频输出存储是今后需要完善的方面。三维可视化技术是科学数据可视化未来发展的方向,地球科学领域同样迫切需要发展新的数据显示技术。本研究所做工作,在地学数据三维可视化显示系统软件研制方面做出了尝试。
戴广宏,1997.科学计算可视化技术的研究与应用.地球物理学进展,12(1):108—112.
高级,崔若飞,刘伍,2008.煤矿地震数据三维可视化研究.煤田地质与勘探,36(4):62—64.
高洋,张健,2004.中国三维固体地球可视化网站的规划与设计.地球物理学进展,19(4):975—976.
苏智剑,王瑞,朱高杰,2010.基于Arc GIS和VTK的等高线地形图三维可视化研究.郑州大学学报(工学版),31(3):43—44.
唐泽圣,1999.三维数据场可视化.北京:清华大学出版社.
颜辉武,马晨燕,祝国瑞,高山,2005.地学信息体视化中3维交互技术的研究与实现.测绘学报,34(1):64—70.
中国地震局监测预报司,2007.地震学与地震观测.北京:地震出版社.
John K.Ousterhout,Ken Jones,2010.Tcl/Tk入门经典(第2版).北京:清华大学出版社.
William J.Schroeder,Lisa S.Avila,William Hoffman,2000.Visualizing with VTK:A Tutorial.IEEE Computer Graphics andApplications,20(5):20—27.
Development of 3D Interactive Real-time Display System for Seismic Monitoring Data
Gao Yang,Min Zhaoxu and Yan Qizhong
(Earthquake Administration of Yunnan Province,Kunming 650224,China)
During the tenth“Five-year Plan”period,the China Earthquake Administration finished the network project.The daily routine work of Yunnan Digital Seismic Network are based on network database,but the existing display systems of YNDSN are not support the network database and can not display 3D data.Basing on the network database of the tenth“Five-year Plan”project,we develop the 3D interactive real-time display system for seismic monitoring data with the technology of 3D data visualization and interactive GUI.The system has high real-time capability and operability.It can improve the data display level of YNDSN.
Seismic monitoring data;3D data visualization;Interactive GUI
中国地震局2015年度测震台网青年骨干培养专项(20150425)
2015-07-28
高洋,男,生于1980年。工程师。现主要从事地震监测和地震学研究工作。Email:dafang222@sina.com