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