王榮華+李文堯
摘要: 使用G856和GSM-19T質子磁力儀在同一個測區進行磁測數據采集,由于這兩種型號的質子磁力儀觀測數據文件格式不一樣,用其配套軟件相互日變改正特別困難和繁瑣,并且用其配套軟件日變改正沒有五點或七點滑動平均。為了解決這些問題,在Microsoft Office Excel平臺編寫五點或七點滑動平均和日變改正VBA程序。該程序經實驗驗證和一個測區20971個磁測數據生產應用驗證表明VBA程序的正確性。這個VBA程序適用不同型號的質子磁力儀觀測數據之間日變改正,只要把觀測數據轉換到Microsoft Office Excel中并插入VBA程序代碼即可進行日變改正,非常實用、快捷。
Abstract: When using G856 proton magnetometer and GSM-19T proton magnetometer to collect magnetic data in the same area, the mutual diurnal correction is particularly difficult and complicated with its supporting software, and its supporting software diurnal correction does not get five-point or seven-point moving average, cause these two types of proton magnetometer data file format is different. In order to solve these problems, the paper writes the five-point or seven-point moving average and the diurnal variation of VBA program in Microsoft Office Excel platform. The program is verified by experiment and a survey area 20971 applied magnetic data proved the correctness of VBA programs. The VBA program for proton magnetometer data can be applied in different types of correction for diurnal variation, it just need to convert the data into Microsoft Office Excel and insert the VBA program code to do diurnal correction, it's very practical and fast.
關鍵詞: G856質子磁力儀;GSM-19T質子磁力儀;日變改正;VBA程序
Key words: G856 proton magnetometer;GSM-19T proton magnetometer;correction for diurnal variation;the VBA program
中圖分類號:P716+.82;P413 文獻標識碼:A 文章編號:1006-4311(2014)10-0001-03
0 引言
對同一測區使用G856和GSM-19T兩種型號的質子磁力儀進行磁測數據采集,兩種磁力儀觀測數據輸出文件格式不一樣,并且兩種磁力儀數據日變改正[1]軟件不一樣。G856質子磁力儀數據輸出文件格式為stn[2],日變改正軟件為MagMap2000[2];GSM-19T質子磁力儀數據輸出文件格式為txt[3],日變改正軟件為GEMLinkW[3]。因此,這兩種型號的磁測觀測數據用配套軟件相互日變改正特別困難和繁瑣。此外,根據《地面高精度磁測技術規程》(DZ/T0071-93),為了提高日變改正精度[4],先要對日變觀測原始數據作五點或七點滑動平均,壓制噪聲后,再對測點觀測數據進行日變改正,但G856和GSM-19T質子磁力儀配套日變改正軟件日變改正過程中沒有五點或七點滑動平均。針對這些問題,查閱了相關的文獻和軟件,管志寧[1]提出日變改正值從日變曲線上查得,在日變曲線上量得某時刻相對早基點時間的日變值并取反號,即為該時刻的日變改正值,這種日變改正方法速度慢、精度不高。于寶顯[5]等提出不同型號質子磁力儀之間數據共享,經轉換后的數據可以利用其中一種型號質子磁力儀所配套軟件做日變改正,這種方法有些繁瑣,并且沒有做五點或七點滑動平均。中國地質大學(武漢)劉天佑教授開發的磁法勘探軟件系統MAGS 2.0沒有實現這兩種型號質子磁力儀觀測數據之間的日變改正處理。對此,通過Microsoft Office Excel平臺VBA[6-7]編程解決。
1 觀測數據格式統一
為了統一G856和GSM-19T質子磁力儀觀測數據格式,用MagMap2000導入G856質子磁力儀stn格式文件數據,然后輸出dat格式文件數據,最后把dat文件格式數據復制到Microsoft Office Excel文件中;GSM-19T質子磁力儀txt文件格式數據可以直接導入Microsoft Office Excel文件中。
2 日變觀測數據五點或七點滑動平均
根據《地面高精度磁測技術規程》(DZ/T0071-93),地磁場短周期變化的振幅與質子磁力儀噪聲均方根值是近于同一數量級,噪聲是隨機的,地磁場脈動變化是有規律的,先要對日變觀測原始數據先作五點或七點滑動平均,壓制噪聲水平后,再對測點觀測數據進行日變改正,即可提高日變改正的精度。下面介紹日變觀測數據五點和七點滑動平均原理[7]。設在一個范圍內某點經平滑后的日變數值可表示:T(x)=a0+a1x (1)endprint
(1)式中:a0和a1為待定系數。設日變觀測的數值為T(xi),它的平滑值為T(xi),則可得出:
δ=■a■+a■x■-T(x■)■=min (2)
(2)式中δ為偏差的平方和。利用微分求極值的方法將(2)式對a■和a■求導數,然后令其為零得:
■=■2a■+a■x■-T(x■)=0
■=■2a■+a■x■-T(x■)x■=0 (3)
若x■以剖面上的點距為單位,步長為1,則式(3)中的x■=0,±1,±2…±m。代入式(3)中,可解得a■和a■分別為
a■=■,a■=■ (4)
由(1)式可知x=0時,T(0)=a■,T(0)=■ (5)
由此可見,(5)式就是平滑公式,當m=±1,三點平滑公式為T(0)=■[T(-1)+T(0)+T(1)] (6)
同理可得五點平滑公式為
T(0)=■[T(-2)+T(-1)+T(0)+T(1)+T(2)] (7)
七點平滑公式為
T(0)=■[T(-3)+T(-2)+T(-1)+T(0)+T(1)+T(2)+T(3)] (8)
根據五點和七點滑動平均公式(7)和(8)編寫Microsoft Office Excel VBA程序,代碼如下,利用此程序代碼把日變原始觀測數據(見圖1)五點和七點滑動平均,見圖2和圖3。
Sub 日變原始數據圓滑()
Dim i As Integer
Sheet1.Cells(1, 1) = "日變原始數據"
Sheet1.Cells(1, 2) = "日變觀測時間"
Sheet1.Cells(1, 3) = "日變五點圓滑后數據"
Sheet1.Cells(1, 4) = "日變七點圓滑后數據"
n = 649 ′此值為原始日變數據對應的行數′
m = 5 ′選擇5點或7點滑動平均圓滑′
If 5 = m Then
For i = 4 To n - 2
Sheet1.Cells(i, 3).Value = (Sheet1.Cells(i - 2, 1).Value + Sheet1.Cells(i - 1, 1).Value + Sheet1.Cells(i, 1).Value + Sheet1.Cells(i + 1, 1).Value + Sheet1.Cells(i + 2, 1).Value)/m
Next i
End If
If 7 = m Then
For i = 5 To n - 3
Sheet1.Cells(i, 4).Value = (Sheet1.Cells(i - 3, 1).Value + Sheet1.Cells(i - 2, 1).Value + Sheet1.Cells(i - 1, 1).Value + Sheet1.Cells(i, 1).Value + Sheet1.Cells(i + 1, 1).Value + Sheet1.Cells(i + 2, 1).Value + Sheet1.Cells(i + 3, 1).Value)/m
Next i
End If
End Sub
3 日變觀測數據線性插值
根據《地面高精度磁測技術規程》(DZ/T0071-93)質子磁力儀日變觀測時間間隔為5秒至20秒,為了求出測點觀測與日變觀測同一時刻的日變數據,先要求出日變觀測數據每一秒的數值,因此對日變數據進行分段線性插值[9-10],公式為(9)式,公式中T(n)為前一時刻的日變觀測數據,T(n+m)為后一時刻的日變觀測數據,m為日變觀測時間間隔,j為日變觀測第j秒,T(j)為分段線性插值后第j秒數值,Microsoft Office Excel VBA 程序代碼如下:
T(j)=■·j+T(n) (9)
Sub 日變分段線性插值()
Dim i As Integer
Dim j As Integer
Dim n As Integer
Dim m As Integer
Sheet1.Cells(1, 1) = "日變原始數據"
Sheet1.Cells(1, 2) = "日變插值后數據"
n = 1173 ′此值為原始的日變觀測數據對應的行數′
m=20′此值為日變觀測數據時間間隔′
For i = 2 To n - 1
For j = 0 To m-1
Sheet1.Cells(m* (i - 2) + j + 2, 2).Value = (Sheet1.Cells(i + 1, 1).Value - Sheet1.Cells(i, 1).Value) / m * j + Sheet1.Cells(i, 1).Value
Next j
Next i
Sheet1.Cells(m * (i - 2) + 2, 2).Value=Sheet1.Cells(i, 1)
End Sub
4 提取測點與日變觀測同一時刻的日變數據
求出日變觀測每一秒數值后,要提取測點觀測與日變觀測同一時刻的日變數據,Microsoft Office Excel VBA 程序如下:
Sub 提取數據()endprint
Sheet3.Cells(1, 1).Value = "日變每一秒值"
Sheet3.Cells(1, 2).Value = "日變時間"
Sheet3.Cells(1, 3).Value = "觀測點時間"
Sheet3.Cells(1, 4).Value = "觀測點觀測值"
Dim i As Integer
Dim j As Integer
For i = 2 To 108 ′此值為觀測點時間對應的行數′
For j = 2 To 24142 ′此值為通過插值得到的數據對應的行數′
If Sheet3.Cells(i, 3).Value=Sheet3.Cells(j, 2).Value Then
Sheet3.Cells(i, 4).Value = Sheet3.Cells(j, 1).Value
End If
Next j
Next i
End Sub
5 日變改正
提取測點與日變觀測同一時刻的日變數據后,用測點觀測的數據減去同一時刻的日變數值就是日變改正后的值。
6 驗證
為了驗證VBA程序的正確性,在野外磁測過程中做了實驗驗證。用一臺GSM-19T質子磁力儀做日變觀測,兩臺GSM-19T質子磁力儀做測點觀測,點距約為2米,點數為64個。測點觀測數據用GEMLinkW軟件和VBA程序進行日變改正,用VBA程序日變改正時沒有做五點和七點滑動平均。日變改正后的數據見表1。從表1可以看出:GEMLinkW軟件和VBA程序日變改正后的值相等(用GEMLinkW軟件日變改正后的值軟件默認進行四舍五入保留了兩位小數,用VBA程序日變改正后的值進行四舍五入保留了三位小數),證明了VBA程序的正確性。
此外,對VBA程序還進行生產應用驗證,在云南省鳳慶縣某鐵礦區開展高精度磁測工作中,同時使用G856和GSM-19T質子磁力儀進行磁測數據采集,用VBA程序對測區的20971個磁測數據進行5%抽查人工日變改正驗證,結果也表明VBA程序的正確性。
7 結論
在高精度磁測野外生產過程中經常會遇到用不同型號的磁力儀進行數據采集,數據采集完后必須進行日變改正,然而不同種磁力儀之間往往不能用配套的軟件進行日變改正。本文在Microsoft Office Excel平臺編寫五點或七點滑動平均程序和日變改正VBA程序,并且實驗和生產應用驗證了此程序的正確性,適合野外現場計算,方便、快捷。
參考文獻:
[1]管志寧.地磁場與磁力勘探[M].北京:地質出版社,2005:75.
[2]美國勞雷工業有限公司.G856質子磁力儀用戶手冊[S].美國勞雷工業有限公司,1990:20-22.
[3]加拿大GEM公司.GSM-19T 操作手冊[S].加拿大GEM公司,2011:46-49.
[4]李才明,李軍,余舟等. 提高磁測日變改正精度的方法[J].物探化探計算技術,2004,26(3).
[5]于寶顯,杜利明,王懷坤等.不同型號質子磁力儀之間數據共享[J].內蒙古煤炭經濟,2013,5.
[6]劉炳文.Visual Basic 程序設計教程[M].北京:清華大學出版社,2003:216-223.
[7]John Walkenbach. Excel 2007 VBA Programming For Dummies[M].USA:Wiley Publishing,Inc,2007:36-52.
[8]曾華霖.重力場與重力勘探 [M].北京:地質出版社,2005:196-197.
[9]李慶揚,王能超,易大義.數值分析[M].北京:清華大學出版社,2008:23-24.
[10]張天亮,姚慶梅,許明夫等.基于分段線性插值法的高精度測溫研究[J].信息技術與信息化,2012(1).endprint
Sheet3.Cells(1, 1).Value = "日變每一秒值"
Sheet3.Cells(1, 2).Value = "日變時間"
Sheet3.Cells(1, 3).Value = "觀測點時間"
Sheet3.Cells(1, 4).Value = "觀測點觀測值"
Dim i As Integer
Dim j As Integer
For i = 2 To 108 ′此值為觀測點時間對應的行數′
For j = 2 To 24142 ′此值為通過插值得到的數據對應的行數′
If Sheet3.Cells(i, 3).Value=Sheet3.Cells(j, 2).Value Then
Sheet3.Cells(i, 4).Value = Sheet3.Cells(j, 1).Value
End If
Next j
Next i
End Sub
5 日變改正
提取測點與日變觀測同一時刻的日變數據后,用測點觀測的數據減去同一時刻的日變數值就是日變改正后的值。
6 驗證
為了驗證VBA程序的正確性,在野外磁測過程中做了實驗驗證。用一臺GSM-19T質子磁力儀做日變觀測,兩臺GSM-19T質子磁力儀做測點觀測,點距約為2米,點數為64個。測點觀測數據用GEMLinkW軟件和VBA程序進行日變改正,用VBA程序日變改正時沒有做五點和七點滑動平均。日變改正后的數據見表1。從表1可以看出:GEMLinkW軟件和VBA程序日變改正后的值相等(用GEMLinkW軟件日變改正后的值軟件默認進行四舍五入保留了兩位小數,用VBA程序日變改正后的值進行四舍五入保留了三位小數),證明了VBA程序的正確性。
此外,對VBA程序還進行生產應用驗證,在云南省鳳慶縣某鐵礦區開展高精度磁測工作中,同時使用G856和GSM-19T質子磁力儀進行磁測數據采集,用VBA程序對測區的20971個磁測數據進行5%抽查人工日變改正驗證,結果也表明VBA程序的正確性。
7 結論
在高精度磁測野外生產過程中經常會遇到用不同型號的磁力儀進行數據采集,數據采集完后必須進行日變改正,然而不同種磁力儀之間往往不能用配套的軟件進行日變改正。本文在Microsoft Office Excel平臺編寫五點或七點滑動平均程序和日變改正VBA程序,并且實驗和生產應用驗證了此程序的正確性,適合野外現場計算,方便、快捷。
參考文獻:
[1]管志寧.地磁場與磁力勘探[M].北京:地質出版社,2005:75.
[2]美國勞雷工業有限公司.G856質子磁力儀用戶手冊[S].美國勞雷工業有限公司,1990:20-22.
[3]加拿大GEM公司.GSM-19T 操作手冊[S].加拿大GEM公司,2011:46-49.
[4]李才明,李軍,余舟等. 提高磁測日變改正精度的方法[J].物探化探計算技術,2004,26(3).
[5]于寶顯,杜利明,王懷坤等.不同型號質子磁力儀之間數據共享[J].內蒙古煤炭經濟,2013,5.
[6]劉炳文.Visual Basic 程序設計教程[M].北京:清華大學出版社,2003:216-223.
[7]John Walkenbach. Excel 2007 VBA Programming For Dummies[M].USA:Wiley Publishing,Inc,2007:36-52.
[8]曾華霖.重力場與重力勘探 [M].北京:地質出版社,2005:196-197.
[9]李慶揚,王能超,易大義.數值分析[M].北京:清華大學出版社,2008:23-24.
[10]張天亮,姚慶梅,許明夫等.基于分段線性插值法的高精度測溫研究[J].信息技術與信息化,2012(1).endprint
Sheet3.Cells(1, 1).Value = "日變每一秒值"
Sheet3.Cells(1, 2).Value = "日變時間"
Sheet3.Cells(1, 3).Value = "觀測點時間"
Sheet3.Cells(1, 4).Value = "觀測點觀測值"
Dim i As Integer
Dim j As Integer
For i = 2 To 108 ′此值為觀測點時間對應的行數′
For j = 2 To 24142 ′此值為通過插值得到的數據對應的行數′
If Sheet3.Cells(i, 3).Value=Sheet3.Cells(j, 2).Value Then
Sheet3.Cells(i, 4).Value = Sheet3.Cells(j, 1).Value
End If
Next j
Next i
End Sub
5 日變改正
提取測點與日變觀測同一時刻的日變數據后,用測點觀測的數據減去同一時刻的日變數值就是日變改正后的值。
6 驗證
為了驗證VBA程序的正確性,在野外磁測過程中做了實驗驗證。用一臺GSM-19T質子磁力儀做日變觀測,兩臺GSM-19T質子磁力儀做測點觀測,點距約為2米,點數為64個。測點觀測數據用GEMLinkW軟件和VBA程序進行日變改正,用VBA程序日變改正時沒有做五點和七點滑動平均。日變改正后的數據見表1。從表1可以看出:GEMLinkW軟件和VBA程序日變改正后的值相等(用GEMLinkW軟件日變改正后的值軟件默認進行四舍五入保留了兩位小數,用VBA程序日變改正后的值進行四舍五入保留了三位小數),證明了VBA程序的正確性。
此外,對VBA程序還進行生產應用驗證,在云南省鳳慶縣某鐵礦區開展高精度磁測工作中,同時使用G856和GSM-19T質子磁力儀進行磁測數據采集,用VBA程序對測區的20971個磁測數據進行5%抽查人工日變改正驗證,結果也表明VBA程序的正確性。
7 結論
在高精度磁測野外生產過程中經常會遇到用不同型號的磁力儀進行數據采集,數據采集完后必須進行日變改正,然而不同種磁力儀之間往往不能用配套的軟件進行日變改正。本文在Microsoft Office Excel平臺編寫五點或七點滑動平均程序和日變改正VBA程序,并且實驗和生產應用驗證了此程序的正確性,適合野外現場計算,方便、快捷。
參考文獻:
[1]管志寧.地磁場與磁力勘探[M].北京:地質出版社,2005:75.
[2]美國勞雷工業有限公司.G856質子磁力儀用戶手冊[S].美國勞雷工業有限公司,1990:20-22.
[3]加拿大GEM公司.GSM-19T 操作手冊[S].加拿大GEM公司,2011:46-49.
[4]李才明,李軍,余舟等. 提高磁測日變改正精度的方法[J].物探化探計算技術,2004,26(3).
[5]于寶顯,杜利明,王懷坤等.不同型號質子磁力儀之間數據共享[J].內蒙古煤炭經濟,2013,5.
[6]劉炳文.Visual Basic 程序設計教程[M].北京:清華大學出版社,2003:216-223.
[7]John Walkenbach. Excel 2007 VBA Programming For Dummies[M].USA:Wiley Publishing,Inc,2007:36-52.
[8]曾華霖.重力場與重力勘探 [M].北京:地質出版社,2005:196-197.
[9]李慶揚,王能超,易大義.數值分析[M].北京:清華大學出版社,2008:23-24.
[10]張天亮,姚慶梅,許明夫等.基于分段線性插值法的高精度測溫研究[J].信息技術與信息化,2012(1).endprint