林海,戴相喜
(南京市测绘勘察研究院股份有限公司,江苏 南京 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平台提供的脚本语言二次开发实现快速高效的数据处理和数据转换,本文提供的多进程批处理方法是一种可参考的技术方案。