摘要:為提高河道斷面測(cè)量數(shù)據(jù)處理效率,減少人工干預(yù),提升成果質(zhì)量,以荊江險(xiǎn)工河段堤防斷面測(cè)量數(shù)據(jù)為例,基于EPS腳本編寫了斷面測(cè)量數(shù)據(jù)批量自動(dòng)化處理程序。結(jié)果表明:基于EPS的VBScript腳本語(yǔ)言二次開發(fā)可有效提升斷面測(cè)量數(shù)據(jù)處理的效率和成果質(zhì)量,可實(shí)現(xiàn)斷面起點(diǎn)距批量計(jì)算、數(shù)據(jù)檢查、代碼替換等全程優(yōu)化作業(yè)。
關(guān)鍵詞:EPS腳本二次開發(fā); 河道斷面測(cè)量; 水文測(cè)驗(yàn)
中圖法分類號(hào):TV82文獻(xiàn)標(biāo)志碼:ADOI:10.15974/j.cnki.slsdkb.2024.S2.030
文章編號(hào):1006-0081(2024)S2-0112-03
0引言
腳本語(yǔ)言是為了縮短編寫-編譯-鏈接-運(yùn)行過(guò)程而創(chuàng)建的計(jì)算機(jī)編程語(yǔ)言,其過(guò)程通常是解釋執(zhí)行而非編譯,具有簡(jiǎn)單、易學(xué)、易用的特性。EPS地理信息工作站是面向GIS數(shù)據(jù)生產(chǎn)、處理、建庫(kù)更新的測(cè)繪與地理信息系統(tǒng)領(lǐng)域?qū)I(yè)軟件,目前支持C++、C# 等編程語(yǔ)言,以及VBScript/JScript等腳本語(yǔ)言開發(fā),主要可實(shí)現(xiàn)EPS地理信息系統(tǒng)數(shù)據(jù)整理、數(shù)據(jù)轉(zhuǎn)換處理等。EPS腳本以*.VBS或*.JS為擴(kuò)展名,采用文本文件格式存儲(chǔ),無(wú)需編譯即可在EPS平臺(tái)中以菜單、工具按鈕或命令行方式執(zhí)行,對(duì)擴(kuò)展程序功能,局部程序功能進(jìn)行修改操作簡(jiǎn)便。EPS腳本實(shí)現(xiàn)了多項(xiàng)測(cè)繪常用數(shù)據(jù)處理方法,并可封裝為函數(shù),用戶進(jìn)行二次開發(fā)時(shí)可直接調(diào)用,不必再次編寫實(shí)現(xiàn)過(guò)程,減少工作量,大大提高了編程速度。
河道固定斷面測(cè)量是測(cè)繪工作的一項(xiàng)重要內(nèi)容,固定斷面的數(shù)據(jù)格式和圖形樣式多根據(jù)使用者需要而定,沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)要求。使用EPS腳本語(yǔ)言編寫固定斷面程序,可以直接引用EPS腳本語(yǔ)言封裝函數(shù),在基本固定斷面程序上進(jìn)行二次開發(fā)即可,能滿足不同用戶的需要。本文以荊江險(xiǎn)工河段堤防斷面測(cè)量數(shù)據(jù)處理為例,基于EPS腳本編寫斷面測(cè)量數(shù)據(jù)批量自動(dòng)化處理程序,旨在提高斷面測(cè)量數(shù)據(jù)處理效率。
1二次開發(fā)
SSProcess是平臺(tái)常用數(shù)據(jù)處理接口,是與EPS地理信息工作站交互的主要入口,提供的操作、功能主要包括工程管理、選擇集操作、圖形編輯操作、數(shù)據(jù)整理、數(shù)據(jù)轉(zhuǎn)換、坐標(biāo)體系轉(zhuǎn)換和系統(tǒng)設(shè)置等,固定斷面程序二次開發(fā)主要利用該接口提供的函數(shù)進(jìn)行編寫。程序編寫主要流程包括三維空間點(diǎn)及屬性數(shù)據(jù)、斷面屬性數(shù)據(jù)導(dǎo)入,斷面測(cè)量數(shù)據(jù)處理、斷面圖繪制及編輯等,詳見(jiàn)圖1。
1.1測(cè)點(diǎn)數(shù)據(jù)導(dǎo)入及編輯
測(cè)點(diǎn)數(shù)據(jù)導(dǎo)入及編輯主要包括外業(yè)測(cè)量的斷面點(diǎn)導(dǎo)入EPS地理信息工作站,斷面點(diǎn)屬性數(shù)據(jù)的導(dǎo)入及編輯。固定斷面陸上外業(yè)測(cè)量目前多采用全站儀和RTK測(cè)記方式,水下多采用GNSS定位、單波束測(cè)深儀測(cè)深方式。為了方便數(shù)據(jù)處理和查詢,不同測(cè)量方式、不同記錄格式的固定斷面測(cè)量數(shù)據(jù)導(dǎo)入屬性應(yīng)包括:測(cè)點(diǎn)號(hào)、X、Y、Z、測(cè)點(diǎn)屬性說(shuō)明編碼、測(cè)點(diǎn)精度、測(cè)量時(shí)間等內(nèi)容。導(dǎo)入時(shí)應(yīng)對(duì)測(cè)量精度值不高的測(cè)點(diǎn)進(jìn)行處理,可以把測(cè)點(diǎn)屬性說(shuō)明換成標(biāo)準(zhǔn)的測(cè)點(diǎn)屬性說(shuō)明。EPS地理信息工作站的基本數(shù)據(jù)導(dǎo)入功能如果不能滿足斷面測(cè)量多源數(shù)據(jù)導(dǎo)入要求,需要用EPS腳本語(yǔ)言的CreateNewObj函數(shù)來(lái)創(chuàng)造點(diǎn)對(duì)象,完成測(cè)點(diǎn)信息導(dǎo)入工作。該函數(shù)的功能強(qiáng)大,導(dǎo)入的測(cè)點(diǎn)信息可以在EPS地理信息工作站界面上顯示、修改、編輯,導(dǎo)入的點(diǎn)對(duì)象存放在EPS地理信息系統(tǒng)的數(shù)據(jù)庫(kù)中,方便對(duì)測(cè)點(diǎn)進(jìn)行管理和運(yùn)用。
1.2固定斷面信息錄入
固定斷面信息主要包括左右端點(diǎn)坐標(biāo)、斷面測(cè)量時(shí)間、斷面方位角、斷面測(cè)時(shí)水位等信息,這些信息可統(tǒng)一錄入EPS圖形文件中,在錄入后也可對(duì)水位、測(cè)量時(shí)間等內(nèi)容進(jìn)行編輯修改。程序編寫利用EPS腳本語(yǔ)言的CreateNewObj函數(shù)創(chuàng)建線對(duì)象,與創(chuàng)建點(diǎn)對(duì)象不同的是創(chuàng)建線對(duì)象時(shí)需增加一個(gè)端點(diǎn),增加擴(kuò)展屬性用來(lái)存儲(chǔ)斷面水下、陸上測(cè)量時(shí)間、斷面水位等內(nèi)容。
1.3斷面測(cè)量數(shù)據(jù)處理
斷面測(cè)點(diǎn)和斷面信息文件需錄入到EPS地理信息工作站,經(jīng)檢查無(wú)誤后就可進(jìn)行斷面測(cè)量數(shù)據(jù)處理工作。程序編寫中使用了函數(shù)SearchNearObj,這是EPS腳本語(yǔ)言高度集成的一個(gè)固定斷面處理函數(shù),可以快速搜索斷面上的測(cè)點(diǎn)并計(jì)算測(cè)點(diǎn)相對(duì)于斷面端點(diǎn)的距離,即起點(diǎn)距。
固定斷面測(cè)量數(shù)據(jù)處理使用SSProcess.XYSA函數(shù),實(shí)現(xiàn)了平面坐標(biāo)與極坐標(biāo)的相互轉(zhuǎn)換,開發(fā)過(guò)程中直接調(diào)用此函數(shù)計(jì)算更方便,程序更緊湊。程序中搜尋斷面上測(cè)點(diǎn)和計(jì)算測(cè)點(diǎn)起點(diǎn)距都使用了該函數(shù)。
固定斷面測(cè)量數(shù)據(jù)處理還調(diào)用了SortArrayByValue函數(shù)。該函數(shù)可實(shí)現(xiàn)多維數(shù)組排序,多維數(shù)組排序是固定斷面測(cè)量程序二次開發(fā)中最為復(fù)雜的部分,在斷面測(cè)量數(shù)據(jù)起點(diǎn)距計(jì)算之后的測(cè)點(diǎn)排序,查找斷面最深點(diǎn)都可調(diào)用,降低了二次開發(fā)難度。
1.4斷面圖生成
EPS地理信息工作站是一款繪圖工具,用EPS腳本語(yǔ)言的CreateNewObj函數(shù)來(lái)創(chuàng)建點(diǎn)對(duì)象、線對(duì)象、面對(duì)象和標(biāo)注對(duì)象,SetNewObjValue函數(shù)設(shè)置對(duì)象屬性,如代碼、層、顏色等,最后調(diào)用AddNewObjPoint,AddNewObjLine,AddNewObjArea,AddNewObjNote函數(shù)將創(chuàng)建的對(duì)象添加到數(shù)據(jù)庫(kù)中保存,完成對(duì)象的創(chuàng)建(圖2),如此循環(huán)逐個(gè)創(chuàng)建生成斷面圖所需的對(duì)象就可以完成斷面圖的繪制。
斷面圖樣式目前沒(méi)有統(tǒng)一規(guī)定,多是根據(jù)甲方需要來(lái)作圖,主要包括坐標(biāo)軸、測(cè)點(diǎn)及斷面線展繪、斷面測(cè)量及相關(guān)信息標(biāo)注等內(nèi)容,需根據(jù)圖幅大小及其他具體要求一一確定。其中較為復(fù)雜的是斷面縱橫比例尺的計(jì)算,通常有縱橫比例尺一致的,但大多不一致,也有采用固定比例尺繪制斷面圖的,繪圖時(shí)先根據(jù)縱橫比例計(jì)算圖形縮放比例系數(shù),程序中給定一個(gè)參數(shù)即可。另外,斷面圖是在EPS地理信息系統(tǒng)中生成的圖形,類似于地形圖,生成的斷面圖可加載多測(cè)次歷史數(shù)據(jù)對(duì)比,本測(cè)次的異常點(diǎn)結(jié)合測(cè)點(diǎn)信息可進(jìn)行數(shù)據(jù)合理性檢查。
1.5選擇集操作
選擇集是EPS地理信息工作站的功能之一,可對(duì)圖形數(shù)據(jù)進(jìn)行批量處理,對(duì)圖形中的任何一個(gè)屬性數(shù)據(jù)進(jìn)行選擇操作,可根據(jù)編碼、顏色、線形、分層、創(chuàng)建時(shí)間等指定屬性進(jìn)行選擇和處理。EPS腳本語(yǔ)言提供SSProcess接口,方便用戶二次開發(fā)時(shí)調(diào)用,通過(guò)該接口,用戶可編寫程序?qū)崿F(xiàn)選擇集的各種操作功能。固定斷面程序在對(duì)每個(gè)斷面的點(diǎn)、線、面、注記對(duì)象以及對(duì)象屬性進(jìn)行操作時(shí)都要用到選擇集操作,遵循先選擇對(duì)象或?qū)傩赃M(jìn)入選擇集,后對(duì)選擇集內(nèi)容進(jìn)行操作的原則,選擇集的靈活應(yīng)用是加工數(shù)據(jù)、編輯屬性、生成圖形、編輯圖形的基礎(chǔ),而且操作極為頻繁,也是二次開發(fā)中的常用功能和最為重要的基礎(chǔ)操作。
2應(yīng)用案例
荊江險(xiǎn)工河段堤防固定斷面測(cè)量項(xiàng)目要求40 m施測(cè)一個(gè)斷面,陸上寬300 m,水下寬400 m,沿長(zhǎng)江岸長(zhǎng)5 km,斷面按1∶500比例尺測(cè)量,測(cè)點(diǎn)間距不超過(guò)5 m。實(shí)際外業(yè)固定斷面陸上測(cè)量采用RTK方式,測(cè)點(diǎn)屬性采用簡(jiǎn)易代碼標(biāo)識(shí),水下測(cè)量采用GNSS定位配單波束測(cè)深儀一體化測(cè)量方式,其他按照技術(shù)要求執(zhí)行。
每日陸上測(cè)量結(jié)束后把測(cè)點(diǎn)導(dǎo)出成CSV格式文件,內(nèi)容包括:測(cè)點(diǎn)號(hào)、X、Y、Z、測(cè)點(diǎn)屬性編碼、測(cè)點(diǎn)測(cè)量精度等。測(cè)點(diǎn)號(hào)按日期+測(cè)員代碼+測(cè)點(diǎn)序號(hào)編寫,方便以后查詢;水下數(shù)據(jù)經(jīng)水位推算后處理成(X,Y,Z)三維數(shù)據(jù),同陸上一樣轉(zhuǎn)為CSV格式文件。CSV數(shù)據(jù)文件通過(guò)固定斷面測(cè)點(diǎn)導(dǎo)入子程序,并導(dǎo)入到EPS地理信息系統(tǒng),測(cè)點(diǎn)屬性通過(guò)固定斷面子程序在數(shù)據(jù)導(dǎo)入階段統(tǒng)一替換成標(biāo)準(zhǔn)的測(cè)點(diǎn)屬性說(shuō)明,經(jīng)過(guò)腳本處理后,格式整理為“斷面號(hào)+起點(diǎn)距+高程+測(cè)點(diǎn)說(shuō)明+點(diǎn)名”這樣的標(biāo)準(zhǔn)斷面格式。
先在文本編輯器內(nèi)輸入斷面信息,斷面測(cè)量時(shí)間和測(cè)時(shí)水位在數(shù)據(jù)導(dǎo)入之后可以繼續(xù)修改,導(dǎo)入之前必須保證斷面名、斷面左右端點(diǎn)等信息無(wú)誤,編輯完成后斷面信息保存為CSV格式,用固定斷面信息導(dǎo)入子程序,導(dǎo)入EPS地理信息系統(tǒng)。數(shù)據(jù)導(dǎo)入完成后進(jìn)行合理性數(shù)據(jù)檢查。
合理性檢查內(nèi)容包括:① 通過(guò)和歷史固定斷面測(cè)量數(shù)據(jù)平面位置對(duì)比、測(cè)點(diǎn)高程對(duì)比、測(cè)點(diǎn)說(shuō)明屬性對(duì)比等進(jìn)行檢查;② 通過(guò)對(duì)RTK定位精度不高的點(diǎn)高亮顯示檢查測(cè)點(diǎn)的可靠性;③ EPS地理信息系統(tǒng)內(nèi)調(diào)入衛(wèi)星圖作為底圖檢查測(cè)點(diǎn)平面位置準(zhǔn)確性及測(cè)點(diǎn)屬性說(shuō)明正確性等,特別是特征地物、地貌如公路邊、護(hù)坡邊、溝、堤、水邊、房邊等采用此種檢查方式可排除大多數(shù)錯(cuò)漏。
合理性檢查無(wú)誤后調(diào)用固定斷面測(cè)量數(shù)據(jù)處理子程序生成并展繪斷面測(cè)量數(shù)據(jù)點(diǎn),再用固定斷面圖生成程序繪制斷面圖,斷面圖內(nèi)可套繪多測(cè)次歷史成果,靈活應(yīng)用選擇集、軟件編輯功能對(duì)斷面圖進(jìn)行檢查、清繪,形成最終成果。
3結(jié)語(yǔ)
本研究通過(guò)對(duì)EPS地理信息工作站腳本語(yǔ)言進(jìn)行二次開發(fā),實(shí)現(xiàn)了從測(cè)點(diǎn)數(shù)據(jù)導(dǎo)入至河道斷面圖繪制的全部功能。程序開發(fā)難度低,開發(fā)速度快;編寫的程序功能完善、擴(kuò)展性強(qiáng)。在數(shù)據(jù)合理性檢查、圖形清繪階段還可利用軟件自帶功能實(shí)現(xiàn)人機(jī)交互,便于查找數(shù)據(jù)錯(cuò)漏,提高成圖質(zhì)量。
(編輯:江文)