朱向榮,王龍龍
(1.武警黃金第八支隊(duì),新疆 烏魯木齊 830057)
物化探規(guī)則測(cè)網(wǎng)的設(shè)計(jì)點(diǎn)位快速計(jì)算方法
朱向榮1,王龍龍1
(1.武警黃金第八支隊(duì),新疆 烏魯木齊 830057)
討論了如何利用Excel表格快速計(jì)算物化探規(guī)則測(cè)網(wǎng)的設(shè)計(jì)點(diǎn)位,并將計(jì)算成果輸出為全站儀或RTK數(shù)據(jù)。該方法自動(dòng)化程度高、高效、準(zhǔn)確。
Excel VBA;物化探;規(guī)則測(cè)網(wǎng);設(shè)計(jì)點(diǎn)位;計(jì)算方法
目前,地質(zhì)勘查單位越來(lái)越重視物化探成果在地質(zhì)找礦中的作用,物化探技術(shù)人員的工作量也相應(yīng)增加。對(duì)物化探技術(shù)人員來(lái)說(shuō),如何快速獲取物化探測(cè)網(wǎng)(本文主要指規(guī)則測(cè)網(wǎng))的設(shè)計(jì)點(diǎn)位數(shù)據(jù)是急需解決的問(wèn)題。對(duì)正東西向、正南北向的規(guī)則測(cè)網(wǎng)在Excel表格中比較容易處理,其他方向的規(guī)則測(cè)網(wǎng)則相對(duì)復(fù)雜。本文介紹了如何在Excel中通過(guò)VBA程序快速解決這一問(wèn)題,為物化探技術(shù)人員提供一個(gè)物化探規(guī)則測(cè)網(wǎng)的設(shè)計(jì)點(diǎn)位快速計(jì)算方法。
規(guī)則測(cè)網(wǎng)點(diǎn)位計(jì)算的數(shù)學(xué)模型并不復(fù)雜,主要是極坐標(biāo)計(jì)算,圖1為某礦區(qū)測(cè)網(wǎng)示意圖(與地質(zhì)勘探網(wǎng)重合),已知基線點(diǎn)J0坐標(biāo)(X0、Y0)、基線方位R(按照剖面方向左西右東的原則,當(dāng)恰為南北向時(shí)則左北右南[1],物化探點(diǎn)線編號(hào)應(yīng)由南向北、由西向東遞增[2],所以0°<R≤180°)、設(shè)計(jì)線距J、最小線距C、設(shè)計(jì)點(diǎn)距G、線號(hào)N、點(diǎn)號(hào)P(通常是每隔10 m一個(gè)點(diǎn)號(hào))、最小點(diǎn)號(hào)K、最小點(diǎn)號(hào)距基線距離L(最小點(diǎn)號(hào)如在基線前進(jìn)方向左側(cè),則取正值,否則取負(fù)值),則可根據(jù)以下公式推算出任意測(cè)點(diǎn)的點(diǎn)位坐標(biāo)(XP、YP)。當(dāng)線號(hào)為單數(shù)時(shí)有以下公式:
圖1 測(cè)網(wǎng)示意圖
當(dāng)線號(hào)為雙數(shù)時(shí)有以下公式:
式中,P=K+(i-1)×G/10(i為某測(cè)線上設(shè)計(jì)點(diǎn)位的自然數(shù)編號(hào))。
2.1 創(chuàng)建Excel表格
新建工作簿,包含2個(gè)工作表,分別取名“網(wǎng)點(diǎn)設(shè)計(jì)”、“測(cè)點(diǎn)坐標(biāo)”。如圖2所示,在“網(wǎng)點(diǎn)設(shè)計(jì)”表格中輸入相關(guān)內(nèi)容,將單元格C2~O2及C5~O5設(shè)置為“允許用戶編輯區(qū)域”;在表格右上方插入兩圖片作為控件,其中一個(gè)控制計(jì)算程序,另一個(gè)調(diào)用幫助文件。表格成型后設(shè)置密碼保護(hù)表格。
圖2 網(wǎng)點(diǎn)設(shè)計(jì)
2.2 控件代碼[3]
以下代碼均在Excel2003中編制并調(diào)試通過(guò)。
Private Sub 幫助()
幫助文件.Show
End Sub
Sub 計(jì)算()
Sheets("網(wǎng)點(diǎn)設(shè)計(jì)").Select
Range("C5").Select
N = ActiveCell.Offset(0, 7).Range("A1") + ActiveCell.Offset(0, 8).Range("A1") + 1
A = ActiveCell.Offset(0, 1).Range("A1") 'X0
B = ActiveCell.Offset(0, 2).Range("A1") 'Y0
R=HD(ActiveCell.Offset(0, 3).Range("A1")) 'R0(此處所用自定義函數(shù)請(qǐng)參考文獻(xiàn)[4]
H = ActiveCell.Offset(0, 7).Range("A1") '單號(hào)數(shù)
J = ActiveCell.Offset(0, 5).Range("A1") '設(shè)計(jì)線距
C = 2 * J / ActiveCell.Offset(0, 4).Range("A1") '線號(hào)間隔
E = H * C-1 '單號(hào)最大
F = ActiveCell.Offset(0, 8).Range("A1") * C '雙號(hào)最大
G = ActiveCell.Offset(0, 9).Range("A1") '點(diǎn)距
S = ActiveCell.Offset(0, 6).Range("A1") '線長(zhǎng)
K = ActiveCell.Offset(0, 10).Range("A1") '最小點(diǎn)號(hào)
L = ActiveCell.Offset(0, 11).Range("A1") '最小點(diǎn)號(hào)距基線點(diǎn)位置
T = ActiveCell.Offset(0, 12).Range("A1") '極距
If T = 0 Then
D = S / G + 1 '點(diǎn)數(shù)
Else
D = S / G + 3 '點(diǎn)數(shù)
End If
Sheets("測(cè)點(diǎn)坐標(biāo)").Select
Range("A4:F65536").Select
Selection.ClearContents
For i = 1 To N
If i < H + 1 Then
NN = (H -i + 1) * C - 1 '線號(hào)
X = A + ((H-i+ 1) * J) * Cos(R + WorksheetFunction. Pi())-L * Cos(R + WorksheetFunction.Pi() / 2)
Y = B + ((H - i + 1) * J) * Sin(R + WorksheetFunction. Pi())-L * Sin(R + WorksheetFunction.Pi() / 2)
Else
NN = (i - H - 1) * C
X = A + ((i-H-1) * J) * Cos(R)-L * Cos(R + WorksheetFunction.Pi() / 2)
Y = B + ((i-H-1) * J) * Sin(R)-L * Sin(R + WorksheetFunction.Pi() / 2)
End If
If T = 0 Then
For M = 1 To D
KK = K + (M-1) * G / 10
V = NN & KK
Sheets("測(cè) 點(diǎn) 坐 標(biāo)").Cells(M + (i-1) * D + 3, 1).Value = V
Sheets("測(cè)點(diǎn)坐標(biāo)").Cells(M + (i-1) * D + 3, 2). Value = Round(X + (M-1) * G * Cos(R - Worksheet Function.Pi() / 2), 3)
Sheets("測(cè)點(diǎn)坐標(biāo)").Cells(M + (i-1) * D + 3, 3). Value = Round(Y + (M-1) * G * Sin(R-Worksheet Function.Pi() / 2), 3)
Next M
Else
V = NN & "S"
Sheets("測(cè)點(diǎn)坐標(biāo)").Cells((i - 1) * D + 4, 1).Value = V
Sheets("測(cè)點(diǎn)坐標(biāo)").Cells((i-1) * D + 4, 2).Value = Round(X + T * Cos(R + WorksheetFunction.Pi() / 2), 3)
Sheets("測(cè)點(diǎn)坐標(biāo)").Cells((i-1) * D + 4, 3).Value = Round(Y + T * Sin(R + WorksheetFunction.Pi() / 2), 3)
For M = 2 To D - 1
KK = K + (M-2) * G / 10
V = NN & KK
Sheets("測(cè) 點(diǎn) 坐 標(biāo)").Cells(M + (i-1) * D + 3, 1).Value = V
Sheets("測(cè)點(diǎn)坐標(biāo)").Cells(M + (i - 1) * D + 3, 2). Value = Round(X + (M-2) * G * Cos(R-Worksheet Function.Pi() / 2), 3)
Sheets("測(cè)點(diǎn)坐標(biāo)").Cells(M + (i-1) * D + 3, 3). Value = Round(Y + (M-2) * G * Sin(R-Worksheet Function.Pi() / 2), 3)
Next M
V = NN & "N"
Sheets("測(cè)點(diǎn)坐標(biāo)").Cells(i * D + 3, 1).Value = V
Sheets("測(cè) 點(diǎn) 坐 標(biāo) ").Cells(i * D + 3, 2).Value = Round(X + (T + S) * Cos(R - WorksheetFunction.Pi() / 2), 3)
Sheets("測(cè) 點(diǎn) 坐 標(biāo) ").Cells(i * D + 3, 3).Value = Round(Y + (T + S) * Sin(R - WorksheetFunction.Pi() / 2), 3)
End If
Next i
N = N * D
Dim Path1 As String, Path2 As String, Path3 As String
Path1 = ActiveWorkbook.FullName
Path2 = "拓普康全站儀上傳數(shù)據(jù).txt"
Open Path2 For Output As #1
For i = 1 To N
Sheets("測(cè)點(diǎn)坐標(biāo)").Select
Range("A3").Select
A = ActiveCell.Offset(i, 0).Range("A1")
B = ActiveCell.Offset(i, 1).Range("A1")
C = ActiveCell.Offset(i, 2).Range("A1")
E = A & "," & C & "," & B & ",0"
Print #1, E
Next i
Close #1
Path3 = "中海達(dá)RTK放樣點(diǎn)庫(kù).skl" [5]
Open Path3 For Output As #1
Print #1, "Stake points [Ver:2]"
For i = 1 To N
Sheets("測(cè)點(diǎn)坐標(biāo)").Select
Range("A3").Select
A = ActiveCell.Offset(i, 0).Range("A1")
B = ActiveCell.Offset(i, 1).Range("A1")
C = ActiveCell.Offset(i, 2).Range("A1")
E = A & "," & B & "," & C & ",,,"
Print #1, E
Next i
Close #1
MsgBox "全站儀及RTK上傳數(shù)據(jù)已成功導(dǎo)出至默認(rèn)文件位置!", 48
End Sub
當(dāng)物化探規(guī)則測(cè)網(wǎng)與礦區(qū)地質(zhì)勘探線重合時(shí),線號(hào)一般采用勘探線號(hào),并按勘探線參數(shù)輸入相關(guān)數(shù)據(jù);如果不采用,則將單號(hào)線數(shù)設(shè)為0,并按習(xí)慣設(shè)置最小線距,如果用實(shí)際距離作為線號(hào),最小線距應(yīng)設(shè)為2 m。注意本文規(guī)定點(diǎn)號(hào)為每隔10 m一個(gè),這樣可以方便地知道該點(diǎn)在測(cè)線上的位置。在網(wǎng)點(diǎn)設(shè)計(jì)表格中將相關(guān)參數(shù)輸入后單擊第一個(gè)控件,程序即自動(dòng)計(jì)算并將結(jié)果填入測(cè)點(diǎn)坐標(biāo)表格中,同時(shí)在Excel默認(rèn)位置生成拓普康全站儀上傳數(shù)據(jù).txt、中海達(dá)RTK放樣點(diǎn)庫(kù).skl兩個(gè)文件。如果需要將計(jì)算結(jié)果輸出為手持GPS儀的交換格式文件,則參照文獻(xiàn)[6-7]。如需驗(yàn)證參數(shù)設(shè)置是否準(zhǔn)確、計(jì)算結(jié)果是否可靠,可利用Section軟件將計(jì)算結(jié)果投影至所用地質(zhì)圖件上檢核。
本文方法已經(jīng)在多個(gè)礦區(qū)成功應(yīng)用,具有自動(dòng)化程度高、高效、準(zhǔn)確的特點(diǎn),即使不熟悉工程測(cè)量計(jì)算的物化探技術(shù)人員也能快速計(jì)算出規(guī)則測(cè)網(wǎng)的設(shè)計(jì)點(diǎn)位坐標(biāo)。
[1] GB/T 18341-2001.地質(zhì)礦產(chǎn)勘查測(cè)量規(guī)范[S].
[2] DZ/T 0153-1995.物化探工程測(cè)量規(guī)范[S].
[3] 王成春,蕭雅云.Excel VBA 2003程序設(shè)計(jì)實(shí)例導(dǎo)航[M].北京:中國(guó)鐵道出版社,2005
[4] 朱向榮.基于Excel VBA的常用測(cè)量計(jì)算問(wèn)題解決方案[J].地理空間信息,2013,11(5):131-133
[5] Hi-RTK手簿軟件使用說(shuō)明書[M].廣州:中海達(dá)測(cè)繪儀器有限公司,2012
[6] 朱向榮.手持GPS儀改正參數(shù)的內(nèi)業(yè)確定方法[J].地理空間信息,2014,12(4):136-138
[7] 朱向榮.手持GPS儀點(diǎn)位數(shù)據(jù)的批量導(dǎo)入方法[J].地理空間信息,2014,12(5):107-109
本刊聲明
為適應(yīng)我國(guó)信息化建設(shè),擴(kuò)大本刊及作者知識(shí)信息交流渠道,本刊數(shù)據(jù)已被《中國(guó)核心期刊(遴選)數(shù)據(jù)庫(kù)》《CNKI 中國(guó)期刊全文數(shù)據(jù)庫(kù)》和《中文科技期刊數(shù)據(jù)庫(kù)(全文版)》等收錄。在《地理空間信息》發(fā)表的論文均默認(rèn)將其在著作權(quán)保護(hù)期內(nèi)的復(fù)制權(quán)、發(fā)行權(quán)、匯編權(quán)、翻譯權(quán)以及網(wǎng)絡(luò)傳播權(quán)授權(quán)給《地理空間信息》編輯部,編輯部可將上述權(quán)利轉(zhuǎn)授給第三方使用。作者不再許可他人以任何形式使用該篇論文,但可以在其后續(xù)作品中引用(或翻譯)該論文中部分內(nèi)容或?qū)⑵鋮R編在作者的非期刊類文集中。如不同意,請(qǐng)事先聲明,本刊另作處理。其文章的著作權(quán)使用費(fèi)與本刊稿酬一次性給付(已在收取發(fā)表費(fèi)時(shí)折減和換算為雜志贈(zèng)閱)。
(本刊編輯部)
P258
B
1672-4623(2016)06-0089-03
10.3969/j.issn.1672-4623.2016.06.029
朱向榮,工程師,主要從事工程測(cè)量工作。
2014-09-11。