趙宏喜
(甘肅省水利水電勘測設(shè)計(jì)研究院有限責(zé)任公司,甘肅 蘭州 730000)
測繪是一門以數(shù)據(jù)為基礎(chǔ),通過不同形式的表達(dá)方式來體現(xiàn)物體空間關(guān)系和屬性的綜合學(xué)科,而測繪斷面是一種圖紙化的表達(dá)方式,斷面繪圖采用原始采集的中樁坐標(biāo),通過計(jì)算兩點(diǎn)之間的距離和該兩點(diǎn)的高程,可以直觀地表達(dá)地形、地勢的變化。通過簡單的計(jì)算機(jī)編程可以輕松實(shí)現(xiàn)對(duì)大量野外采集地物點(diǎn)坐標(biāo)的計(jì)算,并通過設(shè)置閾值和限差實(shí)現(xiàn)粗差的探測,將可能出現(xiàn)的數(shù)據(jù)錯(cuò)誤消滅在初始計(jì)算階段。同時(shí)可以計(jì)算得到斷面的樁號(hào)和高程數(shù)據(jù)格式,并根據(jù)不同的繪圖軟件將其整理成繪圖格式,即可輕松實(shí)現(xiàn)斷面圖的繪制。Microsoft Excel作為一款以數(shù)據(jù)處理為主的辦公軟件,在各行各業(yè)的數(shù)據(jù)統(tǒng)計(jì)和分析工作中發(fā)揮著極其重要的作用,雖然Microsoft Excel已經(jīng)集成了數(shù)學(xué)計(jì)算常用的公式和模塊,但是對(duì)于測繪這樣一個(gè)數(shù)據(jù)量大、公式模型復(fù)雜的行業(yè)來說,很有必要對(duì)Microsoft Excel進(jìn)行有效的二次開發(fā),而Excel VBA則給用戶提供了這樣的一個(gè)開發(fā)平臺(tái)。Visual Basic For Application(VBA)是一款自動(dòng)化的計(jì)算機(jī)編程語言,它以Visual Basic(VB)為基礎(chǔ),經(jīng)過修改并運(yùn)行在Microsoft Office環(huán)境中的應(yīng)用程序,利用VBA可以為用戶定制特殊的自定義解決方案[1]。在Microsoft Excel中編輯公式廣泛應(yīng)用于測量行業(yè),但是在Microsoft Excel公式欄輸入特定的計(jì)算公式也存在一定的局限性,例如計(jì)算表中行列數(shù)量有限,不能滿足不同規(guī)模的測量工程計(jì)算,而且在用戶使用的過程中誤刪除行或列都有可能造成之后公式的疊加錯(cuò)誤,沒有很好的錯(cuò)誤預(yù)警機(jī)制。Excel VBA則不受測量數(shù)據(jù)數(shù)量的限制,而且可以智能檢查出測量數(shù)據(jù)粗差,這一人機(jī)交互的雙向核實(shí)保證了計(jì)算結(jié)果的準(zhǔn)確性和可靠性。本文正是利用Excel VBA的這一優(yōu)勢將所用測量公式內(nèi)嵌于加載宏中,完成了水利測量中復(fù)雜的數(shù)據(jù)計(jì)算和數(shù)據(jù)文件的導(dǎo)入導(dǎo)出等繁多的操作步驟,不但簡化操作程序、提高測量目標(biāo)數(shù)據(jù)生產(chǎn)效率,而且更重要的是保證了數(shù)據(jù)計(jì)算結(jié)果的可靠性、準(zhǔn)確性、規(guī)范性以及可延展性。
水利測量作為測量行業(yè)的一個(gè)重要方向,在國民經(jīng)濟(jì)發(fā)展和生態(tài)建設(shè)中起著舉足輕重的作用。水利工程計(jì)算都要以測量數(shù)據(jù)為基礎(chǔ),所以測量數(shù)據(jù)的準(zhǔn)確性就是水利設(shè)計(jì)、施工、運(yùn)營管理的決定性因素之一。測量斷面數(shù)據(jù)作為水利工程設(shè)計(jì)中常用的基礎(chǔ)依據(jù),主要用來估算土方量、計(jì)算庫容、計(jì)算流量、設(shè)計(jì)河道防洪標(biāo)準(zhǔn)等。輸水管線的橫截面,稱為橫斷面,通常以縱斷面中心樁為準(zhǔn),在輸水中線的垂直方向兩側(cè)工程用地范圍內(nèi),測定其地形截面所得的斷面圖,據(jù)以進(jìn)行水利施工設(shè)計(jì)及計(jì)算土方量等工作。橫斷面設(shè)計(jì)依據(jù):(1)用地寬度,輸水管線工程實(shí)際需用地的寬度,須依渠道基高、基寬、邊溝、邊坡及渠道的附屬設(shè)施等確定,預(yù)估保留的土地,依輸水路線所經(jīng)地帶的人口、產(chǎn)業(yè)、工商業(yè)發(fā)展及交通等各項(xiàng)因素而定;(2)輸水管線寬度,依據(jù)輸水規(guī)模設(shè)計(jì)占用實(shí)地寬度;(3)渠道邊坡,依渠道分級(jí)、地形狀況、地質(zhì)優(yōu)劣及穩(wěn)固性而定;(4)邊溝,挖方渠道段及填土高度不足0.5米的渠段均須設(shè)置邊溝;(5)截水溝,泄水量很大或大挖方平臺(tái),均應(yīng)設(shè)置截水溝以防護(hù)原有坡面及挖方坡面的穩(wěn)定。
橫斷面設(shè)計(jì)程序集成了水利測量中常用的測量數(shù)據(jù)處理模塊,將不同功能的計(jì)算表格集成到一起,使內(nèi)業(yè)處理人員能夠方便快捷地找到計(jì)算需要的表格,進(jìn)而規(guī)范和統(tǒng)一了不同測繪項(xiàng)目在歸檔提交時(shí)計(jì)算表格式的不統(tǒng)一。主要的計(jì)算模塊(如圖1所示):
圖1 橫斷面主要的計(jì)算模塊
輸水管線測量所涉及的路線長度一般較長,短的有幾十千米,長的甚至上百千米。如果每一條橫斷面都用測量儀器到實(shí)地實(shí)測,工作量非常大且并不切實(shí)際,所以一般在測量上使用估測結(jié)合實(shí)測的方法進(jìn)行測量。在高差較小的地方使用估測,在高差較大或者地物比較重要的地方使用皮尺或者鋼卷尺實(shí)測高差,這樣就采集了以平距、高差、地物屬性形式表示的測量斷面原始記錄數(shù)據(jù)。但在已經(jīng)獲得大比例尺地形圖的區(qū)域可以采用圖切坐標(biāo)和高程形式表示的橫斷面記錄文件,例如在南方CASS軟件中通過截取斷面線坐標(biāo)和判讀高程的方法來獲得斷面數(shù)據(jù),這種方法已經(jīng)比較成熟,被多數(shù)測繪專業(yè)人員推廣和使用[2]。
以上兩種方法獲得的斷面記錄文件少則幾十個(gè),多則成百上千個(gè),如果全部由人工推算的話將花費(fèi)大量的時(shí)間并可能出現(xiàn)公式編輯錯(cuò)誤,所以可利用計(jì)算機(jī)編程批量地將這些測量數(shù)據(jù)導(dǎo)入到Microsoft Excel表格中進(jìn)行相應(yīng)地計(jì)算。通過文件批處理解決了這些復(fù)雜地機(jī)械化操作,本操作程序設(shè)計(jì)顯著提高了內(nèi)業(yè)數(shù)據(jù)處理速度和精度,從而大大提高了成圖效率。同時(shí)本程序附帶了拓普康全站儀數(shù)據(jù)轉(zhuǎn)化和三角高程平差格式文件生成兩個(gè)模塊,在實(shí)際的測量計(jì)算中簡單而實(shí)用。本程序操作界面使用了人機(jī)交互式的風(fēng)格,使用者只需按照界面提示,流水線式地進(jìn)行按鈕點(diǎn)擊操作即可完成計(jì)算,模塊運(yùn)行界面設(shè)計(jì)美觀大方。
甘肅省引洮供水工程是具有綜合利用功能的大型跨流域調(diào)水工程,分為九甸峽水利樞紐和引洮供水工程兩部分,受益區(qū)總面積1.97萬平方千米,惠及甘肅省蘭州、定西、白銀、平?jīng)觥⑻焖?個(gè)市轄屬的會(huì)寧、靜寧、榆中、武山、渭源、甘谷、臨洮、通渭、隴西、秦安、安定等11個(gè)國家扶貧重點(diǎn)縣(區(qū)),160個(gè)鄉(xiāng)鎮(zhèn),總?cè)丝诩s425萬人,工程分兩期建設(shè)。引洮二期八干渠自總干末端大山川分水,渠線沿祖厲河與葫蘆河的分水嶺向北,經(jīng)會(huì)寧縣平頭川、大溝、土木峴至劉寨結(jié)束,線路總長71.782千米,線路以隧洞為主。下設(shè)兩條分干渠,主要向會(huì)寧東部供水。沿線分別通過一分干、二分干向會(huì)寧的韓集和掌里兩個(gè)供水點(diǎn)供水,控制會(huì)寧東部16個(gè)鄉(xiāng)(鎮(zhèn))的全部的城鎮(zhèn)人口、工業(yè)企業(yè)、農(nóng)村人畜用水,控制灌溉面積9.6萬畝。
在引洮二期八干渠工程中應(yīng)用本程序進(jìn)行了斷面的數(shù)據(jù)計(jì)算工作,簡化了測量計(jì)算步驟,顯著提高了工作效率。引洮二期八干渠工程中明渠和倒虹吸測段均實(shí)測了1∶2000比例尺地形圖,為斷面數(shù)據(jù)地獲取提供了基礎(chǔ)數(shù)據(jù),內(nèi)業(yè)人員按照設(shè)計(jì)布置的縱斷面線,在地形圖上按照坐標(biāo)、高程的形式截取橫斷面數(shù)據(jù),形成“點(diǎn)名,東坐標(biāo),北坐標(biāo),高程”的文本文件。該文件是在純西文輸入法狀態(tài)下編輯,形成一個(gè)多條橫斷面原始文本文件*.txt,文本中間不要有空格,每條斷面數(shù)據(jù)間用4個(gè)A隔開。示例如下:依橫斷面觀測順序順次輸入橫斷面各點(diǎn)坐標(biāo),從第一條橫斷端點(diǎn)開始,當(dāng)左側(cè)數(shù)據(jù)輸入完成后,輸入橫斷面中樁數(shù)據(jù),然后輸入橫斷面右側(cè)數(shù)據(jù),格式為Y或Z(Z代表左側(cè)點(diǎn),Y代表右側(cè)點(diǎn)),Y坐標(biāo),X坐標(biāo),H高程等純數(shù)字。0+000代表縱斷面上的中樁里程,每條橫斷面各參數(shù)輸入完后,最后一行需要輸入4個(gè)A,表示1條斷面數(shù)據(jù)輸入完成,當(dāng)所有斷面數(shù)據(jù)輸入完成后保存退出即可。具體格式如下:
將圖切的橫斷面*.DAT文件全部放在計(jì)算表格的同目錄下,然后運(yùn)行程序即可自動(dòng)完成搜索文件、導(dǎo)入數(shù)據(jù)、公式計(jì)算、統(tǒng)計(jì)輸出等工作,對(duì)復(fù)雜繁多的橫斷面數(shù)據(jù)處理功效隨數(shù)據(jù)量增加而顯著提高,達(dá)到事半功倍的效果。針對(duì)縱斷面上0+000里程樁的橫斷面進(jìn)行了示范,程序運(yùn)行的結(jié)果數(shù)據(jù)(如表1所示):
表1 程序運(yùn)行結(jié)果數(shù)據(jù)
程序運(yùn)行結(jié)束后,會(huì)在原始數(shù)據(jù)同目錄下生成適合不同成圖商業(yè)軟件格式的斷面數(shù)據(jù),如適合ZDMDraw軟件的*.DAT格式文件,適合南方CASS軟件的*.HDM文件等,同時(shí)會(huì)生成斷面的條數(shù)、長度等統(tǒng)計(jì)文件,繪圖數(shù)據(jù)可以在ZDM Draw或南方CASS軟件下進(jìn)行各種比例尺斷面圖的繪制,繪圖生成的橫斷面圖最終樣式(如圖2所示)。
圖2 橫斷面圖最終樣式
本程序關(guān)鍵代碼如下所示,主要用于計(jì)算縱斷面某樁號(hào)處的橫斷面數(shù)據(jù),如左右距離、高程,并生成特定格式的作圖原始數(shù)據(jù)。限于篇幅,本文只是給出了推算間距的部分程序代碼[3,4],如下所示:
本程序基于Excel VBA這一可視化的編程平臺(tái)完成了對(duì)縱橫斷面數(shù)據(jù)的處理,采用人機(jī)交互式的操作界面使用戶能夠直觀快速操作本程序,大大提高了測繪斷面數(shù)據(jù)處理的效率。本文正是基于將大量的公路、水利、電力、管線等工程定線時(shí)的橫斷面測量數(shù)據(jù)進(jìn)行整理、計(jì)算、分析,得到最終的成圖數(shù)據(jù),在很大程度上提高了斷面的成圖效率和做圖精度。由于時(shí)間關(guān)系,本程序的設(shè)計(jì)仍然存在一些缺陷,例如,對(duì)于加設(shè)有彎道要素的縱橫斷面數(shù)據(jù)計(jì)算無法進(jìn)行,無法調(diào)用Autodesk CAD腳本文件直接進(jìn)行簡單方量斷面圖的繪制等[5]。對(duì)彎道斷面數(shù)據(jù)需要人工計(jì)算干預(yù),這也是本程序在以后的工作中需要不斷研究提高和補(bǔ)充的部分??紤]到測量坐標(biāo)計(jì)算的邊長和實(shí)地邊長還有部分差值,所以在后續(xù)的編程開發(fā)中應(yīng)該考慮邊長的投影變形,將高斯反算的邊長通過計(jì)算當(dāng)?shù)乜s放系數(shù)將高斯邊長歸化到實(shí)地邊長,這樣在實(shí)際的施工放樣中才能消除由于長度變形引起的誤差。