[发明专利]基于OGR的shapefile文件主从式并行写方法有效
申请号: | 201110441737.3 | 申请日: | 2011-12-27 |
公开(公告)号: | CN102591709A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 蒲英霞;靳志宾;陈振杰;李飞雪;陈冲;姜晓慧;李满春;黄秋昊 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 蒋海军 |
地址: | 210093 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 ogr shapefile 文件 主从 并行 方法 | ||
1.基于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数据处理的从进程进入写操作,直到其它进程完成自己的所有数据处理任务和写操作。
2.根据权利要求1所述的基于OGR的shapefile文件主从式并行写方法,其特征在于步骤5中对shapefile文件数据的划分方法,把原数据划分成多个数据集,再用多个进程循环地处理和写入多个数据集,以减少单个进程一个循环过程中处理的数据的粒度,提高进程间并行的时间,从而提高并行处理的效率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110441737.3/1.html,转载请声明来源钻瓜专利网。