摘要:本文針對(duì)井下測(cè)量?jī)?nèi)業(yè)工作中對(duì)以前的原始資料的查詢、人工對(duì)算花費(fèi)時(shí)間長(zhǎng)、小數(shù)點(diǎn)取舍等問(wèn)題,利用Excel中的VBA模塊,編寫相應(yīng)的程序?qū)峦鈽I(yè)測(cè)量中的觀測(cè)數(shù)據(jù)進(jìn)行自動(dòng)化處理,讓測(cè)量?jī)?nèi)業(yè)工作更直觀、規(guī)范,便于技術(shù)人員方便對(duì)算檢核、查閱、使用。
Abstract: In this paper, for the problems of the previous original data query, long time of manual calculation, decimal point selection and so on, the VBA module of Microsoft Office Excel software is used to automatically process the observation data in the underground field measurement, which makes the measurement work more intuitive and standardized, and is convenient for technicians to check, consult and use the calculation.
關(guān)鍵詞:Excel;VBA;數(shù)據(jù)處理;井下測(cè)量
Key words: Excel;VBA;data processing;downhole measurement
中圖分類號(hào):P208? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 文章編號(hào):1006-4311(2020)09-0197-03
1? 緒論
在實(shí)際井下測(cè)量?jī)?nèi)業(yè)計(jì)算時(shí),人工計(jì)算檢核與查找數(shù)據(jù)資料無(wú)疑會(huì)耗費(fèi)大量的時(shí)間和人力資源,并且無(wú)法保證準(zhǔn)確率。所以,尋求一種高效、可行的方法替代原來(lái)的人工計(jì)算檢核方法是非常重要的[1-3]。本文提出利用EXCEL強(qiáng)大的二次開(kāi)發(fā)環(huán)境VBA模塊處理井下測(cè)量?jī)?nèi)業(yè)數(shù)據(jù)。Visual Basic for Applications(VBA)是Visual Basic的一種宏語(yǔ)言,主要能用來(lái)擴(kuò)展Windows的應(yīng)用程式功能,也可說(shuō)是一種應(yīng)用程式視覺(jué)化的Basic 腳本[4-6]。VBA是一種面向?qū)ο蟮木幊陶Z(yǔ)言,其語(yǔ)法比較簡(jiǎn)單,容易理解和掌握,并且VBA是針對(duì)特定的應(yīng)用程序進(jìn)行開(kāi)發(fā)的,用簡(jiǎn)短的代碼就能實(shí)現(xiàn)復(fù)雜的功能,一般的測(cè)量人員都能很好地使用[7-9]。在井下測(cè)量工作中,使用Excel-VBA方便對(duì)外業(yè)施測(cè)的原始數(shù)據(jù)和內(nèi)業(yè)數(shù)據(jù)進(jìn)行檢查、計(jì)算及保存[10]。
2? 井下測(cè)量?jī)?nèi)業(yè)工作中的問(wèn)題
在井下測(cè)量?jī)?nèi)業(yè)工作中,測(cè)量技術(shù)人員需要在井下外業(yè)觀測(cè)前對(duì)控制起算數(shù)據(jù)進(jìn)行相應(yīng)檢核,如已知邊的方位角、邊長(zhǎng)、平面坐標(biāo)、高程、導(dǎo)線點(diǎn)號(hào)等;如果現(xiàn)有工程與幾年前的工程貫通,將會(huì)用到幾年前的數(shù)據(jù)資料。其次,進(jìn)行內(nèi)業(yè)計(jì)算時(shí),需要求出導(dǎo)線各邊的坐標(biāo)方位角、導(dǎo)線點(diǎn)的平面坐標(biāo)、高程。將2次獨(dú)立檢核對(duì)算無(wú)誤后的結(jié)果記錄在測(cè)量成果本,檢核無(wú)誤后保存,并把導(dǎo)線點(diǎn)展繪在CAD礦圖。
井下測(cè)量?jī)?nèi)業(yè)工作中存在的普遍性問(wèn)題一般包括以下四個(gè)方面:首先,外業(yè)觀測(cè)時(shí),需要檢核控制起算數(shù)據(jù),如現(xiàn)有工程與幾年前的工程貫通,會(huì)用到幾年前的數(shù)據(jù)資料,查找數(shù)據(jù)資料的過(guò)程會(huì)花費(fèi)較長(zhǎng)時(shí)間;其次,內(nèi)業(yè)工作要求2次獨(dú)立計(jì)算,并把2次計(jì)算的結(jié)果進(jìn)行檢核,人工計(jì)算檢核時(shí)間長(zhǎng);再者,在獨(dú)立計(jì)算的過(guò)程中,小數(shù)點(diǎn)取舍方法上的不同,導(dǎo)致2次計(jì)算的結(jié)果不同;最后,將計(jì)算后的數(shù)據(jù)展繪到礦圖上需要耗費(fèi)大量的時(shí)間。
例如,已知A點(diǎn)至B點(diǎn)的方位為63°11′2.8″,A至B的水平距離為100米,A點(diǎn)坐標(biāo)為X=100.003;Y=100.000,在計(jì)算B點(diǎn)坐標(biāo)時(shí),人工計(jì)算時(shí)有的用B坐標(biāo)Bx=Ax+cos(ab)·D(ab),By=Ay+sin(ab)·D(ab)的方法計(jì)算,那么保留3位小數(shù)進(jìn)行“四舍六入 奇進(jìn)偶舍”取舍前Bx=145.1155,By=189.2461,取舍后Bx=145.116,By=189.246。有的用B坐標(biāo)Bx=Ax+?駐x,By=Ay+?駐y的方法計(jì)算,那么取舍前?駐x=45.1125,?駐y=89.2461,取舍后Bx=100.003+45.112=145.115,By=100+89.246=189.246。2次計(jì)算后B坐標(biāo)有所差異,在井下測(cè)量?jī)?nèi)業(yè)計(jì)算應(yīng)按后者規(guī)范計(jì)算,即先求出平面坐標(biāo)增量?駐x和?駐y,對(duì)其進(jìn)行取舍之后再計(jì)算待求點(diǎn)坐標(biāo)。
3? 井下測(cè)量程序設(shè)計(jì)
通過(guò)對(duì)井下測(cè)量?jī)?nèi)業(yè)工作的分析,為了讓外業(yè)數(shù)據(jù)和內(nèi)業(yè)數(shù)據(jù)相聯(lián)和統(tǒng)一,方便以后的查找和調(diào)用,需要建立3個(gè)工作簿,分別為觀測(cè)值、計(jì)算表、成果表。
在EXCEL表格中所輸入的數(shù)字為十進(jìn)制,而外業(yè)觀測(cè)的數(shù)據(jù)為六十進(jìn)制,數(shù)據(jù)處理前需要把十進(jìn)制與六十進(jìn)制進(jìn)行轉(zhuǎn)換,如可用=sin((INT(F" & k & ")+INT(MOD(F" & k & ",1)*100)/60+MOD(MOD(F" & k & ",1)*100,1)*100/3600)*PI()/180)等代碼。
測(cè)量外業(yè)數(shù)據(jù)的計(jì)算法則是“四舍六入 奇進(jìn)偶舍”,如可用以下代碼來(lái)完成小數(shù)的取舍:
Function TranValue(rng As Double, number As Integer) As Double
TranValue = Round(rng, number)
End Function
該程序可以根據(jù)數(shù)據(jù)精度要求進(jìn)行小數(shù)位的保留,避免出現(xiàn)無(wú)效數(shù)據(jù)。
在實(shí)際測(cè)量工程中,通常以圖紙形式展現(xiàn)具體的測(cè)量工作,所以將數(shù)據(jù)成果展點(diǎn)到CAD也是基本需要。以CAD2019為例,Excel-VBA代碼可以用GetObject(,"GstarCAD.Application")語(yǔ)句讓Excel-VBA對(duì)CAD二次開(kāi)發(fā)實(shí)現(xiàn)一鍵展點(diǎn)上圖。
4? 算法實(shí)例
在觀測(cè)值工作簿中導(dǎo)入原始資料圖片,把外業(yè)施測(cè)的原始資料導(dǎo)入觀測(cè)值表格,并按格式輸入觀測(cè)數(shù)據(jù),計(jì)算出導(dǎo)線點(diǎn)之間的平距及高差(往、反)(圖1)。
在計(jì)算表里填寫外業(yè)所測(cè)數(shù)據(jù)的地點(diǎn)、計(jì)算者、日期以及計(jì)算數(shù)據(jù)的由來(lái),方便以后查找測(cè)量原始記錄;在輸入起始方位角(輸入109o05′26.5″的格式109.05265)、起始坐標(biāo)X、Y和起始高程后進(jìn)行計(jì)算(圖2)。
對(duì)算檢核無(wú)誤的數(shù)據(jù)被自動(dòng)保存到成果表(圖3)。
以CAD2019版本為例進(jìn)行展點(diǎn),到CAD圖件中查看(圖4);一鍵展點(diǎn)功能快捷方便,大大節(jié)省展繪時(shí)間。
展點(diǎn)完成后,可以把Excel工作簿保存在數(shù)字云集里,在CAD圖測(cè)點(diǎn)上插入超鏈接,鏈接相應(yīng)的工作簿,方便日后查找和使用(圖5)。
根據(jù)導(dǎo)線等級(jí)的要求進(jìn)行小數(shù)取舍可在觀測(cè)表中“保留小數(shù)點(diǎn)位數(shù)”中修改即可(圖6)。
5? 結(jié)束語(yǔ)
在井下測(cè)量工作中,測(cè)量技術(shù)人員要查找導(dǎo)線數(shù)據(jù)資料需查閱相應(yīng)的記錄本,隨著時(shí)間的推移,記錄本、計(jì)算本、成果本的數(shù)量不斷增加,與此同時(shí)查閱導(dǎo)線點(diǎn)的觀測(cè)資料、計(jì)算資料和成果資料所花費(fèi)的時(shí)間也隨之增加;進(jìn)行獨(dú)立計(jì)算和檢核時(shí)由于人為因素,數(shù)據(jù)偶爾會(huì)出現(xiàn)微小差異。利用Excel-VBA宏模塊進(jìn)行內(nèi)業(yè)計(jì)算形象直觀,不易出錯(cuò),且所算數(shù)據(jù)結(jié)果符合測(cè)量規(guī)范數(shù)據(jù)精度的要求。在事先設(shè)計(jì)好的電子表格上輸入觀測(cè)的數(shù)據(jù)和已知數(shù)據(jù),即可實(shí)現(xiàn)內(nèi)業(yè)數(shù)據(jù)自動(dòng)化處理。在CAD中插入相對(duì)應(yīng)測(cè)點(diǎn)的超鏈接Excel,方便以后技術(shù)人員的查看及使用,數(shù)據(jù)的存儲(chǔ)和規(guī)范化可以為將來(lái)建設(shè)數(shù)字化礦山奠定數(shù)據(jù)基礎(chǔ)。
參考文獻(xiàn):
[1]胡浩.基于VBA井斜數(shù)據(jù)批量校正方法[J].錄井工程,2017,28(04):75-78,84,133.
[2]劉歡,彭書強(qiáng).基于Excel VBA的批量數(shù)據(jù)提取工具開(kāi)發(fā)[J].電腦知識(shí)與技術(shù),2019,15(05);196-198.
[3]申仲舒,張盼興,李文杰,吳國(guó)強(qiáng).基于Excel宏開(kāi)發(fā)工具的GPS環(huán)閉合差精度統(tǒng)計(jì)[J].測(cè)繪與空間地理信息,2018,41(11):245-246,251.
[4]梁建雋.VBA編程與函數(shù)應(yīng)用的比較[J].蘭州交通大學(xué)學(xué)報(bào),2012,31(06):94-96.
[5]林豐,湯捷.利用EXCEL函數(shù)及VBA程序?qū)崿F(xiàn)四格表卡方檢驗(yàn)[J].現(xiàn)代醫(yī)院,2012,12(03):142-143.
[6]李娜,武春杰.基于Excel VBA的數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的探究[J].計(jì)算機(jī)與信息技術(shù),2009(06):92-94.
[7]李現(xiàn)科,馬瑩,陶小委.VBA編程技術(shù)在橋梁施工監(jiān)測(cè)中的應(yīng)用[J].河南科技,2019(04):122-124.
[8]劉占云.基于Excel的導(dǎo)線控制測(cè)量的數(shù)據(jù)處理[J]. 國(guó)防交通工程與技術(shù),2019,17(02):76-81.
[9]劉愛(ài)軍.EXCEL VBA在水準(zhǔn)測(cè)量?jī)?nèi)外業(yè)自動(dòng)運(yùn)算中的應(yīng)用[J].江西建材,2019(10):88-89.
[10]闞寧,翟曉宇.VBA在測(cè)量?jī)?nèi)業(yè)工作中的應(yīng)用[C].吉林省土木建筑學(xué)會(huì)學(xué)術(shù)年會(huì),2012.
作者簡(jiǎn)介:周陽(yáng)(1987-),男,云南個(gè)舊人,本科,測(cè)量助理工程師,現(xiàn)從事井下測(cè)量工作。