林海,戴相喜
(南京市測繪勘察研究院股份有限公司,江蘇 南京 210019)
EPS地理信息工作站(簡稱EPS平臺),是北京山維科技股份有限公司開發的面向GIS數據生產、處理、建庫更新的測繪與地理信息系統領域專業軟件,目前在國內測繪行業內已廣泛使用。EPS平臺編輯環境采用自有的EDB數據格式,在滿足其他地理信息數據場景應用時,EPS平臺提供了EDB格式轉換為ArcGIS的MDB格式和AutoCAD的DWG格式等輸出接口。目前EPS平臺提供的數據輸出接口受EPS平臺開發環境限制,對單個文件夾下多EDB文件進行批量輸出時,只能進行單進程批處理的數據格式輸出,無法有效發揮計算機配置中CPU多內核可運行多進程處理的效能。
本文利用單臺計算機條件下,EPS平臺支持同時打開多個EPS運行環境并支持DOS命令行參數化調用腳本的特點,嘗試搭建多進程批處理的技術方法,對單個文件夾下多EDB文件進行多進程并行處理,為提高EPS平臺的EDB格式地理信息數據自動化處理效率提供可參考的方法。
搭建多進程批處理的環境,首先需要通過查看Windows操作系統的系統配置,獲取當前計算機CPU的線程總數,以不多于CPU可用線程總數為原則設置多進程開啟數量;依據開啟的多進程數量,新建EPS平臺批處理運行環境的文件夾,將EPS平臺環境文件夾采用多次拷貝方式建立多進程運行環境;依據EPS平臺提供的基于DOS命令行可執行的參數化調用腳本功能,將執行腳本命令行參數和待處理的EDB格式文件按設計的多進程數量依次編輯添加到對應的后綴為“.bat”的單進程批處理文件中;最后匯總編輯一個后綴為“.bat”的多進程批處理文件后,直接啟動匯總多進程執行文件,即可執行多進程批處理操作。
按照上述設計思路,搭建EPS平臺多進程批處理的方案設計流程如圖1所示:
圖1 基于EPS平臺腳本實現地理信息數據多進程批處理的方案設計
依據圖1所示的技術流程,可通過VB、VC等開發語言將自動搭建多進程EPS運行環境文件夾和自動生成后綴為“.bat”的批處理文件過程進行定制開發。
在定制開發中,獲取當前計算機配置的CPU內核數量和線程數可通過調用Windows PowerShell方法實現,具體方法如下:
獲取CPU核數:cpu get numberOfCores CPU線程數:cpu get numberOfLogicalProcessors
編輯后綴為“.bat”的執行文件中,基于DOS命令行進行EPS平臺腳本參數化調用的方法如下:
X:EPSPatheps.exe/runscipt “X:EDBFilePathEDBFileName” “.ScriptPathScriptName” /showwindows “hide” /autoexit
需要注意的是執行的EPS腳本中不能包含彈出對話框、文件路徑選擇等人機交互操作命令。
本次試驗選擇的數據為基于EPS平臺生產的南京市 1∶1 000基礎地形圖EDB格式成果數據,每個EDB文件中均包含涉及面積約 5 km2的點、線、面和注記等地形要素。試驗的內容是對單個文件夾下多EDB文件數據進行批處理轉換至MDB和DWG,并將轉換后的MDB數據再轉換至EDB格式。試驗的目的是對相同的數據源,選取不同計算機配置進行單進程和多進程批處理數據轉換,以及相同計算機配置條件下不同數據源的多進程批處理數據轉換,通過對各種運行環境下數據批處理的運行效率對比分析,驗證多進程批處理的可行性和獲取不同計算機配置對多進程批處理的運行效率的影響程度。
本試驗共選取了3臺不同配置的計算機,配置情況如表1所示:
測試計算機配置表 表1
本試驗采用了EPS平臺自帶的單進程批處理腳本運行方式,主要測試不同計算機配置對批處理運行效率的影響程度。通過對49個EDB文件(地形圖數據涉及面積約 240 km2)分別進行EDB轉換DWG、EDB轉換MDB和MDB轉換EDB三種轉換方式,測試的結果如表2所示:
不同計算機配置的單進程批處理運行效率對比 表2
由以上測試數據可知,選擇單線程進行EDB數據轉換DWG批處理時,計算機配置固態硬盤運行效率明顯優于機械硬盤,其余兩項轉換效率差異不明顯。
本試驗采用定制開發搭建的多進程批處理環境,通過執行基于DOS命令行配置的批處理程序,同時運行多個EPS環境并采用參數化調用EPS腳本執行多進程數據批量轉換,測試相同數據源、相同測試內容和相同計算機配置條件下的多進程批處理數據轉換運行效率對比。選取49個EDB文件進行不同計算機配置和進程數的測試的結果如表3所示:
由測試數據可知,編號為B的測試計算機三項批處理數據轉換運行效率均優于其余兩臺,依據表1的計算機配置分析,計算機的CPU主頻、線程數和固態硬盤配置有利于提升多進程批處理的運行效率。
不同計算機配置和進程數的多進程批處理運行效率對比 表3
選擇編號為B的計算機配置,選取其他測試數據并增加文件個數和數據量,驗證多進程批處理的運行效率,測試的結果如表4所示:
由以上測試數據可知,采用多進程批處理方式進行基于EPS平臺的數據格式轉換,單個面積約 5 km2的地形圖EDB數據各項轉換平均耗時基本穩定。
相同計算機配置不同數據源的多進程批處理運行效率對比 表4
根據以上各項測試結果,以編號為B的測試計算機獲取的各項測試數據為依據,比較分析單進程和多進程批處理運行的結果如圖2所示:
圖2 單進程與多進程的批處理運行效率對比
由圖2運行效率對比可知,在相同計算機配置環境下采用多進程批處理轉換時,單個文件轉換的平均耗時較單進程批處理提升效率明顯;采用8個進程批處理時,文件個數遞增后單個文件平均轉換耗時趨于穩定。
綜合以上各項數據分析,可得出以下結論:
(1)單進程批處理轉換時,計算機的配置對批處理轉換運行效率提升影響不明顯;
(2)采用多進程批處理時,單個文件轉換的運行效率與計算機配置相關,提高CPU主頻和使用固態硬盤有利于提升數據轉換的運行效率;
(3)相同計算機配置下多進程批處理數據轉換較單進程運行效率提升明顯;
(4)相同計算機配置的多進程環境下文件數增減對單個文件平均轉換耗時影響不明顯。
隨著EPS平臺在基礎測繪領域的廣泛應用,基于EPS平臺編輯的基礎地理信息數據作為一種可選的數據源。通過數據挖掘、分類提取和與其他應用場景共享數據等擴展應用時,如何利用EPS平臺提供的腳本語言二次開發實現快速高效的數據處理和數據轉換,本文提供的多進程批處理方法是一種可參考的技術方案。