苏柱金,黄文辉,刘军
(广东省地震局,广州510070)
空间地理信息在JOPENS系统中的应用及优化
苏柱金,黄文辉,刘军
(广东省地震局,广州510070)
空间地理信息是JOPENS系统中不可缺少的一项技术,本文阐述了在JOPENS系统中空间地理信息技术在地震学中的应用,利用空间基础数据和算法进行地震定位辅助计算、地图数据存储、地震速报、空间位置展示、地震信息发布,以及在各项应用中的优化,使程序的响应时间、系统资源占用、系统运行效率达到最优。
空间地理信息;NetCDF;数据优化;JOPENS
空间地理信息是地震学与生俱来的一个属性,数据采集器记录的每一个地脉动数据都带有空间位置标签,空间地理信息的应用贯穿了地震学的每一个领域,包括地震观测、地震预报、灾害评估、应急救援等,可以说是地震研究不可忽视的重要工具。同样在JOPENS数字地震台网中心处理系统[1](下面简称为:JOPENS系统)中的多个功能模块都与空间地理信息有着直接或间接的联系,如地震定位辅助计算[2]、地图数据存储、地震速报、结果展示、信息发布等。
怎样利用空间地理信息技术结合多种不同格式的基础数据,加以分析处理,解决各方面不同问题是JOPENS系统一个重要的研究方向。在最初的JOPENS中,空间地理信息技术只用于定位的辅助计算和获取速报地名,随着空间地理信息技术的发展,也在JOPENS中得到了广泛的应用,既丰富了JOPENS系统在可视化和用户交互方面的功能,也大大提高了空间分析处理方面的能力。
图1 空间基础数据Fig.1 Spatial basic data
1.1 空间基础数据
空间基础数据是空间地理信息技术的根本,在JOPENS系统中空间基础数据大致分为三类:行政边界数据和河流数据、断层数据、台站位置数据(图1)。根据使用目的和使用方法不同,三种数据的格式也有所不同,行政边界数据因经常需要更新,所以通常使用shape国际通用的矢量数据格式存储,方便从测绘机构获取最新数据;断层数据不需要经常更新,以专用的二进制格式存储;台站位置信息是保密数据,所以保存在加密的数据库中。
1.2 定位辅助计算
利用定位算法确定震中位置时,需要从台站信息数据库中读取台站经纬度,并利用触发台站的相对空间位置、震相到时差计算出震中经纬度、各台站相对震中位置的方位角(图2)。目前JOPENS系统中常用的定位算法有单纯定位法、LocSAT定位法、HypoSAT定位法、单台定位法等,还包括了不常用的川滇3D定位法。
1.3 地理编码
地理编码,是把地理位置与地址相匹配的过程,在JOPENS系统中就是利用地震震中位置的经纬度值搜索该震中位置所在地址,并按照地震速报或地震编目的地名规定组合符合要求的地名的功能。
按照中国地震局地震速报规定,震中速报地名分为三级:省、市、县,JOPENS系统利用定位算法得出震中经纬度后,判断该经纬度所在的省、市、县组合成三级地名。而编目规定则是所在省和县的简写组成的两级地名。
1.4 地理坐标投影及显示
所有的基础数据或最后计算的结果最终都会在屏幕上以平面的方式展现出来。所以无论是在地图展示或是在计算过程中都需要从地理坐标投影转换到平面坐标。因为JOPENS系统中只涉及简单的地图显示,所以简化了投影的计算,把地球假设为一个正球体,长轴短轴半径均为常数6 371.3 km[3]。投影步骤为:①把各图层中的对象元素的边界离散为坐标点集合;②以地图中心的经纬度坐标为旋转角度,把地图中心旋转到投影中心;③把投影点的地理坐标(即极坐标)转换成直角坐标;④判断投影点在直角坐标中的Z轴值,如果是负数则表明该点是球体背面的点,不需要显示,如果是正值则是显示范围内的点。
图2 震中位置及台站分布Fig.2 Epicenter location and stations distribution
绕X轴旋转矩阵:
绕Y轴旋转矩阵:
绕Z轴旋转矩阵:
经过投影获得以米为单位的平面地图之后,再根据程序面板的长宽比例变换成以像素为单位的平面地图显示在面板上。
1.5 定制速报范围和速报策略
在JOPENS系统中,空间地理信息技术在地震事件的速报范围和速报策略方面还发挥着很重要的作用[4]。全国30多个省区域台网都有各自不同的责任区域,包括自己省行政边界范围以及周边区域,而且有时还会根据不同业务要求调整地震速报的范围和对应的发布条件。在这样的背景下,JOPENS系统中的地震发布模块允许各个区域台网的用户使用Google Earth工具软件根据各自台网的速报职责定制速报范围的KML文件,KML(Keyhole Markup Language)是由开放地理空间联盟(Open Geospatial Consortium,Inc.,简称OGC)维护的国际标准,具有方便编辑和传播的特点,利用该KML文件可方便地生成地震速报的范围。
2.1 存储优化(NetCDF)
在JOPENS系统中,因行政边界数据需要定时更新,所以都以shape矢量数据格式存储,这种数据格式的读写都需要一套第三方的API接口[5],而且在读取过程中需要把数据中的所有元素都预先读取到内存中去,所以当数据量非常大的时候程序占用操作系统资源非常多,甚至有时候会直接导致程序崩溃。为了彻底解决该问题,重新选用了一种新的存储格式(NetCDF格式)对空间数据进行存储优化。
NetCDF(network Common Data Format)网络通用数据格式[6]是由美国大学大气研究协会(University Corporation for Atmospheric Research,UCAR)的Unidata项目科学家针对科学数据的特点开发的,是一种面向数组型并适于网络共享的数据的描述和编码标准。目前,NetCDF广泛应用于大气科学、水文、海洋学、环境模拟、地球物理等诸多领域。
NetCDF格式最大的优点就是不需要把完整的数据预先读取到内存中,它可根据使用需要利用索引找到特定一个元素,然后再进行读取操作。因为最初获取的数据是shape格式,所以在JOPENS系统中提供了一套将shape格式优化成NetCDF格式的接口,该接口把shape格式中的对象元素的信息提取出来生成NetCDF格式,然后将对象元素直接存储在本地文件系统中,方便索引和读取。生成NetCDF格式是一次性操作,生成一次之后以后每一次读取数据都不需要使用原Shape格式的数据,当有新的shape文件更新时,利用该接口对最新的对象元素进行更新即可。
优化后测试如图3所示,优化后程序内存占用大大减小,蓝色区域的已使用内存(Used size)由原来的475.5 MB减小到53.08 MB,减小了89%。而图表一半部分中表示内存中驻留的JAVA对象数也大大减少,优化前JAVA对象数最多的是经纬度坐标类com.vividsolutions.jts.geom.Coordinate,实例化了915万个对象,优化之后因为县对象元素的经纬度坐标不再长期驻留在内存中,所以程序中最多的是JAVA语言的四个基本数据类型char、String、int和Object。
图3 优化存储前后程序内存和对象数对比(左边为优化前,右边为优化后)Fig.3 Comparison of system memory and object number before and after storage optimization
2.2 地理编码提取优化
国内地名的地理编码主要在存储在县行政边界图层中,地震速报三级地名和地震编目的二级地名都需要通过地理编码功能接口从县行政边界图层数据获取。在获取过程中需要根据震中经纬度坐标判断震中所在的省市县,再根据速报规定或编目规定组合成正式震中地名。而在县行政边界图层中包含了全国3 000个县对象元素,单个县对象元素的边界可由多达上万个经纬度坐标点组成。如果程序在获取国内地名时把3 000多个县行政边界对象全部加载到计算机内存中,需要长期占用大量的内存资源。
在JOPENS系统中的优化方案为:对县对象元素进行预处理,把县对象元素的最大最小经纬度提取出来,生成一个包含该县对象元素的矩形对象。在判断震中经纬度是否位于该县对象元素时,先利用矩形对象初步判断,因矩形对象只有四个经纬度坐标点,所以进行点包含的判断操作时更加高效,最后再利用符合点包含判断的矩形对象所对应的县对象元素进行点包含判断,使用优化方案后资源占用大大降低,特别是需要对这3 000个县对象进行遍历判断时,目标在列表中的位置越靠后越能体现出性能优势。下面利用20组随机经纬度坐标进行地理编码提取的性能对比测试。测试结果显示,优化后的每一次提取都有不同程度的性能提高,这取决于该组坐标对应的县对象在列表中的位置,如果在列表靠前的位置,性能提高有限,如果在列表靠后的位置性能将会有很大的提高。
2.3 地图显示优化
在JOPENS系统中,集成地图显示功能的模块分别有:超快速报与预警模块(JEEW)、人工交互分析模块(MSDP)、台站监控模块(MONITOR)、信息发布模块(ALERT)。地图显示功能在这些模块中发挥着重要的作用,负责把空间基础数据、定位过程和定位结果等三类数据直观地展现出来。这三类显示数据中空间基础数据是数据量最大,包括了全球经纬度标尺、海陆边界、省市县行政边界、中国的主要河流、断层、台站分布、图例。而定位过程和定位结果的数据则包括了台站的状态(是否参与定位、是否拾取到时震相、当前的速度或加速度值)、P波S波传播速度和范围、盲区范围、震中位置、震源机制解(图4)。
表1 根据20组随机坐标进行优化前后的地理编码提取时间对比Table 2 The comparison of geocoding extraction time from twenty groups of random coordinates before and after optimization
图4 地震超快速报与预警客户端地图显示Fig.4 Map view for earthquake super-fast report and early warning client
地图显示的优化主要为了提高显示效果和减小程序在画图方面的响应时间,从而改善用户体验,针对不同的功能优化方案分为三个层次:一是动静分离,二是图片缓冲,三是局部显示。
2.3.1 动静分离
把静态数据和动态数据分离显示,同一个地震事件在触发和定位过程中是不断修正结果的过程,震中位置和参与定位的台站会随着修正结果不断地微调,P波S波也会随着时间推移不变地扩大传播范围,如果每一次新的修正都在面板上重画所有数据的话,时间和资源的代价太高,所以把基本不变的数据作为面板最底层画图,把时刻需要改变的数据作为面板的最顶层画图,这时只需要重画顶层画图就可以把最新的数据表现出来。
2.3.2 图片缓冲
JAVA的Graphics类提供了很多画图的基本接口,但在实际使用过程中,如果直接利用这些接口在JPanel面板上画图的话,效率很低,特别是县行政边界数据的一个县对象元素就包含了上万个经纬度坐标的情况下,甚至有可能会导致内存泄漏或程序崩溃等严重问题。考虑到这种情况,优化方法是为JPanel面板添加一个图片缓冲,把画图和显示分为两个步骤进行,先把地图画到PNG图片上,然后再把PNG图片显示在JPanel面板上,有了这一层缓冲后大大提高了画图功能的效率,而且PNG图片是可以重复利用的,为上面动静分离的优化方法提供了支撑。
2.3.3 局部显示
局部显示包含了两个方面的含义:一是只显示可视范围内的地图数据;二是只显示某个比例尺范围内的特定图层数据。
当地图放大到一定比例时由于面板大小的限制只会显示面板范围内的数据,所以只需要提取面板范围内的数据来进行画图处理即可,当地图数据需要变化(通常是显示比例或者地图中心变化引起的)时,重新获取地图中心周边一定距离的地图数据。例如JOPENS系统对地震事件进行自动定位检测时,同一个地震事件的多次定位修正,其震中位置经纬度坐标差别细微,此时不需要重新加载面板上的地图数据。
行政边界地图数据在JOPENS系统的基础地图数据中占比重最大的一类,所以能够对这一类数据进行优化处理就能大大减轻地图显示方面的压力。按照人的视觉习惯,站在远处观察时,只想了解该物体的大致轮廓;靠近物体观察时希望掌握细节。所以优化方案把基础地图数据分成了四个等级,分别在四个等级的比例尺上显示。这四个等级的数据分别为:海岸线和国界、省行政边界、市行政边界、县行政边界。当用户调整地图比例时,永远只需显示在这个比例下的等级数据,例如如果需要显示县行政边界数据时,需要放大显示比例,如果需要显示国界时缩小显示比例。
图5是这三个层次的优化做出的综合测试结果,结果以CPU工作时间为基础的,因为当程序运行并进行特定的操作时,系统CPU的工作时间能够反应程序的响应时间,所以本次优化通过监控系统CPU的工作时间来对比优化前后四项地图基本操作的响应时间,四项地图基本操作按编号1到4分别为:地图初始化加载、地图放大操作、地图缩小操作和地图平移操作。
图5的横坐标为时间轴,纵坐标为CPU占用率,优化前当进行四项地图操作时,CPU保持15%占有率左右持续8 s,实行优化后,CPU占有率都有2个百分点左右的降低,而且CPU工作时间减少了50%,具体数据如下表所示。
空间地理信息是JOPENS系统中使用率非常高的一项技术,在多个功能模块中都得到应用。针对各个功能模块不同的特点和使用情况,对空间地理信息技术进行了三项优化,分别是:①利用NetCDF格式进行了数据存储优化,提高了减少了程序在读取空间数据时的内存占用。②利用多边形的空间特征对地理编码提取功能进行了优化,提高了地理编码提取的速度。③根据JAVA画图的原理及人眼的视觉习惯,对地图显示进行了优化,提高了程序的画图性能及缩短了用户交互的响应时间。
空间地理信息学科和地震学科可以说是无法分割的两门科学,随着地震科学的发展,空间地理信息技术将会更多的用武之地,例如空间信息网络服务、三维可视化及空间分析,甚至虚拟现实增强现实都是未来技术的方向。使用空间地理信息技术有利也有弊,它可增加JOPENS系统空间信息处理能力[7],使本来枯燥的数据有更直观的可视化展现方式,但是空间数据占用系统资源非常大,影响系统响应速度,甚至有导致系统崩溃的潜在危险。所以做好各个功能的优化是提高系统效率与用户体验的关键所在。
图5 优化前后系统CPU占用及工作时间对比Fig.5 CPU utilization and working time before and after optimization
表2 地图显示优化前后性能对比Table 2 The performance comparison of map view before and after optimization
[1]吴永权,黄文辉.数据处理软件系统JOPENS的架构设计与实现[J].地震地磁观测与研究,2010,31(6):58-63.
[2]Buliung R N,Remmel T K.Open source spatial analysis and activity-travel behavior research:capabilities of a space package[J].Journal of Geographical Systems,2008(10):191-216.
[3]M.Neteler,H.Mitasova.Open Source GIS:A GRASS GIS approach[M].New York:Springer,2007.
[4]苏柱金,黄文辉.基于JOPENS系统的地震速报信息聚合与发布系统的设计与实现[J].华南地震,2014,34(4):35-40
[5]GeoTools API Documents[EB/OL][2014-12-10].http:// docs.geotools.org.
[6]R Rew,G Davis.NetCDF:an interface for scientific data access[J].IEEE Computer Graphics and Applications,1990,10(4):76-82.
[7]段刚,张丽娜,蔡杏辉.J O P E N S常用定位方法对台湾中深源地震定位差异分析[J].地震工程学报,2014,36(4):1087-1092.
The Application and Optimization of Spatial Geographic Information Technology in JOPENS
SU Zhujin,HUANG Wenhui,LIU Jun
(Earthquake Administration of Guangdong Province,Guangzhou 510070,China)
Spatial geographic information is an important technology in JOPENS,and this paper discusses the application of spatial geographic information technology in seismology science,including taking advantage of spatial basic data and algorithm to assistant calculation for seismic location,map data storage,earthquake quick report,view of spatial location,seismic information publish,and the optimization in all these applications,make the program response faster,system resources consumption less and enhance the system running efficiency.
Spatial geographic information;NetCDF;Data optimization;JOPENS
P315.6
A
1001-8662(2016)03-0081-07
10.13512/j.hndz.2016.03.012
2015-07-29
苏柱金(1983-),男,工程师,硕士研究生,主要从事地震监测工作。
E-mail:suzo@foxmail.com
苏柱金,黄文辉,刘军.空间地理信息在JOPENS系统中的应用及优化[J].华南地震,2016,36(3):81-87.[SU Zhujin,HUANG Wenhui,LIU Jun.The Application and Optimization of Spatial Geographic Information Technology in JOPENS[J].South china journal of seismology,2016,36(3):81-87.]