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