发明名称 基于OGR的shapefile文件主从式并行写方法
摘要 本发明属于高性能地理计算领域,公开了基于OGR的shapefile文件主从式并行写方法。其步骤为:步骤1:输入命令行参数;步骤2:串行的方式创建shapefile目标数据源和图层文件,关闭目标数据源文件;步骤3:打开要处理的shapefile原文件,获取shapefile的各图层及其图形数据量;步骤4:MPI并行初始化,获取进程的编号和数量,并设定主从进程;步骤5:进行数据划分,确定每个从进程处理的shapefile文件中图形的起始FID和终止FID;步骤6:各从进程进入shapefile数据处理。本发明充分利用了计算资源,提高了shapefile文件处理的整体效率。
申请公布号 CN102591709A 申请公布日期 2012.07.18
申请号 CN201110441737.3 申请日期 2011.12.27
申请人 南京大学 发明人 蒲英霞;靳志宾;陈振杰;李飞雪;陈冲;姜晓慧;李满春;黄秋昊
分类号 G06F9/46(2006.01)I 主分类号 G06F9/46(2006.01)I
代理机构 南京知识律师事务所 32207 代理人 蒋海军
主权项 基于OGR的shapefile文件主从式并行写方法,其步骤为:步骤1:输入命令行参数:mpirun  ‑np 8  hpgc_para_O  ‑l Changsha ~/data/changsha.shp  ~/data/test_result.img ;步骤2:串行的方式创建shapefile目标数据源和图层文件,然后关闭目标数据源文件;创建shapefile目标数据源文件之前要首先获取OGR库中“ESRI Shapefile”格式的driver,通过driver的CreateDataSource()方法来创建shapefile目标数据源文件,再通过图层的CreateLayer()方法来创建目标数据源的图层文件;最后关闭目标数据源文件;步骤3:打开要处理的shapefile原文件,获取shapefile的各图层和各图层的图形数据量;首先调用OGR库中的OGRSFDriverRegistrar::Open()打开shpefile原文件,然后使用GetLayerByName()函数来获取图层,最后通过GetFeatureCount()来获取各图层的图形数据量;步骤4:MPI并行初始化,获取进程的编号和数量,并设定主从进程;调用MPI函数库的MPI_Init()函数并行初始化,调用MPI_Comm_rank()函数获取进程编号,调用MPI_Comm_size()获取进程的数量;设定0进程为主进程,非0进程为从进程;步骤5:根据从进程数量和原shapefile文件图层的图形数据数量进行数据划分,确定每个从进程处理的shapefile文件中图形的起始FID和终止FID;步骤6:各从进程进入shapefile数据处理,首先完成shapefile数据处理的从进程发送数据处理完毕消息给主进程,主进程接到消息后发送给该进程进入写操作指令,同时其它进程仍然进行各自的数据处理操作,但不能进入写操作;当进入写操作的从进程写操作完成后,发送写完成信息给主进程,主进程接到写完成消息后再依次调度其它完成shapefile数据处理的从进程进入写操作,直到其它进程完成自己的所有数据处理任务和写操作。
地址 210093 江苏省南京市鼓楼区汉口路22号