地震速报是内蒙古测震台网的重要工作之一。地震发生后,值班人员需要将分析结果发送到中国地震台网中心EQIM服务器,并发送地震短信信息及发送传真到内蒙古党委、政府(郝美仙等,2015)。其中信息发送的前2项任务已实现程序集成,对党委和政府的震情上报以人工发送传真(陈鸿昶等,2011)为主。值班人员需手动编辑Word震情文件,通过人工校验确认无误打印,通过传真机手动拨号发送震情,因分别向党委和政府报送,每次震情上报需重复2次以上步骤(郝美仙等,2016)。在具体操作过程中,无法保证震情上报的及时性,影响后续应急救援等工作;人工编辑和校对容易出现错误,难以保证震情上报质量。在现代计算机技术与人工智能高速发展的背景下,人工震情上报模式已无法满足工作需求。
目前,中国地震系统实现震情自动上报的省地震局较少,广东省地震局基于JAVA语言,设计实现了Web方式的自动传真(刘军等,2013)。内蒙古测震台网根据自身需求,基于VC语言,设计实现内蒙古自治区地震局震情上报系统,提高震情信息的准确性和时效性,简化了速报操作流程,减少了地震速报人员的工作量,为后续地震序列分析、应急救援及市民咨询等工作节省更多时间。内蒙古自治区地震局震情上报系统标志着内蒙古测震台网数字地震信息化的发展(宋晓燕等,2017)。
1 系统功能架构内蒙古自治区地震局震情上报系统功能架构见图 1。该震情上报系统主要包括震情选择、上报模板生成、震情上报3个模块。
![]() |
图 1 震情上报系统功能架构 Fig.1 Functional architecture of seismic reporting system |
震情选择模块主要实现从EQIM数据库查询震情报送所需的相关地震信息。系统设计可以从数据库查询5—10条新的地震信息,并选定一条数据作为本次震情上报。选择错误可以清除选定结果重新查询并选择。用户可以直接进入上报生成模块,系统默认选择数据库最新一条地震数据作为震情上报。用户也可以直接进入震情上报模块,此时系统默认调用系统保存的最近一次地震生成的震情模板。系统读取的EQIM表中速报地震信息主要字段见表 1。
![]() |
表 1 EQIM数据库中主要震情数据字段 Tab.1 EQIM field of main earthquake data in the database |
上报生成模板模块根据震情上报要求,将选定的震情数据填充到Microsoft office Word模板中,自动生成可编辑的Word版震情报送文件,震情报送文件模板见图 2。如果主界面选择按钮未选择状态,则按数据库最近一条符合条件的数据来生成模板,否则按选定数据生成。
![]() |
图 2 震情上报模板 Fig.2 Earthquake report template |
震情上报模块负责将生成的震情模板利用自动传真技术一次性发送给内蒙古党委、政府。该系统允许对自动生成的震情文件进行人工校核和编辑,信息确认无误后再发送。
2 系统实现该震情上报系统基于Microsoft Visual Studio平台开发完成,根据系统功能架构,系统主要实现震情选择、上报生成模板、震情上报3部分。系统实现过程中的主要技术难点在于窗体操作中获取窗体句柄、数据库连接和查询操作及Word模板的自动生成部分。
(1)窗体操作的实现。获取程序的窗体句柄代码如下
IntPtrmainWnd = FindWindow(null, "EQIM地震速报发布程序");
List<IntPtr>listWnd = new List<IntPtr>();
然后是获取窗体上搜索地名按钮的句柄如下。
IntPtrhwnd_button = FindWindowEx(mainWnd, new IntPtr(0), null, "搜索地名");
foreach (char ch in UserChar)
{
PostMessage(listWnd[13], WM_CHAR, ch, 0);
//把经度109.551输入到需要的文本框中
}
char[] latstr = "40.7045".ToCharArray();
foreach (char ch in UserChar)
{
PostMessage(listWnd[15], WM_CHAR, ch, 0);
//把纬度40.7045输入到需要的文本框中
}
SendMessage(hwnd_button, WM_CLICK, mainWnd, "0");
//点击按钮
(2)数据库连接。该系统主要连接EQIM数据库,读取速报地震信息,数据库操作首先定义查询语句,并根据保存时间进行排序,代码如下所示。
string query = "select * from catalog where Cata_id like 'NM%' and
Location_cname not like '%测试%' and Lat > 0 and Lon > 0 and M > 0 order by
Save_timedesc limit 1";
while (myDataReader.Read() == true)
{
string llon = Convert.ToString(myDataReader["Lon"]); //获取字段Lon的值
string llat = Convert.ToString(myDataReader["Lat"]); //获取字段Lat的值
}
(3)自动生成Word模板。主要实现打开模板、操作文本、插入图片。因为模板文件数据从EQIM数据库读取,当正式结果与台网上报结果不一致时,需在信息发送前手动修改地震参数。部分代码如下
//打开模版
Word._Applicationnewapp = new Word.ApplicationClass();
Word._Documentnewdoc;
object nothing = System.Reflection.Missing.Value;
newdoc = newapp.Documents.Open(@"c:\模版文件.doc");
newapp.Visible = true;
//文本操作
string strOld = "[address]";
string strNew="内蒙古自治区呼伦贝尔市";
newapp.Selection.Find.ClearFormatting();
newapp.Selection.Find.Replacement.ClearFormatting();
newapp.Selection.Find.Text = strOld;
newapp.Selection.Find.Replacement.Text = strNew;
//插入图片
object bookMark = "图片";
string replacePic = @"c:\baidu.gif"; //图片路径
newdoc.Bookmarks.get_Item(ref bookMark).Select();
newapp.Selection.InlineShapes.AddPicture(replacePic, ref nothing, ref nothing, ref nothing);
3 部署与应用震情上报系统为客户端程序,直接将打包程序安装在测震台网中心与传真机正常连接的普通PC机上即可。PC机需接入内网并连接到EQIM数据库。系统工作时需关闭Word程序并打开EQIMsender界面。系统主界面见图 3。点击震情选择按钮,出现如图 4所示界面,在该界面上部可以选择查询5—10条震情记录,鼠标左键选中某条记录后点击选定数据按钮,完成震情选择,若需重新选择则点击清除选定按钮。
![]() |
图 3 震情上报系统主界面 Fig.3 Seismic reporting system main interface |
![]() |
图 4 震情选择界面 Fig.4 The seismic selection interface |
点击生成上报模板按钮,系统主界面出现进度条,在此过程中不要进行任何操作,直到出现“模板已生成!”字样,则该功能执行完成。点击上报震情按钮,系统将调用生成的上报模板,震情模板编号也会自动增加。此处允许用户进行校验和修改,确认无误,则点击发送,也可以取消此次上报。
该震情上报系统已在内蒙古测震台网投入使用,并完成2017年9月28日17时33分呼伦贝尔市扎兰屯市M 3.8地震震情的自动上报,过程流畅,震情模板准确无误,总用时约5 min。对于该震情信息,人工发送至少需要10 min,效率约提高1倍。
4 结束语利用自动传真技术研发内蒙古自治区地震局震情上报系统,安装简单,操作便捷,提高了震情上报的准确性和时效性,尤其在大地震发生后的余震统计和报送过程中可较好地发挥功效。该系统的研发与应用同时提高了内蒙古测震台网的信息化水平,可为其他省地震局震情上报提供参考,更好地为防震减灾事业服务。
陈鸿昶, 于洪涛, 冯晓磊. 一种改进的安全传真服务器设计方法[J]. 计算机工程, 2011, 37(17): 282-285. DOI:10.3969/j.issn.1000-3428.2011.17.095 | |
郝美仙, 韩晓明, 张帆, 等. 阿拉善左旗5.8级地震数字化波形记录特征和震源机制解[J]. 高原地震, 2015, 27(4): 6-10. | |
郝美仙, 周银兴, 刘颖, 等. 内蒙古测震台网新震级标度试用[J]. 地震地磁观测与研究, 2016, 37(5): 10-14. | |
刘军, 苏柱金. 地震速报自动传真技术[J]. 华南地震, 2013, 33(4): 70-76. | |
宋晓燕, 褚福刚, 郝美仙, 等. 内蒙古自治区地震局科研管理系统[J]. 地震地磁观测与研究, 2017, 38(2): 155-160. |