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