-
根据《地壳形变、电磁、地下流体台网运行管理办法》和《地震前兆台网产品产出技术要求》,地震台站每月应完成观测月报的编写并及时上报台网中心,编写月报是台站观测工作的一项重要内容。电磁、流体学科的月报是Excel报表格式,主要以每一个测项月整时值数据及生成相应曲线为主,可以通过《中国地震前兆数据处理系统》[1]电磁观测“观测报告计算”和地下流体“地下流体月报表”命令自动生成。王建国等[2]、曹志磊等[3]、丁成等[4]对相关软件进行了细化升级,使电磁、流体学科的月报产出更加规范快捷。根据《地震监测台网倾斜应变观测与运行管理细则》,地壳形变月报明显区别于电磁、流体学科的月报。
1)形变月报是Word格式文档,学科管理组只提供了编写提纲,不是一个简单的测项分量数据表格,月报内容包含形变观测的倾斜、应变及洞温、气象三要素等多个测项,涉及文字描述、数据表格和图形绘制等操作,是一个复杂的综合报告。体应变则是另外一种独立格式的Word文档,Word文档后台操控要比Excel数据表格相对复杂。
2)形变学科在几个前兆学科中预处理相对最多。倾斜应变观测仪器产出的电压原始数据需经过格值、台阶改正值换算,才能成为日常分析应用的物理量数据。数据预处理有台阶、缺数、突跳处理,需标明起始、结束时间,处理原因及台阶改正值的变化。格值校准使用有严格的说明要求。形变月报要求填写预处理、格值使用等详细情况。
3)形变观测记录的同震响应在前兆学科中记录次数最多。月报填写时需要登录地震前兆台网数据管理系统,按照每个测项分量逐条录入地震发生日期、时间、震级、地点、震中距,计算出延续时间,对于有十几个测项的综合形变台来说编写月报是很大的工作量,并且容易出现文字、格式、计算等错误。
鉴于形变月报内容的繁杂、多样性,较长一段时间以来,并无专门的配套软件来完成此项工作。因此,根据怀来台站实际情况,按照形变台站观测月报编写提纲,开发了基于地震前兆台网数据库的地壳形变月报生成软件。利用软件自动快速生成月报,对文本段落、数据表格和图形进行规范化填报。同时,总结几年来在地壳形变资料验收评比结果中存在的问题或经验,增加了对日志记录事件的纠错功能。应用软件提高了月报产出质量,提高了形变观测质量整体水平,更好地服务应用于地震研究。
-
软件采用具有简单易用、面向对象、可视化优点的Visual Basic 6.0程序设计语言[5]。使用风格符合用户视窗操作习惯,操作简单,具有通用性。设计遵循模块化理念,并充分利用Windows操作系统提供的各类系统调用函数,以提高软件运行效率。计算机装有Oracle 10g以上客户端,应用Microsoft ado Data Control 6.0控件OLEDB提供的字符串,连接河北省地震前兆台网和张家口分中心数据管理库,根据《地震前兆数据库结构规范》,遵循其各种命名规则和代码表,实现数据库的读写操作。
-
软件流程设计:①登录河北省地震前兆数据库,选定台站和月份后,窗体显示台站形变测项观测日志;②日志纠错,尽最大可能从事件记录各字段及相互关系中判断查找可能存在的错情,弹窗显示,提醒值班员及时改正;③日志解析与数据准备,通过对观测日志逐条解析,生成仪器及辅助观测运行情况的文本字符,生成各测项分量格值使用、预处理、地震记录表中单元格对应的数组;读取分钟值数据表,生成缺测率统计文本;读取小时值数据表,生成月整时值图形文件;④调用地倾斜(应变)观测月报模板,操控VBA(Visual Basic for Applications)填报;文本处理是将仪器运行情况和辅助观测情况填入相应段落,动态绘制表格并填写格值使用表、缺测统计表、预处理表、地震记录表,图形处理是规范化插入月整时值曲线图。
软件流程设计见图1。
-
软件默认登录河北省地震前兆Oracle数据库,如需更换可直接在登录文本框中依格式修改服务器地址、用户名和密码。依照中国地震前兆数据库结构规范,利用SQL语句查询观测日志QZDATA.QZ DLG表,利用VB 下的MSFlexGrid控件进行显示(图2)。
数据导出为Excel表,方便脱网使用。
部分代码:
Dim rs1 As New ADODB.Recordset
Dim sql As String
For i = 1 To Form.TVW.Nodes.Count
If TVW.Nodes(i).Checked = True Then
sql="selectstationid,pointid,itemid,startdate,enddate,evtid,evtdesc,logperson, isprocessed,
isprocessed,pronullnum,evtperson,evtprocessing,prodesc,evtnote from QZDATA.QZ_" & biao(i, 1) & "_DLG where STATIONID='" & biao(i, 2) & "' and POINTID='" & biao(i, 3) & "' and ITEMID='" & biao(i, 4) & "' and STARTDATE>=to_date('" & biao(i, 5) &_ "00:00:00','YYYY-MM-DD HH24:MI:SS') and STARTDATE<=to_date('" & biao(i, 6) & "23:59:59','YYYY-MM-DD HH24:MI:SS') order by stationid,pointid,itemid,startdate"
rs1.Source = sql
rs1.Open
Next i
-
为最大程度保证月报产出的正确性,首先进行日志纠错,即总结几年来在地壳形变资料检查评比中出现的问题,及时发现观测日志填写不规范、常识或逻辑错误、工作粗心造成的错误。比如:记录事件的时间,应为“hh:mm”格式,而不应出现具体的秒值数;日志类型代码错误,如类型代码evtID为“3”,则日志描述evtDesc字段中必含有“校准”字符,如evtID为“4”,则evtDesc字段必含有“调零”字符,如evtID为13,evtDesc字段中必有“风”或“雨”或“雪”或“气压”或“沙尘暴”字符,如evtID为16,evtDesc中应出现“震扰”或“震阶”或“地震”字符;日志描述evtDesc字段中地震发生时间与事件起始时间startDatede的时间差约等于“震中距Δ/纵波速度VP”,VP约为5~7 km/s,这样可估算出震扰开始时间;按照地壳形变学科管理组要求,台阶和突跳等处理时,要写造成事件的具体原因,若暂时查不出原因,应写明“未知原因”,而不能选择evtID为11——数据突跳或evtID为15——台阶(2021,形变学科中心,地震前兆台网运行月报)。再如不统一规范的冒号、括号、单位符号、空格等,不再举例,每个台站有自己的填写约定。出现这些问题多因值班人员疏忽,或者处理软件BUG造成。通过细化的程序判断检查,可以识别这些错情,然后弹窗显示,提示值班员及时改正。
部分代码:
For i = 1 To sheet_count
If xlSheet.Range("F" & i) = "3"
If InStr(xlSheet.Range("G" & i), "校准")=0
Msgbox "台站"+xlSheet.Range("A" & i)+ xlSheet.Range("D" & i)+"事件是否为校准?"
If xlSheet.Range("F" & i) = "11" or xlSheet.Range("F" & i) = "15"
Msgbox "台站"+xlSheet.Range("A" & i)+ xlSheet.Range("D" & i)+"根据规范应写具体原因,不能填突跳或台阶。"
Next i
-
本模块功能是按照地壳形变月报编写提纲要求,通过查询显示的日志表格和数据表,完成准备好仪器及辅助观测运行状况、格值校准使用、缺测统计、数据预处理、地震记录、月整时值图等月报所需的文本、数据、图形,赋值给相应的变量、数组,或生成文本文件。
1)仪器及辅助观测运行状况,是指观测系统是否工作正常,填写发生停电、故障、检修等影响观测的重大事件。软件判断时检查类型代码evtID为2——仪器故障、evtID为101—106的传感器故障、主机故障、数采故障、通讯单元故障、电源故障、仪器接地故障、evtID为7——更换仪器、evtID为1——停电的情况,按照测项分量itemID对应的测项名称+时间段+日志描述合成一个语句,每个仪器为一段落。辅助观测情况主要是检查洞温、气温、气压、降水量是否存在记录事件,包含故障处理、数据预处理、季度检查、校准等情况,如生成“气温:xx月xx日hh:mm—hh:mm进行季度检查,主机、传感器正常,可以继续使用”。若记录事件为空,则为“本月仪器工作正常”。
2)格值校准使用,是指各测项分量当月使用格值、格值单位、格值校准时间以及是否启用备注等情况。如果本月无校准,则从上月的形变月报文件中读取最新标定的格值作为本月使用格值,在备注栏标明“本月无格值校准”。如果本月有校准,则从观测日志表中分别读取上月和本月的校准格值,对二者进行格值误差计算。若相对误差≥2%,按照形变工作细则,需要连续2次校准且相对误差<2%方可启用,此时在备注栏填写“连续2次校准,相对误差<2%,启用新格值”,否则填入“启用新格值”。单元格填报内容赋值给相应文本数组,同时弹窗提示“请把格值校准表附上”,以免漏报。
3)缺测统计,通过查询QZDATA.QZ DYU_01预处理分钟值表和QZDATA.QZ DYS_01原始数据分钟值表,根据相关公式计算各测项分量的完整率和连续率。软件默认可扣除缺记数为0,如果有经学科技术管理组备案的山洞改造或仪器更新改造、仪器正常检修、强雷击损坏等原因引起的缺记,可点击“可扣除缺记数”,在弹出的窗体中填入对应测项的可扣除缺记分钟数后,再点击“数据缺测统计”按钮即可完成计算(图3)。
工作中发现,台站每天直接登录的张家口分中心数据库和省局数据库在完整率或连续率统计时结果有不一致的情况,可能是由于台站数据重新处理或其他因素造成数据库没有同步更新造成。为保证数据的一致性,点击“分中心库统计”,会生成从张家口分中心数据库中计算的完整率和连续率,并且和前者的统计结果进行比较,若有差异,则弹出“某测项数据统计有差异,请检查”。
计算结果严格按照《地震观测仪器进网技术要求常用技术参数表述与测试方法DB/T 21—2007》[6]中的数据修约规定,这是日常计算易忽略之处,程序做了专门处理,保证填报结果正确。
4)数据预处理,是指对观测数据进行台阶、突跳、缺数等预处理,对仪器进行调零、校准操作,按照测项分量汇总填报。软件判断是以观测日志表中是否进行了预处理isProcessed取值为“已处理”或evtID值为3——校准或evtID值为4——调零作为查询关键字,以一个事件的开始时间startDate、结束时间endDate、预处理描述proDesc合并形成一个字符串。其中,台阶处理和突跳处理则只读取开始时间,台阶处理从note备注栏读取台阶改正量。
5)地震记录,主要指本月各测项分量记录的地震干扰情况,包括地震事件发生日期、初动时刻、延续时间(分钟)、M震级、地点、震中距等。软件根据测项分量类型代码evtID为16,且日志描述evtDesc 含有“震扰”作为判别依据,读取地震事件的开始时间startDate和结束时间endDate,计算出延续时间,再从日志描述evtDesc字符串中解析分辨出震级和地点。其中特例是识别跨天的地震,即第一天结束时间为23:59,第二天开始时间为00:00的2个震扰,合并为1个地震事件。
6)月整时值图,通过读取数据库QZDATA.QZ DYU_60预处理表中的整点值数据,按照每页横向1幅、纵向6幅排列,调用“PictureBox”控件绘制各测项分量当月预处理整时值序列曲线图,保存为*.jpg图形文件。
-
本模块是应用VBA编程,结合文档的模板技术,运用Word软件的“域”和“宏”功能,实现了文本、表格、图形的自动处理,从而自动生成月报文档。
1)创建模板,插入文本。为了避免反复输入相同的信息或重复性的格式修改,软件引用了模板技术。引用模板时,需打开对Microsoft Word 12.0 Object Library 的引用(对应类型库文件为Msword12.olb),以便可以引用Word类型库中的属性和方法。根据提纲要求创建模板,在文档中添加页眉页脚、标题、说明、文本框、分隔符等静态文本,在需要动态改变内容的位置插入书签、域。
部分代码:
Dim wdapp1 As Word.Application
Dim wddoc1 As Word.Document
Set wdapp1 = CreateObject("Word.Application") '在word中添加一个新文档
Set wddoc1 = wdapp1.Documents.Open("c: \怀来台站" + CStr(Format(DateAdd("m", -1, DTPicker1.Value), "yyyy")) + "年" + Format(DateAdd("m", -1, DTPicker1.Value), "MM") + "月" + "地倾斜(应变)观测月报.doc")
wdapp1.Visible = True
wdapp.ActiveDocument.Content.Find.Execute findtext:="[月报标题]", replacewith:=Form2.Combo3.Text + "台站" + Format(DTPicker1.Value, "yyyy") + "年" + CStr(Format(DTPicker1.Value, "MM")) + "月地倾斜(应变)观测月报", Replace:=wdReplaceAll '填写标题
wdapp.ActiveDocument.Content.Find.Execute findtext:="[报告编写人:][ 报告编写日期:]", replacewith:="报告编写人:" + Combo1.Text + " " + Combo2.Text + Space(17) + "报告编写日期:" + Format(Now, "yyyy年MM月dd日"), Replace:=wdReplaceAll '填写报告编写人
2)表格处理。月报中表格的列数相对固定,但表格行数和内容长短不是固定的,是动态变化。通过VB应用VBA宏语言,在相应的段落处选择一个区域,根据前面数据准备的赋值数组或字符串变量,依次插入到表格中,然后对表格的水平、垂直对齐方式、环绕方式、行列大小、文字字体格式、大小等进行格式化处理。
部分代码:
Dim table1 As Word.Table
Call chw((Val(quece(1, 1)) '缺测统计表,读取统计数据
wdapp.ActiveDocument.Tables(1).Cell(2, 3).Range.InsertAfter Format(Int(sw) / 100, "0.00") '缺测统计表,填入相应表格
Call chw((Val(quece(1, 2)) '缺测统计表,读取统计数据
wdapp.ActiveDocument.Tables(1).Cell(2, 5).Range.InsertAfter Format(Int(sw) / 100, "0.00") '缺测统计表,填入相应表格
Sub chw(s0 As Single) '根据规范要求,数值取位子程序,
sw = Int(s0): s1 = s0 - sw
If s1 = 0.5 Then
If sw / 2 <> Int(sw / 2) Then
sw = sw + 1
End If
ElseIf s1 > 0.5 Then
sw = sw + 1
End If
End Sub
3)图形处理。将前述绘制的月整时值图形插入,对齐方式设置为“四周型”,宽度、高度、上页边距、左页边距为固定值。根据要求量身定做的绘图,更加规范、图形格式大小固定,减少了用其他软件绘图后需要二次处理,裁剪、调整大小、调整格式等过程,满足学科组的要求。
部分代码:
set Mypicture=activedocument.shapes.addpicture_
(FileName:=App.path&"\"&"整时值图形1.bmp",_
LinkToFile=True,SaveWithDocument:=True) '读取图形文件
Left:=30,Top=0 '设置图形格式
Width:=val(width1)
Height:=val(height1)
Mypicture.WrapFormat.Type=wdWrapSquare
-
本软件目前只在怀来台应用,但开发平台是Windows,数据平台是河北省地震前兆数据管理库,是地震行业统一的数据库结构和读取规则,月报的格式完全按照地壳形变台网中心要求的提纲格式,其他台站只需更改连接数据库的地址,在模板文档中适当修改即可应用。
-
台站观测是一项琐碎的工作,每年的资料验收评比中总会发现一些由于疏忽造成的错情,比如事件的日期错误、日志类型ID错误、测项单位错误,填写不规范、不统一的情况,如半角或全角的冒号、括号,“10-10”这种不正确的应变单位,都可能成为扣分项。充分发挥人工智能的优势,通过软件针对性、专业性地进行甄别判断是一条有效途径,可以很大程度上减少错情的发生。
-
应用VBA操控绘制、填报表格是本软件的难点之一。填报表格的测项、行数、高度等不确定,需要进行动态判定,进行单元格拆分、合并或删除操作,才能完成相应的填报。对填报文字进行格式设置,如水平、垂直对齐格式,字体大小等,特别是表格中涉及格值单位,如10-10、10-3的正确填写。
-
本软件自2022年开始在怀来台应用。怀来台形变观测有水管倾斜仪、垂直摆倾斜仪、水平摆倾斜仪、洞体应变伸缩仪、体积应变仪,辅助观测有洞温、气温气压、降水量等6台套、25个测项分量,原来编写月报需1~2个工作日,而使用该应用软件不仅提高了月报质量,填写更加规范,通过查错功能可以发现部分错情并及时改正,还提高了工作效率。以2022年3月为例,全月形变观测仅同震变化达176次,需要逐个计算波动持续时间,再填入地震记录表格,工作量很大,应用软件只需1~2分钟,快速且准确。
体应变观测月报的学科组有专门的格式要求,填报的文本、表格、图形和倾斜(应变)观测月报相似,且测项单一,相对简单,也可通过软件生成,不再赘述。
-
按照地壳形变台网和学科管理组的编写要求,研发应用了形变月报自动生成软件,对于形变观测的规范化管理,减轻台站人员工作负担,减少人为错情具有实用价值。
软件是根据台站的实际情况进行填报,通过观测日报的逐条判别分析,完成自动填报功能。对于月报中的“异常记录曲线及落实情况描述”、以及复杂的仪器检修过程仍需手动填写。对“地震事件典型曲线”可考虑进一步开发,在选定地震后,插入标准的图形等,尽量使地壳形变月报编写达到规范、准确、快捷。
Software for rapid generation of monthly crustal deformation report at huailai station
-
摘要: 为做好地壳形变月报编制工作,基于河北省和张家口分中心地震前兆数据管理系统,应用VB及VBA语言编制了怀来台地壳形变月报软件,快速生成Word文档。根据地壳形变学科管理组地倾斜(应变)及体应变的月报编写要求,软件实现了观测日志纠错,完成仪器运行状况、格值使用、缺测统计、预处理、地震记录情况、观测曲线图等文本、表格、图形的自动填报。月报编写规范、快捷、准确,提高了工作效率,具有推广应用价值。Abstract: In order to compile the monthly report of crustal deformation monitoring data, based on the earthquake precursor data management system of Hebei Province and Zhangjiakou sub center, the software of monthly report of crustal deformation monitoring data at Huailai station is programmed in VB and VBA language, and word documents are quickly generated. According to the compilation requirements of the monthly tilt (strain) and volumetric strain reports of the crustal deformation discipline management group, the software realizes the correction of observation logs, and implements the automatic filling and submitting of texts, tables and graphs of instrument status, grid value usage, missing measurement statistics, preprocessing, seismic records, observation curves, etc. The writing of monthly reports is standardized, fast and accurate, which improves the work efficiency and has the value of application and promotion.
-
Key words:
- deformation monitoring data /
- monthly report /
- software /
- tilt /
- strain
-
[1] 中国地震台网中心. 中国地震前兆台网数据处理系统2014集成版使用手册[M]. 北京: 中国地震局台网中心, 2014: 5-6. [2] 王建国, 聂永安, 董洪军, 等. 天津市地震前兆台网管理软件[J]. 华北地震科学, 2007, 25(2): 46-50. doi: 10.3969/j.issn.1003-1375.2007.02.011 [3] 曹志磊, 周琼, 张有林, 等. FHD质子磁力仪数据预处理及月报编制软件[J]. 地震地磁观测与研究, 2010, 31(2): 131-134. doi: 10.3969/j.issn.1003-3246.2010.02.023 [4] 丁成, 朱音杰, 孙贵成, 等. FHD质子磁力仪月报快速生成软件[J]. 地震地磁观测与研究, 2017, 38(4): 231-236. doi: 10.3969/j.issn.1003-3246.2017.04.040 [5] 孙秀梅, 巩建华. Visual Basic开发实战1200例[M]. 北京: 清华大学出版社, 2011. [6] 中国地震局. DB/T 21-2007, 地震观测仪器进网技术要求常用技术参数表述与测试方法[S]. 北京: 中国地震局, 2007: 19. -