梁阿全,梁跃,马宝君,李太岩,高双玲
(黑龙江地震局牡丹江地震台,黑龙江牡丹江 157009)
应用EXCEL VBA实现地震目录格式的转换
梁阿全,梁跃,马宝君,李太岩,高双玲
(黑龙江地震局牡丹江地震台,黑龙江牡丹江 157009)
地震目录是地震学中基础资料。从相关网站下载的地震目录在进行地震分析预测研究之前,需要转换为相应的格式,以往这项工作都是人工完成,工作量大而且容易出错。以Excel VBA宏语言为工具,实现下载目录与地震分析预测目录之间自动转换,为进一步的科学研究提供详实可靠的基础资料。
Excel VBA;地震目录;格式转换
地震目录是地震学中最基础的产出资料,在地震活动性研究、地震预测研究、地震危险性分析和震害损失预测研究中被广泛使用;同时还是编制地震烈度区划图的主要信息源及国家经济建设和国土开发的重要资料。因此准确、及时和完整地获取地震目录对地震科研人员以及防震减灾、城建规划至关重要[1]。
直接的地震目录一般为*.xlsx、*.txt格式,而地震预测研究人员使用Mapsis软件对地震数据分析时多为*.wkf、*eqt、*.Q01等格式,常常需要进行手动键入和人工校对,工作繁重、耗时费力,而且手动输入非常容易出现错误。本文以Excel VBA宏语言为工具,实现下载目录与地震分析预测目录之间自动转换,为进一步的科学研究提供详实可靠的基础资料。
Visual Basic for Applications(简称VBA)是新一代标准宏语言,是基于Visual Basic for Windows
发展而来的。VBA 提供了面向对象的程序设计方法和相当完整的程序设计语言, 易于学习掌握,可以使用宏记录器记录用户的各种操作并将其转换为VBA程序代码。这样用户可以容易地将日常工作转换为VBA程序代码,使工作自动化。
1.1 地震目录来源及格式
目前,可从网络检索地震目录,如中国地震台网中心(CENC)地震数据管理与服务系统(http://www.csndmc.ac.cn/newweb/data.htm)及国家地震科学数据共享中心(http://data.earthquake.cn/data/),美国地震调查局(http://earthquake.usgs.gov/)等;另外地震工作中经常使用的格式还有*.wkf,*.Q01,*eqt,*x01,*.C01等等。限于篇幅本文只介绍几种常见的地震目录格式(表1~表4)。
表1 中国地震台网中心(CENC)地震目录格式
表2 国家地震科学数据共享中心地震目录格式
表3 Wkf文件地震目录格式
表4 Q01文件地震目录格式
1.2 格式对比分析
1.2.1 目录格式对比
台网中心目录:*.xlsx格式,时间保存到秒(保留小数后1位),经度和纬度以度表示(保留小数后2位),采用Ms、Ms7、ML、mb、mB震级。
数据共享中心目录:*.xlsx格式,时间保存到秒(保留小数后1位),经度和纬度以度表示(保留小数后2位),采用Ms震级。
*wkf格式:文本格式,时间保存到分,经度和纬度以度分为单位,采用Ms震级。
*.Q01格式:文本格式,时间保存到秒(保留小数后1位)比*.wkf精度高(wkf保存到分),经度和纬度以度分为单位,与*.wkf的经度相同,采用ML、Ms震级。
1.2.2 目录格式分析
(1)转换前后的地震目录字段先后顺序不一样,需要重新排序;
(2)转换前后经纬度单位不同,需要化度为分;
(3)深度、附加等字段计数位数不同,不足以0补齐,字段间以“,”间隔开来;
(4)各种震级如Ms、ML的适用情况不同,根据不同需要,采用经验公式对其转换[2-8]:
Ms=1.13ML-1.08; 1.21=0.80mB-0.60Ms
另外,网络下载的地震目录有单元格缺失的情况,程序转换中以0补位进行处理。
通过VBA程序,将中国地震台网中心、地震数据共享中心等网站下载的目录转换为分析预报软件mapsis可以使用目录格式,实现从*.xlsx、*.Q01、*eqt等至*.wkf格式之间的转换。
转换后统一使用文本格式,保留年、月日、经纬度、震级等信息,时间保存到分,经纬度以度分为单位,以北纬为正、南纬为负;东经为正、西经为负,采用Ms震级。
Subtest()
Dimi,j,kAsInteger
Worksheets("sheet1").Activate
Fori=Sheet1.[a65535].End(xlUp).RowTo1Step-1
IfSheet1.Cells(i, 5) = ""Then
Sheet1.Rows(i& ":" &i).DeleteShift:=xlUp
EndIf
Next
Forj= 1Toi
Sheets("list").Cells(j, "a") =Left(Sheet1.Cells(j, "a"), 4) '年
Sheets("list").Cells(j, "b") =Mid(Sheet1.Cells(j, "a"), 6, 2) &Mid(Sheet1.Cells(j, "a"), 9, 2)
Sheets("list").Cells(j, "c") =Mid(Sheet1.Cells(j, "a"), 12, 2) '小时
Sheets("list").Cells(j, "d") =Mid(Sheet1.Cells(j, "a"), 15, 2)
Next
……
Sheets("list").Range("a1")="年"
Sheets("list").Range("b1")="月日"
Sheets("list").Range("c1")="小时"
Sheets("list").Range("d1")="分钟"
Sheets("list").Range("e1")="纬度"
Sheets("list").Range("f1")="经度"
Sheets("list").Range("g1")="震级"
Sheets("list").Range("h1")="深度"
Sheets("list").Rows(1).Select
WithSelection
.Font.Bold=True′加粗
.Font.Name="arial" ′字体
.Font.Size=11 ′字号
.HorizontalAlignment=xlLeft′居中
EndWith
……
EndSub
使用VBA代码以Offiice2007为例。
单机左上角【Office图标】-【Excel选项】-【信任中心】-【信任中心设置】-【宏设置】-【启用所有宏】-单机确定-宏命令的启动。如图1所示。
图1 宏命令设置界面
启动宏命令后,用户可以使用如下多种方法打开VBE窗口(图2):
(1)按
(2)单击菜单栏【开发工具】选项卡的【VisualBasic】按钮;
(3)如果VBE窗口已经处于打开状态,多次按
(4)在当前工作表标签上单击鼠标右键,在弹出的快捷菜单中选择【查看代码】命令。
图2 代码编辑窗口界面
单击【运行】-【运行子过程/用户窗体】或者使用快捷键【F5】运行代码,结果如图2。
目前,VBA转换程序已在牡丹江地震台开展使用,使用者可以根据研究需要,从网站下载地震目录进行转换。该方法无需安装软件,操作简单,便于地震预测研究人员开展后续工作。通过一段时间实践,逐步完善其功能后进一步向其他台站推广。
VBA的好处在于与Excel紧密结合在一起,增强了Excel的灵活性,使用ExcelVBA对地震目录格式进行自动转换,避免了大量数据的手动修改和人工校对,便捷快速,大大提高了工作效率。
本文选取VBA作为工具实现对地震目录的转换是基于以下几点考虑:
VBA代码开放,简单易操作,使用者针对不同的功能略做修改即可。VBA是一门内置于Office中的语言,无需安装,只要电脑中已装备了Office,就可以运行VBA编程平台了。
VBA架构简单,实用高效,便于推广。目前常见的Java、C++等则是更为高级的语言了,他们都属于结构化的面向对象的语言,它的重点在于算法与数据结构,一般作为底层架构来开发大型程序。地震目录无论是*.xlsx还是*.txt都是文本格式的,算法和运算相对简单,用VBA即可方便实现功能需求。
VBA编程语言适用于数据量不大的工作范围。当数据量过大的时候,如超过10 000条记录时,Excel的查询和计算速度会明显下降,这时候就要建议考虑选用数据库产品;另外ExcelVBA无法像数据库一样实现多用户管理等等。
总体上Excel适合于开发单机版、访问量与开发维护量都不是很大、对数据有分析建模功能的应用程序。当然,使用ExcelVBA作为开发工具还有一个巨大的优势就在于用户群广大,可以大大缩短学习周期,通过VBA对地震目录进行批量转换,简单快捷,提高工作效率,保证数据质量。
地震目录转换仅仅是地震目录资料应用的第一步,未来将深入研究ExcelVBA与其他语言及应用平台上的融合与功能扩展,推动程序更加智能化和自动化。
[1] 陆远忠,李胜乐,邓志辉.基于GIS的地震分析预报系统[M].成都:成都地图出版社,2002:169-172.
[2] 刘瑞丰,陈运泰,任枭,等.中国地震台网震级的对比[M].地震学报,2007 29(5):467-476.
[3] 张卫华,李胜乐.地震目录资料自动搜索、下载软件的实现[J].地震,2007.27(1):131-141.
[4] 刘丽芳.云南地区地震目录最小完整性震级研究术[J].地震研究,2012.35(4):491-499.
[5] 马宝君.地震目录快速转换软件[J].地震地磁观测与研究,2005.26(3):87-90.
[6] 吴娟,于笑非.辽宁省地震局目录数据格式的转换[J].北京:东北地震研究,2003.19(3):77-80.
[7]Excelhome编著.ExcelVBA实战技巧精粹[J].人民邮电出版社,2013:1-8.
[8] 国家地震局震害防御司.地震工作手册[M].北京:地震出版社,1990:129.
CONVERSION OF EARTHQUAKE CATALOG FORMAT BY APPLICATION OF VBA EXCEL
LIANG Aquan,LIANG Yue,MA Baojun,LI Taiyan,GAO Shuangling
(MudanjiangSeismicStation,EarthquakeAdministrationOfHeilongjiangProvince,Mudanjiang157009,China)
Earthquake catalogue is basic data in seismology.Before the analysis of earthquake prediction research,the earthquake catalog downloaded from relevant websites need to be converted to the corresponding format.This work is usually done manually, and this has heavy management working load and more mistakes.To Excel VBA macro language as the tool, download directory and automatic conversion between analysis and prediction of earthquake catalogue,in order to further scientific research to provide the basis of detailed and reliable data.
VBA Excel;Earthquake catalog;Format conversion
2016-04-28
黑龙江省地震局一般性课题(项目编号:201601)资助。
梁阿全(1981— ),男,黑龙江牡丹江人,工程师,主要从事地震监测工作。E-mail:43326298@qq.com。
P315-39
A
1005-586X(2016)04-0059-05