文章快速检索     高级检索
  大地测量与地球动力学  2017, Vol. 37 Issue (6): 644-646  DOI: 10.14075/j.jgg.2017.06.018

引用本文  

单维锋, 李军, 石云. Baytap-G潮汐分析辅助软件的设计与实现[J]. 大地测量与地球动力学, 2017, 37(6): 644-646.
SHAN Weifeng, LI Jun, SHI Yun. Design and Implementation of Baytap-G Tide Analysis Accessional Software[J]. Journal of Geodesy and Geodynamics, 2017, 37(6): 644-646.

项目来源

中国地震局教师科研基金(20130111);国家自然科学基金(41504037);中央高校基本科研业务费专项基金(ZY20160106)。

Foundation support

Teachers' Scientific Research Fund of CEA, No. 20130111; National Natural Science Foundation of China, No. 41504037; Special Fund for Basic Scientific Research of Central Universities, No. ZY20160106.

第一作者简介

单维锋,博士,副教授,主要从事地震大数据技术研究,E-mail:shwf@163.com

About the first author

SHAN Weifeng, PhD, associate professor, majors in earthquake big data technology, E-mail:shwf@163.com.

文章历史

收稿日期:2017-01-22
Baytap-G潮汐分析辅助软件的设计与实现
单维锋1     李军1     石云1     
1. 防灾科技学院灾害信息工程系,三河市燕郊学院街465号,065201
摘要:基于C#.NET程序语言开发了一套可视化Baytap-G潮汐分析辅助软件,实现了参数、水位、气压等数据格式的自动转换与填充,潮汐参数等结果的提取、保存及绘制等。
关键词软件设计潮汐分析Baytap-G

固体潮分析结果被广泛应用于相关地球物理学研究[1-4],为了分离观测数据中的各种干扰信号,需要对观测数据进行预处理。目前,潮汐分析处理方法和软件主要包括ETERNA [5]、VAV[6]和Baytap-G[7]等,其中ETERNA适合较长观测时间数据处理,VAV适合较短观测时间数据处理。基于贝叶斯统计模型概念使用FORTRAN语言编写的Baytap-G软件,将潮汐观测值表示为一系列时间调和函数之和,潮汐信号与噪声的分离采用数字滤波的方法。执行Baytap-G软件需要进行参数文件input05.dat配置,水位数据文件input12.dat以及可选气压数据文件input14.dat准备,输出文件包括output06.dat(含不同波因子、振幅、相位等)和output16.dat(含残差、趋势项、响应项等)等文件。

可见,Baytap-G软件在使用过程中需设置复杂的参数,水位、气压等数据也需按照固定格式读取,计算结果文件信息庞杂,不利于快速获取不同波群的潮汐参数,且不具备可视化功能。为了便捷使用Baytap-G软件,应用C#.NET语言对其进行封装,解决以上主要缺点。

1 辅助软件设计 1.1 编程语言

C#.NET是微软公司设计的一种面向对象、运行在.NET Framework之上的高级程序设计语言,兼具可视化操作和高运行效率等特点,其优雅的语法风格、创新的语言特性、快速的编程效率和丰富的编程组件使其成为开发Windows应用程序的首选语言。因此,为了实现操作简单、使用方便、数据导出便捷,选择C#.NET编程语言作为软件开发语言。

1.2 设计思路

在不直接改写Baytap-G软件复杂的程序代码的前提下,对其进行封装。通过简单易用的可视化界面进行参数设置、水位和气压数据导入,分别转换为Baytap-G软件适用的格式,然后调用Baytap-G程序进行计算。运行结束后,根据结果数据各自文件格式,可将所选结果通过可视化技术进行显示。

1.3 关键技术

1) 模板文件

将Baytap-G软件参数移植到Windows界面上,并创建input05_t模板文件,每个参数对应一个C#.NET语言中的索引占位符“{#}”,“#”表示数字,且从0开始,使用String.Format方法填充各个参数,并另存为input05.dat文件即可。

2) 软件执行

将执行命令所需参数封装为一个ProcessStartInfo类对象传给Process类的start方法,ProcessStartInfo类包含待执行文件的路径名、工作目录、是否创建窗口、是否重定向输出和错误等参数。命令执行完毕后,Process对象的StandardOutput参数包含了命令执行的结果,通过查找是否包含“Program terminated”字符串来判断命令是否正常执行完毕。

2 辅助软件实现

整个程序采用SDI程序风格,包含系统、潮汐数据处理和3个菜单项。系统菜单项包含退出子菜单、版权说明子菜单;潮汐数据处理菜单项包含潮汐分析、绘制水位图和绘制振幅相位图等子菜单项。

2.1 潮汐分析

潮汐分析功能如图 1所示。首先,通过浏览选择水位数据文件,包含时间、水位、气压(可选),每行1条记录,时间精确到h,如2016010100,缺数用99999表示。程序自动读取数据的开始和结束时间并填充到界面上对应的文本框中,无需手动输入,减少了出错的可能性。接着,点击浏览按钮选择输出文件夹,指定结果输出目录,程序执行完毕后会将Baytap-G程序的参数文件、输入数据文件、输出数据文件以及提取的波形数据均存放在该目录下,以便核查和绘图。然后,根据实际需要设置井泉的经纬度和高程等信息。最后,点击计算按钮,调用Baytap-G软件进行计算。计算结束后,自动从输出文件中提取各个波形数据,保存到输出文件夹下。每个波形数据保存为1个文件,命名为Sheet_xxx.txt,其中“xxx”表示波的名称,如O1、M3、N2等共计12个波;每行1条记录,包含时间、振幅、相位等信息,中间用逗号分隔;时间仅记录每次计算的开始时间。

