单台地震数据报告由人工编写转成磁介质数据(陈培善等,1989),地震波形数字化记录后,地震数据处理软件历经EDSP-IAS、SSDP、MSDP单台版及台网版地震分析软件更替,地震数据报告使用EDIX.EXE及地震数据综合软件进行编制,由手工输入到部分数据文件需手工设置、错误数据进行人工审核校对,仍难以满足工作需求。为此,马君宝等(2004)研制地震数据自动备份软件,丁文秀等(2009)解决了单台单个日报数据和五日报数据处理,但均具有具有局限性。五日报命名仍需人工手动解决,容易出现乱码(陈祥开等,2013)。
当前,中国有人值守及无人值守地震台站记录数据,经日常预处理,采用2013版地震台测震综合软件,将前一天的地震分析数据生成*.dat格式文件,累计成五日报及月报数据,但未涉及单个地震分析数据的震相信息排序,需结合南京地震台陈飞团队设计的地震数据传输软件查错功能,经人工修改,生成符合国家地震台网要求上报和传输的数据规范格式文件。结合地震台站实际工作,在优化地震台测震综合软件基础上,采用Microsoft Visual C# 2010版本软件(王小科等,2011),使用Java程序设计相应算法,针对格尔木地震台地震数据实际处理工作,研制1套测震日报数据复核校正软件,利用友好的界面对话框,解决以下问题:①单个地震数据震相信息按到时顺序正序排列;②避免2个以上地震数据在发震时刻间隔较短时出现倒排现象;③解决日报、五日报、月报的自动合成及文件名自动命名格式问题,减轻地震台站人员工作量,使软件使用更具人性化。
1 源数据格式(1)文本数据内容及类型。在国家基准台站及无人值守台站使用的MSDP单台版软件生成的地震数据月报文件为xxxxxs.bat,数据格式见图 1。
地震数据文件文本具体内容是:第1行占位符数位,第2行台站名称、缩写代码、处理当前数据的年、月,第3行至结束行的前一行均为当前月份处理的地震编目数据信息,最后一行为结束行,结束标志为-2。地震数据文件字符位数见表 1。
(2)地震数据文件名规则。地震数据文件的总文件名为:台站名代码+年后两位+月份+s.dat;要生成的文件名规则:日报命名规则:台站名代码+年后两位+月+五日报代码+班次.dat;五日报命名规则:台站名代码+年后两位+月+五日报代码.dat;月报报命名规则:台站名代码+年后两位+月+s.dat。
2 设计思路地震数据编目复核校正软件通过相应界面进行操作,界面设计思路为:①打开面向对象复查软件;②读取所需复查操作的源文件;③复查(纠错);④生成新的日报、五日报以及累计的月报文件;⑤结束。
2.1 面临问题依据地震数据源结构,软件需解决:①地震事件序列的排序,按照日期以地震发震时刻先后顺序排序;②地震类型的判别,具体有近震、远震、极远震,其中远震包涵P波头地震,极远震包涵极远震初始震相;③远震及远震P波头中PPMZ震相需转换为PMZ震相进行输出,与短周期通道中的PMZ依次排序并校正,符合中国地震台网中心报送数据要求;④地震事件初始震相初动方向标准的修改;⑤单台MSDP处理软件中763通道M7震级(-99999.0)与SK通道MS震级的匹配校正;⑥日报、五日报、月报的分割归档操作。
在原始地震数据处理过程中,存在理论推断而程序无法找到真实数据的现象,对比可不做相对应程序设计,如:①跨值班时间的地震时间,一般出现在最后1—2个地震数据的后续震相时间上;②地震数据错乱现象,一般出现在极远震分析工作上,表现为完整地震数据被分隔为2部分,一部分错误数据出现在前一个地震数据后面,另一部分数据保留在对应地震个数上,程序可以识别,但无法进行操作修改;③震相标注错误,程序保留错误的震相数据。可将以上3种错误以文件提取出来,供值班人员参考,并进行人工修改校对。
2.2 实施方案 2.2.1 技术支持采用C/S结构,在Microsoft Visual C# 2010学习版基础上,开发软件界面对话框环境,采用Java的jdk-6u22-Windows-i856版本,进行测震日报数据复核校正软件后台程序开发,软件适用于Windows XP和Windows 7的32位系统。数据处理的技术实现主要是,获取地震综合软件生成的*s.dat文本文件,进行二次编辑,从而得到日报、五日报、月报数据。
2.2.2 数据处理为了与测震数据综合分析软件生成文件路径相统一,采用相对路径查找文件的方法,自动根据当前时间匹配文件夹对应月份的月报文件。数据处理流程见图 2。
源文件读取根据获取当前计算机时间而定,自动识别当日生成文件并打开,部分关键代码如下。
//打开目录文件夹下的文件名
//取得指定路径下所有符合条件的文件
1 string[] strFiles = Directory.GetFiles("D:\\MSDP\\msdp\\report\\");
2 for(int i = 0; i < strFiles.Length; i++)
3 { if(stry.equals(strFiles[i])) //用值判断?
4 break;
5 }
6 if (strFiles.Contains())
7 {
8 true;
9 }
10 Regex reg = new Regex("stry");
11 Match mat = reg.Match(strFiles);
12 while (mat.Success)
13 Tool.duiqiInfo(quackInfos.quacks,quackInfos.maxNum);
14 System.out.println("对其文本数据,以便切割字符串成功......");
15 quack.tou1 = quackInfos.tou1;
16 quack.tou2 = quackInfos.tou2;
17 quack.maxNum = quackInfos.maxNum;
18 quack.wei3 = quackInfos.wei3;
19 Tool.showOkInfo(quackInfos.quacks,quack,quackInfos.maxNum);
20 System.out.println("切割字符串成功......");
21 for (int i = 0; i < quack.quackInfos.size(); i++) {
22 QuackInfo item = (QuackInfo) quack.quackInfos.get(i);
23 if ((!QuackSortTool.isPJinZheng(item.pass,
24 item.seismicPhase))
25 & & (!QuackSortTool.isPYuanZheng(item.pass,
26 item.seismicPhase)))
27 if (!QuackSortTool.isPJiYuanZheng(item.pass,
28 item.seismicPhase)) {
29 errorInfos.add(item); }}
30 System.out.println("获取错误数据成功......");
以上代码中:第1—12行为源文件数据读取的主要部分代码,为了操作方便,直接在相对路径下的文件夹中读取数据,其中第1行打开相对路径下的文件夹,第2—5行判断源文件是否存在,第6—9行判断源文件数据是否包含其中,第10—12行匹配源文件;第13—30行为文本数据分割程序主要代码,其中第13—20行对文本数据字符串进行分割,第21—30行对地震数据震相通道数据进行判断,第29行对出现错误震相数据的存储信息单独报错。
2.3 软件界面软件采用简洁实用的设计思路,界面设计及数据操作结果见图 3。
界面设计见图 3(a),分3个板块,即2个文本框界面(其中一个文本框显示源文件,一个显示校正后的数据文件)和1个文本路径显示框,界面中的7个按钮控件分别对应不同操作(打开源文件,校正源文件数据,生成日报文件,生成五日报文件,浏览文件存储路径,生成月报文件,显示月报文件Word格式的文件)。
该软件界面简洁清晰,操作方便,可以通过读取数据按钮查找要处理的文件,也可以通过校正按钮获取需要处理的文件数据,自动生成日报、五日报、月报相对应的文件和所需数据,见图 3中(b)、(c)、(d)图。
3 软件功能格尔木地震台测震日报数据复核校正软件基本实现该台数据复核校正工作,在近半年的工作检验中,该软件基本实现以下功能:①自动生成校正地震数据文件夹,方便工作人员查找日报、五日报及月报数据对应文本文件;②自动删除重复事件的数据,且按照地震事件编号重新按升序排列;③复核校正得到的地震数据,对于不符合上报要求的错误数据,单独截取并存放在出错文件夹,提示工作人员查看并手动修改;④删除多余空格和空行;⑤修改地震数据中颠倒的震相时间,依次排序;⑥校正震级为0.0的错误,按照面波震级进行整数匹配;⑦完成MSDP单台版软件生成的地震数据编目复核校正工作的同时,处理JOPENS6.0版本软件生成的地震数据编目中存在的格式错误。使用单台MSDP软件及JOPENS6.0软件处理前后结果对比见图 4,(a)、(b)中左图为原始结果,右图为校正结果。
格尔木地震台测震日报数据复核校正软件自测试以来,针对软件出现的问题和反馈意见,对该软件做了相应调整与修改,使得软件操作简单且更加实用。软件的功能设置符合中国地震台网中心关于地震分析报告的标准要求,且日报、五日报、月报的数据截取更加方便直接,结合软件的复核校正及人工修改,时间效率提高,从而提高了工作效率。依据实际工作经验总结而设计的格尔木地震台测震日报数据复核校正软件,是实用性工具软件,界面操作具有针对性,适用于青海区域性地震台站数据复核校正工作,对于全国其他省份区域地震台站,因研究所限,未作进一步延伸。
陈培善, 李强. 地震报告的数据处理[J]. 地震地磁观测与研究, 1989, 10(3): 1-8. | |
陈祥开, 周玲, 郭昱琴, 陈江, 江蕾, 常振宇. 地震观测报告中的自动纠错软件[J]. 华南地震, 2013, 11061106(1): 65-71. | |
丁文秀, 王惠群, 印苏文, 张念. 利用xxx.obs文件生成五日报的研究[J]. 大地测量与地球动力学, 2009, 29(Z1): 131-133. | |
马宝君, 赵谊, 闫峰, 等. 国家数字地震台数据自动备份软件[J]. 地震地磁观测与研究, 2004, 25(5): 53-56. | |
王小科, 王军. C#开发实战1200例[M]. 清华大学出版社, 2011. |