商 亮,李 爽,王 征,张 闯,张 翔,王秀木
(抚顺地震台,辽宁 抚顺113000;辽宁石油化工大学,辽宁 抚顺113000)
基于MATLAB的前兆数据异常分析系统的研制
商 亮,李 爽,王 征,张 闯,张 翔,王秀木
(抚顺地震台,辽宁 抚顺113000;辽宁石油化工大学,辽宁 抚顺113000)
摘要:基于MATLAB编程,针对本地区多学科的固体潮观测数据的异常情况,设计多种方法进行分析计算,以期对固体潮变化中的特殊形态等异常情况进行提取,并设计人性化交互界面,易于使用,减少出错机会,多方面对观测数据进行有效分析。
关键词:MATLAB;固体潮;分析预报;软件编程
地震预测的目的是对未来地震的发生时间、地点和震级作出判断。为实现这一目标,在科学技术上必须基于两点:一是对地震孕育、发生与震后全过程(简称地震过程)的观测,以获取地震孕育发生的信息;二是对观测到的地震过程进行探索和研究,已揭示地震孕育发生的科学规律。这些就是通常所说的地震观测的两大基础,即观测与研究。二者密不可分,相互依存和渗透,相互转化和推进,其中尤以观测为基础[1]。
我国地震学先辈傅承义先生说过“地震预测必须依据某种前兆”。而强震前的地震活动图像,地震活动性参数,地壳形变、磁场、电场、重力场等地球物理场变化,地下流体,气象因子以及动物行为习性等即是对地震孕育发生过程的前兆的观测内容[1]。
辽宁地处华北和东北交错的位置,地质构造复杂,多条、历史上出现过大震的断裂在此交汇,更有郯庐断裂纵贯。而抚顺地区处于辽宁的东北部,虽然地震发生次数很少,但多条断裂在此“汇而不交”,如密山-敦化断裂、依兰-伊通断裂,且周边还有大洼、太子河等多条断裂存在,是地震前兆信息观测的优质场所,该地区有前兆观测台站五个,为多测项综合前兆观测台站。观测手段有地下流体、地倾斜、短水准等共19个测项。观测方式有模拟观测和“九五”、“十五”数字化观测。从前兆监测台站的分布看,抚顺地区前兆台站分布较均匀,且台站多布设在断裂带附近,能够及时捕捉到抚顺及邻区的主要构造活动信息。多年观测资料表明,抚顺地区前兆映震能力较强,前兆异常特点是以短临异常为主[2-3]。
加之,近些年地震监测预报设备的数字化改造等,产生了越来越多的数据资料,虽然为监测预报工作人员提供了更加全面详实的信息,同时也大大增加了分析预报工作人员的工作量和分析预测难度。因此,制作一个对前兆数据异常细节自动进行预识别、提供较清晰的短临信息,努力简化相关的计算过程,能够进行简单经验预测的前兆数据预分析判断软件已是当务之急。
我们通过查阅大量历史分析资料和文献,认为对于短临异常的判定,较好的方法主要有“形态法”、“破年变异常分析”和“显著特点”等。针对这种情况,我们假设固体潮的数据曲线只是单纯的波形变化。那么,振动与波是横跨物理学各分支学科的最基本的运动形式。尽管在各学科里振动与波的具体内容不同,但在形式上却有很大的相似性。通过振动的运动学定义方程,我们可知,它的主要参数有:振幅、周期、角频率和相位。由此,我们设计对这几个主要参数变化的特性进行分析的方法,来提取短临异常信息[4]。
当今世界,MATLAB和Mathematica、Maple并称为三大数学软件。而MATLAB在数学类科技应用软件中在数值计算方面应该算是首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
这种多层面、多功能集成的平台,使得工程技术人员或分析预报人员既可以较为容易的完成自己的算法和程序,又不需要经过大量计算机方面的培训和学习,能够更大程度上的将科学计算人员的精力集中在更为重要的分析研究工作上,而不必为了实现算法和程序、浪费大量的人力和物力。
该软件是在MATLAB R2012b平台下开发研制的,在该版本下设计开发的用户界面易于使用,其运算速度和结果都能满足地震前兆数据分析的需要。
1.1用户界面设计
从结构上划分,软件可以分为两大部分:前台界面部分与后台处理程序部分。前台界面部分主要是图形用户界面(GUI)以及GUI启动时相应的初始化工作。后台处理程序主要负责数据的导入、分析、处理以及图形显示等工作。
1.1.1前台界面
前台界面部分主要由DataAnalyse.fig和DataAnalyse.m这两个文件负责相关的工作。其中,DataAnalyse.fig文件主要负责软件中各个控件的布局、控件属性的设定、工具栏及菜单栏的设计,如图1所示。
DataAnalyse.m文件的基础结构由Matlab自动生成,之后在其基础上完成用户所定义的功能,其中,重要的函数为:
DataAnalyse_OpeningFcn,为界面的打开函数,即当软件打开时运行的函数。在此函数中主要完成的功能是清除软件之前运行遗留的文件。
1.1.2后台处理程序
后台处理程序,可以分为四个子部分:数据导入、参数设定、分析计算和结果保存及绘图,其执行顺序如图2所示。
数据导入与处理部分:
负责将数据从外部导入到软件中,并根据数据的特点,判断其数据类型。
分析参数设定部分
根据用户的需求设定分析的参数。
分析计算部分:
根据用户导入的数据以及分析参数,进行分析计算。
数据保存与绘图:
保存分析结果,并根据要求进行绘图。
1.1.3数据导入与处理
数据导入功能通过“开始导入”按钮的回调函数完成。在“开始导入”按钮控件的回调函数中,根据用户文件的选择情况,利用importdata函数读取数据文件(观测值文件或理论值文件)中的数据。
importdata函数负责将数据文件中的时间与数据读入到Matlab中,并保存为Matlab可以处理的数据结构[5]。
1.1.4原始数据处理
由于在原始数据中会包含一些诸如“999999”这样的分隔字符,所以,在原始数据文件导入到Matlab之后,需要对原始数据进行简单的处理,处理函数为deal_with999999,其处理过程如下:
第1步,找到数据中开始出现“999999”的位置,并记录;
第2步,判断是否连续出现“999999”;如果是,则继续向下寻找;如果否,则记录下当前的位置。
第3步,对于出现“999999”的位置其数值使用相邻的非“999999”位置数值构造等差数列的方式,替代它们之间“999999”位置上的数值。
重复执行以上步骤,直到数据中所有的数值都为合法值为止。
1.1.5文件类型的判断
在进行计算分析时,利用checkDataType函数(对应checkDataType.m文件)对文件的类型进行判断,文件类型分为:日均值文件、整点值文件和分钟值文件三类,其判断依据是时间的表示方法。
1.1.6参数设定
对于参数设定的部分,将需要设定的参数分为两大类:
第一类:用户可在规定的若干个值中进行选择。
第二类:参数的值由用户给出。
对于第一类参数,可以在GUI中采用下拉菜单的方式进行设计,对于第二类参数,则需要由用户输入。
1.1.7分析类型设定
分析类型采用下拉菜单的设计方式,由用户在给定的选项中进行单项选择,如图3所示。
1.1.8分析方法设定
与分析类型类似,分析方法也采用下拉菜单的设计方式,由用户在给定的选项中进行单项选择,如图4所示。
步长等参数设定
对于类似步长这样需要用户给出的参数值,采用可编辑文本框的UI方式得到用户的输入值,如图4所示。
1.1.9分析计算的总体流程
当用户完成数据导入与参数设定之后,就可以进行分析计算,分析计算的函数总入口为“开始分析”按钮的回调函数,分析计算总入口函数名称为ComputeMain。分析计算的总体流程如图5所示。
1.2分析功能实现
将整个程序所在的文件夹拷贝进MATLAB工作文件夹下,在MATLAB R2012b的主程序界面下,Command Window下键入guide命令,在弹出的GUIDE Quick Start窗口下,选择Open Existing GUI标签,在其下面选择,你所存储程序文件夹下的DataAnalyse.fig后,点击按键Open。之后点击工具栏上的Run Figure,便可出现前兆数据异常识别系统的软件主页面。软件主界面按照功能划分,主要有数据选择导入区、分析参数设置区、和绘图区。
程序运行前需要准备好要分析的前兆数据各分量文件及其相应的理论固体潮文件。数据文件可以通过地震行业内网中运行的前兆处理系统、MAPSIS等软件进行下载。文件格式是第一列为数据时间,第二列为前兆数据值。
当软件识别出所选择的数据文件类型,将在界面上显示出来,有分析人员确定是否将该种类数据进行导入。且所需分析方法的不同,也导致需要数据文件的情况有所不同,见下表。
表1 分析方法与所需文件
在进行计算分析后,绘图区出现了计算结果图形,我们可以通过工具栏的放大、缩小,进行数据检查。
由于分析方法完成后,绘图区会将实际观测曲线以及一些计算结果同时显示上去。那么对于在MATLAB的默认函数中是无法显示最值的排序的。我们的方法是:
第1步,选择Cursor,在绘图区选中一个最值点;
第2步,右键选择“Select Text Update Function…”,如图所示。
第3步,选择NewPrograms文件夹中ShowTimeLong.m这个文件。
之后,我们可以看到其显示的数据发生了变化。
时间——前N大最值发生的时间;
数据——前N大最值的数值;
排序——数据的排序。
为了更好地收集计算分析出的结果,该软件还会在计算数据时,在后台同步生成相关的数据结果文件。结果文件中,会显示该分析方法所使用的参数设定和计算结果的递减排序,这样更有利于后期更深入的分析。
通过对抚顺地区各个观测台站的地倾斜、应变、动水位的等观测数据进行不同时段、不同分量的对比分析,步长选择为5日,进行绘图,如下:
该软件设计之初,就秉着设计简洁、易于修改、简便操作等方便分析预报人员使用的特性,进行设计、编程。在程序中,有很多参数、计算公式、算法和经验值等都是易于修改,且不影响其他计算和结果的,完全以人为本。在这种思路的基础上,完成的程序,拥有更加灵活、便捷、能以实际情况为准进行调整等特性。这无疑为以后,将该软件推广使用研究,提供了足够的空间。
参考文献:
[1]马宗晋,蔡晋安,陈会忠等.中国陆区大震预测途径探索战略研究[M].2014年5月第一版.北京:地震出版社,2014.5:113-148.
[2]焦明若,王海燕,曹凤娟等.辽宁地区地震前兆指标与机理研究[M].2011年10月第一版.北京:地震出版社,2011.10:1-9.
[3]李祥根.中国地震运动构造[M].2010年3月第一版.北京:地震出版社,2010.3:209-212.
[4]周克昌,李辉,杨冬梅等.前兆台网数据处理与评价方法理论模型[M].2011年11月第一版.北京:地震出版社,2011.11:111-113.
[5]江泽林,刘维.实战MATLAB之文件与数据接口技术[M].2014年3月第一版.北京:北京航空航天大学出版社,2014.3:111-113.
DEVELOPMENT OF A MATLAB-BASED ANALYSIS SYSTEM FOR ABNORMALITIES IN PRECURSOR DATA
SHANG Liang,LI Shuang,WANG Zheng,ZHANG Chuang,ZHANG Xiang,WANG Xiu-mu
(1.Fushun Seismic Station,Liaoning Fushun 113000,China;2.Liaoning Shihua University,Liaoning Fushun 113000,China)
Abstract:It is a MATLAB-based programming designed to sort out special patterns and other abnormalities in the changes in earth tide,using various methods to calculate and analyze abnormal earth tide observations received from different disciplines;its user-friendly interface,easy to use and helpful in reducing the chances of mistake,will allow the observations to be effectively analyzed from different perspectives.
Key words:Earth tide;analysis and prediction;programming
作者简介:商亮(1981-),男,河北省平泉县人,2005年毕业于沈阳理工大学,本科,工程师,现主要从事地震监测预报工作。E-mail:lnfssl@163.com
收稿日期:2015-09-26
修订日期:2015-12-27
基金项目:中国地震局地震监测、预测、科研三结合(编号1506087)
中图分类号:P315.69
文献标志码:A
DOI:10.13693/j.cnki.cn21-1573.2016.01.015
文章编号:1674-8565(2016)01-0085-06