图 1 潮汐分析界面 Fig. 1 Interface of tidal analysis
2.2 水位变化

选择原始水位文件,点击图 2中的绘图按钮即可完成绘制功能。如果数据过多,默认设置会导致X轴的刻度标签重叠,可通过X轴或Y轴间隔设置来解决。此外,还可更改线条的颜色、粗细、类型等。

图 2 水位变化 Fig. 2 Water level diagram
2.3 振幅和相位

为了直观地对比分析各个波形数据、水位数据及其与地震之间的关系,辅助软件提供了振幅、相位图绘制功能(图 3)。在图 3中,点击选择数据文件夹后的浏览按钮,选择存放输出数据的文件夹,选择绘制按钮,即可将水位、振幅和相位(默认为O1波)等信息显示在同一界面上。用户可以通过选择“SYMBOL”下拉框的值绘制其他波形的数据图,且曲线的类型、颜色、粗细以及刻度等参数均可自行调整。水位、振幅和相位等信息的X轴(时间)刻度可以分别进行调整。水位数据中缺数设置为0。由图 3可以看出,水位有多处突升和突降。图 3的下部是振幅、相位时间序列,共用一个X轴,右侧为振幅的Y轴,左侧为相位的Y轴,可根据实际取值等比缩放在一个相同的Y轴空间内。点击选择震级Excel后的浏览按钮,指定地震目录数据(含发震日期、年、月、日、时间、震级、经度、维度、深度等信息),将震例添加在此界面上。

图 3 振幅和相位 Fig. 3 Amplitude and phase

在实际使用过程中,如果水位、振幅和相位数据较多,绘图时间会超过3 s,在一定程度上会影响用户的交互体验。为了提高图形绘制速度,下一步拟采用并行程序对其进行优化。

3 结语

简述了Baytap-G潮汐分析辅助软件的设计、实现过程中的模板技术及外部进程执行等关键技术,介绍了潮汐分析计算以及水位变化、振幅、相位等信息的绘制,实现了Baytap-G软件的可视化封装,降低了软件使用的难度,可便捷提取波形数据及绘制可视化图形等。

参考文献
[1]
陈志遥, 吕品姬, 李正媛, 等. 汶川MS8.0地震前的潮汐变化分析[J]. 大地测量与地球动力学, 2009, 29(4): 48-50 (Chen Zhiyao, Lü Pinji, Li Zhengyuan, et al. Analysis of Tidal Data before Wenchuan MS8.0 Earthquake[J]. Journal of Geodesy and Geodynamics, 2009, 29(4): 48-50) (0)
[2]
廖欣, 刘春平, 杨贤和, 等. 承压井水位对含水层潮汐应力响应是否满足不排水条件的检验[J]. 地震学报, 2011, 33(2): 234-242 (Liao Xin, Liu Chunping, Yang Xianhe, et al. Undrained Examination of Tidal Response of Water-Level in Confined Wells[J]. Acta Seismologica Sinica, 2011, 33(2): 234-242 DOI:10.3969/j.issn.0253-3782.2011.02.010) (0)
[3]
张晶, 陈荣华, 杨林章, 等. 强震前形变潮汐异常判识与机理研究[J]. 地震学报, 2006, 28(2): 150-157 (Zhang Jing, Chen Ronghua, Yang Linzhang, et al. Research on Distinguishing Method and Mechanism of Tidal Deformation Anomalies before Large Earthquakes[J]. Acta Seismologica Sinica, 2006, 28(2): 150-157 DOI:10.3321/j.issn:0253-3782.2006.02.005) (0)
[4]
李希亮, 刘希强, 张玲, 等. 高阶统计量在形变固体潮汐异常信息提取中的应用[J]. 西北地震学报, 2012, 34(4): 359-364 (Li Xiliang, Liu Xiqiang, Zhang Ling, et al. Application of Higher-Order Statistics on Extracting the Tidal Deformation Anomalies[J]. Northwestern Seismological Journal, 2012, 34(4): 359-364 DOI:10.3969/j.issn.1000-0844.2012.04.0359) (0)
[5]
Wenzel H G. Earth Tide Analysis Package ETERNA 3.0[J]. Bull Inf Marées Terrestre, 1994, 118: 8719-8721 (0)
[6]
Venedikov A P, Arnoso J, Vieira R. VAV: A Program for Tidal Data Processing[J]. Comput Geosci, 2003, 29(4): 487-502 (0)
[7]
Tamura Y, Sato T, Ooe M, et al. A Procedure for Tidal Analysis with a Bayesian Information Criterion[J]. Geophysical Journal International, 1991, 104(3): 507-516 (0)
Design and Implementation of Baytap-G Tide Analysis Accessional Software
SHAN Weifeng1     LI Jun1     SHI Yun1     
1. Department of Disaster Information Engineering, Institute of Disaster Prevention, 465 Xueyuan Street, Yanjiao, Sanhe 065201, China
Abstract: New Baytap-G tide analysis accessional software is designed based on C#.NET programming language. The software not only provides a simple and easy way to access through the visual user interface, but also implements the automatic format transformation and filling for the parameter, water level, and pressure data.
Key words: software design; tidal analysis; Baytap-G