买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】基于ArcGIS的矢量数据并行处理方法及系统_中国地质大学(武汉)_201711129769.3 

申请/专利权人:中国地质大学(武汉)

申请日:2017-11-15

公开(公告)日:2020-05-22

公开(公告)号:CN108009214B

主分类号:G06F16/29(20190101)

分类号:G06F16/29(20190101);G06F16/22(20190101)

优先权:

专利状态码:有效-授权

法律状态:2020.05.22#授权;2018.06.01#实质审查的生效;2018.05.08#公开

摘要:本发明公开了一种基于ArcGIS的矢量数据并行处理方法及系统,首先获取待处理的矢量图层的空间范围,将其划分为多个子空间范围,构造多个子任务信息,然后启动多个进程,设置ArcGIS矢量数据处理工具的环境变量参数,调用ArcGIS的矢量数据处理工具并行执行多个子任务,第一个完成的子任务将结果图层拷贝到结果数据库中,其它子任务的结果数据依次追加到结果图层中。本发明能够将矢量大数据处理任务在空间上进行划分,生成多个计算子任务,利用ArcGIS矢量数据处理工具的环境变量参数,采用多进程技术并行调用多个ArcGIS矢量数据处理工具,对各个子任务进行并行处理,可实现ArcGIS矢量数据处理的并行加速,从而提高ArcGIS对矢量大数据的处理效率。

主权项:1.一种基于ArcGIS的矢量数据并行处理方法,其特征在于,包括以下步骤:S1、获取任务划分数量n、待处理的矢量数据所在的空间数据库、图层名、结果图层名及矢量数据处理操作类型;S2、调用ArcGIS的IWorkspaceFactory接口连接待处理的矢量数据所在的空间数据库,然后调用ArcGIS的IFeatureWorkspace接口打开矢量图层,获得与图层名对应的待处理的矢量图层对象;S3、调用ArcGIS的IGeoDataset接口获取所述图层名对应的待处理矢量图层对象的空间矩形范围extent;S4、将空间矩形范围extent分解为n个子空间矩形范围;S5、生成n个矢量数据处理子任务,每个子任务的信息包括步骤S1中获取的待处理的矢量数据所在的空间数据库、图层名、结果图层名、矢量数据处理操作类型和步骤S4步中获得的子空间矩形范围;初始化已完成的任务数fn=0;用整型数组es[]存储每个子任务的执行状态,第一数值表示任务未完成,第二数值表示任务已完成,每个子任务的执行状态的初始值均置为第一数值;用整型数组fs[]存储每个子任务的结果处理状态,第三数值表示结果数据未处理,第四数值表示结果数据已处理,每个子任务的结果处理状态的初始值均置为第三数值;S6、启动n个进程,将步骤S5中的n个子任务信息作为进程启动参数分别传递给各个进程,各个进程根据矢量数据处理操作类型分别调用ArcGIS的GP工具并行执行n个子任务,其中的子空间矩形范围用于控制GP工具处理的矢量数据空间范围,通过调用GP工具的SetEnvironmentValue接口进行设置,子任务完成后将对应的执行状态置为第二数值;S7、依次访问整型数组es[]和整型数组fs[]数组变量中的各个数据项,循环检测各个子任务的执行状态和结果处理状态,获得一个执行已完成但结果数据未处理的子任务,每次检测均从第0个子任务开始,直到找到一个es[i]=第二数值且fs[i]=第三数值的子任务,如果找到,获取找到的子任务索引ti,转至步骤S8,否则继续步骤S7进行检测;S8、判断fn是否等于0,如果fn等于0,转至步骤S9,如果fn不等于0,转至步骤S10;S9、调用ArcGIS的矢量图层拷贝工具拷贝子任务ti生成的结果矢量数据到结果空间数据库,生成结果矢量图层,将ti对应的子任务的结果处理状态置为第四数值,将fn加1作为新的fn,转至步骤S11;S10、调用ArcGIS的矢量图层追加工具追加子任务结果数据到步骤S9生成的结果矢量图层中,将ti对应的子任务的结果处理状态置为第四数值,将fn加1作为新的fn,转至步骤S11;S11、判断fn是否等于n,如果fn等于n,则结束本次矢量数据处理过程,如果fn不等于n,转至步骤S7;所述步骤S4中计算每个子空间矩形范围是指:在长度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的第i子空间矩形范围,i∈[0,n-1]且为正整数,是通过下述公式计算得到:xmini=xmin+dx*i;ymini=ymin;xmaxi=xmin+dx*i+1;ymaxi=ymax;其中,dx=xmax-xmin,xmini,ymini、xmaxi,ymaxi、xmini,ymaxi、xmaxi,ymini分别为第i个子空间矩形范围的左下角坐标、右上角的坐标、左上角的坐标、右下角的坐标;或者,所述步骤S4中计算每个子空间矩形范围是指:在宽度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的第i子空间矩形范围,i∈[0,n-1]且为正整数,是通过下述公式计算得到:xmini=xmin;ymini=ymin+dy*i;xmaxi=xmax;ymaxi=ymin+dy*i+1;其中,dy=ymax-ymin,xmini,ymini、xmaxi,ymaxi、xmini,ymaxi、xmaxi,ymini分别为第i个子空间矩形范围的左下角坐标、右上角的坐标、左上角的坐标、右下角的坐标。

全文数据:基于ArcGIS的矢量数据并行处理方法及系统技术领域[0001]本发明涉及高性能地理空间计算技术,尤其是一种基于ArcGIS的矢量数据并行处理方法及系统。背景技术[0002]矢量大数据的快速实时处理是高性能空间计算中需要解决的关键问题之一,在多核集群并行计算环境中,采用多线程或多进程技术可以充分利用并行计算资源,实现计算密集型任务的并行加速。由于矢量数据的存储和计算均较为复杂,现有的ArcGIS矢量数据处理工具不能利用并行计算资源对矢量大数据进行并行处理,导致矢量大数据的处理效率低、计算资源利用率低。发明内容[0003]本发明要解决的技术问题在于,针对上述的现有的ArcGIS矢量数据处理工具不能利用并行计算资源对矢量大数据进行并行处理,导致矢量大数据的处理效率低、计算资源利用率低的技术缺陷,提供了一种基于ArcGIS的矢量数据并行处理方法及系统。[0004]根据本发明的其中一方面,本发明为解决其技术问题,提供了一种基于ArcGIS的矢量数据并行处理方法,包括以下步骤:[0005]S1、获取任务划分数量n、待处理的矢量数据所在的空间数据库、图层名、结果图层名及矢量数据处理操作类型;[0006]S2、调用ArcGIS的IWorkspaceFactory接口连接矢量数据所在的空间数据库,然后调用ArcGIS的IFeatureWorkspace接口打开矢量图层,获得图层名对应的待处理的矢量图层对象;[0007]S3、调用ArcGIS的IGeoDataset接口获取所述图层名对应的矢量图层的空间矩形范围extent;[0008]S4、将空间矩形范围extent分解为n个子空间矩形范围;[0009]S5、生成n个矢量数据处理子任务,每个子任务的信息包括步骤S1中获取的待处理的矢量数据所在的空间数据库、图层名、结果图层名、矢量数据处理操作类型和步骤S4步中获得的子空间范围;初始化已完成的任务数fn=0;用整型数组es[]存储每个子任务的执行状态,第一数值表示任务未完成,第二数值表示任务已完成,每个子任务的执行状态的初始值均置为第一数值;用整型数组fs[]存储每个子任务的结果处理状态,第三数值表示结果数据未处理,第四数值表示结果数据已处理,每个子任务的结果处理状态的初始值均置为第三数值;[0010]S6、启动n个进程,将步骤S5中的n个子任务信息作为进程启动参数分别传递给各个进程,各个进程根据矢量数据处理操作类型分别调用ArcGIS的GP工具并行执行n个子任务,其中的子空间范围用于控制GP工具处理的矢量数据空间范围,通过调用GP工具的SetEnvironmentValue接口进行设置,子任务完成后将对应的执行状态置为第二数值;[0011]S7、依次访问整型数组es[]和整型数组fs□数组变量中的各个数据项,循环检测各个子任务的执行状态和结果处理状态,获得一个执行已完成但结果数据未处理的子任务,每次检测均从第0个子任务开始,直到找到一个es[i]=第二数值且fs[i]=第三数值的子任务,如果找到,获取找到的子任务索引ti,转至步骤S8,否则继续步骤S7进行检测;[0012]S8、判断fn是否等于0,如果fn等于0,转至步骤S9,如果fn不等于0,转至步骤S10;[0013]S9、调用ArcGIS的矢量图层拷贝工具拷贝子任务ti生成的结果矢量数据到结果空间数据库,将ti对应的子任务的结果处理状态置为第四数值,将作加丨作为新的fn,转至步骤S11;[0014]S10、调用ArcGIS的矢量图层追加工具追加子任务结果数据到步骤S9生成的结果矢量图层中,将ti对应的子任务的结果处理状态置为第四数值,将作加丨作为新的作,转至步骤S11;[0015]S11、判断fn是否等于n,如果fn等于n,则结束本次矢量数据处理过程,如果fn不等于n,转至步骤S7。[0016]优选的,在本发明的基于ArcGIS的矢量数据并行处理方法中,所述步骤S4中计算每个子空间范围是指:在长度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的弟i子空间矩形犯围,iG[0,n-l]且为正整数,是通过下述公式计算得到:[0017]xmim=xmin+dx*i;[0018]ymini=ymin;[0019]xmaxi=xmin+dx*i+1;[0020]ymaxi=ymax;[0021]其中,dx=xmax-xminn,(xmini,ymiru、(xmaxi’ymaxi、(xmiiu’ymaxi、xmaxi,ymim分别为第i个子空间范围的左下角坐标、右上角的坐标、左上角的坐标、右下角的坐标。[0022]优选的,在本发明的基于ArcGIS的矢量数据并行处理方法中,所述S4中计算每个子空间范围是指:在宽度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的第i子空间矩形范围,i^[0,n-1]且为正整数,是通过下述公式计算得到:[0023]xmim=xmin;[0024]ymim=ymin+dy*i;[0025]xmaxi=xmax;[0026]ymaxi=ymin+dy*i+1;[0027]其中,dy=ymax-yminn,(xmirn,ymim、(xmaxi,ymaxi、(xmiru,ytnaxi、xmaxi,ymim分别为第i个子空间范围的左下角坐标、右上角的坐标、左上角的坐标、右下角的坐标。[0028]优选的,在本发明的基于ArcGIS的矢量数据并行处理方法中,所述第一数值等于0,所述第二值等于1,所述第三数值等于0,所述第四数值等于1。[0029]根据本发明的另一方面,本发明为解决其技术问题,还提供一种基于ArcGIS的矢量数据并行处理系统,包括以下模块:[0030]数据获取模块,用于获取任务划分数量n、待处理的矢量数据所在的空间数据库、图层名、结果图层名及矢量数据处理操作类型;[0031]矢量图层对象获取検块,用于调用ArcGIS的IWorkspaceFactory接口连接矢量数据所在的空间数据库,然后调用ArcGIS的IFeatureWorkspace接口打开矢量图层,获得图层名对应的待处理的矢量图层对象;[0032]空间矩形范围处理模块,用于调用ArcGIS的IGeoDataset接口获取所述图层名对应的矢量图层的空间矩形范围extent;[0033]子空间矩形范围处理模块,用于将空间矩形范围extent分解为n个子空间矩形范围;[0034]子任务生成模块,用于生成n个矢量数据处理子任务,每个子任务的信息包括数据获取模块中获取的待处理的矢量数据所在的空间数据库、图层名、结果图层名、矢量数据处理操作类型和子空间矩形范围处理模块中获得的子空间范围;初始化已完成的任务数fn=0;用整型数组es[]存储每个子任务的执行状态,第一数值表示任务未完成,第二数值表示任务已完成,每个子任务的执行状态的初始值均置为第一数值;用整型数组fs[]存储每个子任务的结果处理状态,第三数值表示结果数据未处理,第四数值表示结果数据已处理,每个子任务的结果处理状态的初始值均置为第三数值;[0035]子任务处理模块,用于启动n个进程,将子任务生成模块中的n个子任务信息作为进程启动参数分别传递给各个进程,各个进程根据矢量数据处理操作类型分别调用ArcGIS的GP工具并行执行n个子任务,其中的子空间范围用于控制GP工具处理的矢量数据空间范围,通过调用GP工具的SetEnvironmentValue接口进行设置,子任务完成后将对应的执行状态置为第二数值;[0036]状态检测模块,用于依次访问整型数组es[]和整型数组fs[]数组变量中的各个数据项,循环检测各个子任务的执行状态和结果处理状态,获得一个执行已完成但结果数据未处理的子任务,每次检测均从第0个子任务开始,直到找到一个es[i]=第二数值且fs[i]=第三数值的子任务,如果找到,获取找到的子任务索引ti,转至第一fn判断模块,否则继续利用状态检测模块进行检测;[0037]第一fn判断模块,用于判断fn是否等于0,如果fn等于0,转至子任务拷贝模块,如果fn不等于0,转至子任务追加模块;[0038]子任务拷贝模块,用于调用ArcGIS的矢量图层拷贝工具拷贝子任务ti生成的结果矢量数据到结果空间数据库,将ti对应的子任务的结果处理状态置为第四数值,将fn加1作为新的fn,转至第二fn判断模块;[0039]子任务追加模块,用于调用ArcGIS的矢量图层追加工具追加子任务结果数据到步骤S9生成的结果矢量图层中,将ti对应的子任务的结果处理状态置为第四数值,将fn加1作为新的fn,转至第二fn判断模块;[0040]第二fn判断模块,用于判断fn是否等于n,如果fn等于n,则结束本次矢量数据处理过程,如果fn不等于n,转至步骤状态检测模块。[0041]优选的,在本发明的基于ArcGIS的矢量数据并行处理方法中,所述子空间矩形范围处理模块中计算每个子空间范围是指:在长度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的第i子空间矩形范围,i£[0,n-l]且为正整数,是通过下述公式计算得到:[0042]xmini=xmin+dx*i;[0043]ymim=ymin;[0044]xmaxi=xmin+dx*i+1;[0045]ymaxi=ymax;[0046]其中,dx=xmax-xminn,xmim,ymiiu、xmaxi,ymaxi、xmiru’ymaxi、xmaxi,ymim分别为第i个子空间范围的左下角坐标、右上角的坐标、左上角的坐标右下角的坐标。[0047]优选的,在本发明的基于ArcGIS的矢量数据并行处理方法中,所述子空间矩形范围处理模块中计算每个子空间范围是指:在宽度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的第i子空间矩形范围,ie[0,n-i]且为正整数,是通过下述公式计算得到:[0048]xmim=xmin;[0049]ymini=ymin+dy*i;[0050]xmaxi=xmax;[0051]ymaxi=ymin+dy*i+1;[0052]其中,dy=ymax-yminn,(xmini,ymini、(xmaxi,ymaxi、(xmiru,ymaxi、xmaxi,ymim分别为第i个子空间范围的左下角坐标、右上角的坐标、左上角的坐标、右下角的坐标。[0053]优选的,在本发明的基于ArcGIS的矢量数据并行处理方法中,所述第一数值等于0,所述第二值等于1,所述第三数值等于0,所述第四数值等于1。[0054]实施本发明的基于ArcGIS的矢量数据并行处理方法及系统,具有以下有益效果:能够利用矢量数据的空间特性,将矢量大数据处理任务在空间上进行划分,获得多个子任务,采用多进程技术并行执行各个子任务,提高并行计算资源利用率,实现矢量大数据处理的并行加速,提高ArcGIS对矢量大数据的处理效率。附图说明[0055]下面将结合附图及实施例对本发明作进一步说明,附图中:[0056]图1是本发明的基于ArcGIS的矢量数据并行处理方法一实施例的流程图;[0057]图2是本发明的图1中实施例所使用的矢量数据。具体实施方式[0058]为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图详细说明本发明的具体实施方式。[0059]为了更清晰的说明本发明的思想,下面对基于ArcGIS的矢量数据并行处理方法进行进一步的说明,本实施例采用的基于ArcGIS的矢量数据并行处理方法的一实施例的流程图如图1所示,本实施例使用湖北省道路矢量数据作为示例数据,如图2所示,其存储于空间数据库Default.gdb中,图层名为HUBEIR0AD,其空间范围左下角坐标为(108.416417,29•〇65332,右上角坐标为(II6.127877,33.258084,以ArcGIS中的光滑线(SmoothLine处理工具为例,结果空间数据库为Result•gdb,使用2个进程并行执行的具体步骤如下:[0060]1设置任务划分数量为2,待处理的矢量数据所在的空间数据库为Default.gdb,图层名为HUBEIROAD,结果图层名为HUBEIROAD_RESULT,矢量数据处理操作类型为SMOOTHLINE;[0061]2调用ArcGIS的IWorkspaceFactory接口连接矢量数据所在的空间数据库Default•gdb,然后调用ArcGIS的IFeatureWorkspace接口打开矢量图层HUBEIR0AD,获得待处理的矢量图层对象;[0062]3调用ArcGIS的IGeoDataset接口获取矢量图层HUBEIR0AD的空间矩形范围extent,其左下角坐标为(108.416417,29.065332,右上角坐标为(116.127877,33.258084;[0063]4计算每个子空间范围的高度dy=33.258084-29.0653322=2.096376,将extent在垂直方向上分解为2个子空间矩形范围。设第i个子空间范围的左下角坐标为xmini,ymim,右上角的坐标为xmaxi,ymaxi;[0064]第0个子空间范围的计算结果如下:[0065]xmino=108.416417[0066]ymin〇=29.065332+dy*0=29•065332[0067]xmaxo=116.127877;[0068]ymaxo=29.065332+dy*0+1=31.161708[0069]第1个子空间范围的计算结果如下:[0070]xmim=108.416417[0071]ymim=29.065332+dy*l=31.161708[0072]xmaxi=116.127877;[0073]ymaxi=29•065332+dy*1+1=33•258084[0074]5生成2个矢量数据处理子任务,每个子任务的信息包括第1步中设置的待处理的矢量数据所在的空间数据库、图层名、结果图层名、矢量数据处理操作类型和第4步中获得的子空间范围。[0075]初始化己完成的任务数fn=〇;用整型数组es[]存储每个子任务的执行状态,〇表示任务未完成,1表示任务已完成,初始置为0,即es[i]=0;用整型数组fs[]存储每个子任务的结果处理状态,0表示结果数据未处理,1表结果数据己处理,初始置为〇,即fs[i]=〇;[0076]6启动2个进程,将第5步中的2个子任务信息作为进程启动参数分别传递给各个进程,各个进程根据矢量数据处理操作类型SM00THLINE调用ArcGIS的SmoothLineGP工具并行执行2个子任务,其中的子空间范围用于控制SmoothLineGP工具处理的矢量数据空间?a围,通过调用SmoothLineGP工具的SetEnvironmentValue接口进行设置,子任务完成后将执行状态置为1,即es[i]=1;[0077]7依次访问整型数组es[]和fs[]数组变量中的各个数据项,循环检测各个子任务的执行状态和结果处理状态,获得一个执行已完成但结果数据未处理的子任务,每次检测均从第0个子任务开始,直到找到一个es[i]=1且fs[i]=〇的子任务,如果能找到,设找到的子任务索引为ti,转步骤8;如果未找到满足条件的子任务,则转步骤7继续进行检测。[0078]8判断fn是否等于〇,如果fn等于〇,转步骤9,如果fn不等于〇,转步骤1〇。[0079]9调用ArcGIS的矢量图层拷贝工具拷贝子任务ti生成的结果矢量数据HimEIR0AD_RESULT到结果空间数据库Result.gdb中,将子任务ti结果处理状态置为丨,即fs出]=1,将作加1作为新的作,转至步骤11。[0080]10调用紅CGIS的矢量图层追加工具追加子任务结果数据到第9步生成的结果矢量图层HUBEIROAD_RESULT中,将子任务ti结果处理状态置为ljpfs[ti]==i将作加1作为新的fn,转至步骤11。’[0081]11判断fn是否等于2,如果fn等于2,转步骤12;如果fn不等于2,转步骤7。[0082]12结束矢量数据处理过程。[0083]采用本发明设计的基于ArcGIS的矢量数据并行处理方法,能够利用ArcGIS矢量数据处理工具的环境变量参数,将矢量大数据处理任务在空间上进行划分,生成多个计算子任务,采用多进程技术并行调用多个ArcGIS矢量数据处理工具,对各个子任务进行并行处理,可实现ArcGIS矢量数据处理的并行加速,从而提高ArcGIS对矢量大数据的处理效率。[0084]上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。

权利要求:1.一种基于ArcGIS的矢量数据并行处理方法,其特征在于,包括以下步骤:51、获取任务划分数量n、待处理的矢量数据所在的空间数据库、图层名、结果图层名及矢量数据处理操作类型;52、调用ArcGIS的IWorkspaceFactory接口连接矢量数据所在的空间数据库,然后调用ArcGIS的IFeatureWorkspace接口打开矢量图层,获得与图层名对应的待处理的矢量图层对象;53、调用ArcGIS的IGeoDataset接口获取所述图层名对应的待处理矢量图层的空间矩形范围extent;54、将空间矩形范围extent分解为n个子空间矩形范围;55、生成n个矢量数据处理子任务,每个子任务的信息包括步骤“中获取的待处理的矢量数据所在的空间数据库、图层名、结果图层名、矢量数据处理操作类型和步骤S4步中获得的子空间范围;初始化已完成的任务数fn=〇;用整型数组es[]存储每个子任务的执行状态,第一数值表示任务未完成,第二数值表示任务已完成,每个子任务的执行状态的初始值均置为第一数值;用整型数组fs[]存储每个子任务的结果处理状态,第三数值表示结果数据未处理,第四数值表示结果数据已处理,每个子任务的结果处理状态的初始值均置为第三数值;56、启动n个进程,将步骤S5中的n个子任务信息作为进程启动参数分别传递给各个进程,各个进程根据矢量数据处理操作类型分别调用ArcGIS的GP工具并行执行n个子任务,其中的子空间范围用于控制GP工具处理的矢量数据空间范围,通过调用GP工具的SetEnvironmentValue接口进行设置,子任务完成后将对应的执行状态置为第二数值;57、依次访问整型数组es[]和整型数组fs[]数组变量中的各个数据项,循环检测各个子任务的执行状态和结果处理状态,获得一个执行已完成但结果数据未处理的子任务,每次检测均从第0个子任务开始,直到找到一个es[i]二第二数值且fs[i]二第三数值的子任务,如果找到,获取找到的子任务索引ti,转至步骤S8,否则继续步骤S7进行检测;58、判断fn是否等于〇,如果fn等于〇,转至步骤S9,如果fn不等于〇,转至步骤310;59、调用ArcGIS的矢量图层拷贝工具拷贝子任务ti生成的结果矢量数据到结果空间数据库,将ti对应的子任务的结果处理状态置为第四数值,将fn加1作为新的作,转至步骤S11;S10、调用ArcGIS的矢量图层追加工具追加子任务结果数据到步骤S9生成的结果矢量图层中,将ti对应的子任务的结果处理状态置为第四数值,将作加丨作为新的化,转至步骤S11;SI1、判断fn是否等于n,如果fn等于n,则结束本次矢量数据处理过程,如果fn不等于n,转至步骤S7。2.根据权利要求1所述的基于ArcGIS的矢量数据并行处理方法,其特征在于,所述步骤S4中计算每个子空间范围是指:在长度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的第i子空间矩形范围,ig[〇,n-l]且为正整数,是通过下述公式计算得到:xmiru=xmin+dx*i;ymiru=ymin;xmaxi=xmin+dx^i+1;ymaxi=ymax;其中,dx=xmax-xminn,(xmini,ymim、(xmaxi,ymaxi、(xmiiu,yraaxi、(xmaxi,ymiru分别为第i个子空间范围的左下角坐标、右上角的坐标、左上角的坐标、右下角的坐标。3.根据权利要求1所述的基于ArcGIS的矢量数据并行处理方法,其特征在于,所述步骤S4中计算每个子空间范围是指:在宽度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的第i子空间矩形范围,ig[〇,n-i]且为正整数,是通过下述公式计算得到:xmim=xmin;ymim=ymin+dy*i;xmaxi=xmax;ymaxi=ymin+dy本(i+1;其中,dy二(ymax—yminn,(xmim,ymiru、(xmaxi,ymaxi、(xmini,ymaxi、(xmaxi,ymim分别为第i个子空间范围的左下角坐标、右上角的坐标、左上角的坐标、右下角的坐标。4.根据权利要求1所述的基于ArcGIS的矢量数据并行处理方法,其特征在于,所述第一数值等于0,所述第二值等于1,所述第三数值等于0,所述第四数值等于1。5.—种基于ArcGIS的矢量数据并行处理系统,其特征在于,包括以下模块:数据获取模块,用于获取任务划分数量n、待处理的矢量数据所在的空间数据库、图层名、结果图层名及矢量数据处理操作类型;矢量图层对象获取模块,用于调用ArcGIS的IWorkspaceFactory接口连接矢量数据所在的空间数据库,然后调用ArcGIS的IFeatureWorkspace接口打开矢量图层,获得图层名对应的待处理的矢量图层对象;空间矩形范围处理模块,用于调用ArcGIS的IGeoDataset接口获取所述图层名对应的矢量图层的空间矩形范围extent;子空间矩形范围处理模块,用于将空间矩形范围extent分解为n个子空间矩形范围;子任务生成模块,用于生成n个矢量数据处理子任务,每个子任务的信息包括数据获取模块中获取的待处理的矢量数据所在的空间数据库、图层名、结果图层名、矢量数据处理操作类型和子空间矩形范围处理模块中获得的子空间范围;初始化己完成的任务数fn=〇;用整型数组es[]存储每个子任务的执行状态,第一数值表示任务未完成,第二数值表示任务已完成,每个子任务的执行状态的初始值均置为第一数值;用整型数组fs[]存储每个子任务的结果处理状态,第三数值表示结果数据未处理,第四数值表示结果数据已处理,每个子任务的结果处理状态的初始值均置为第三数值;子任务处理模块,用于启动n个进程,将子任务生成模块中的n个子任务信息作为进程启动参数分别传递给各个进程,各个进程根据矢量数据处理操作类型分别调用ArcGIS的GP工具并行执行n个子任务,其中的子空间范围用于控制GP工具处理的矢量数据空间范围,通过调用GP工具的SetEnvironmentValue接口进行设置,子任务完成后将对应的执行状态置为第二数值;状态检测模块,用于依次访问整型数组es[]和整型数组fs[]数组变量中的各个数据项,循环检测各个子任务的执行状态和结果处理状态,获得一个执行已完成但结果数据未处理的子任务,每次检测均从第〇个子任务开始,直到找到一个es[i]=第二数值且fs[i]=第三数值的子任务,如果找到,获取找到的子任务索引ti,转至第一fn判断模块,否则继续利用状态检测模块进行检测;第一fn判断模块,用于判断fn是否等于0,如果fn等于0,转至子任务拷贝模块,如果fn不等于0,转至子任务追加模块;子任务拷贝模块,用于调用ArcGIS的矢量图层拷贝工具拷贝子任务ti生成的结果矢量数据到结果空间数据库,将ti对应的子任务的结果处理状态置为第四数值,将fn加1作为新的fn,转至第二fri判断模块;子任务追加模块,用于调用ArcGIS的矢量图层追加工具追加子任务结果数据到子任务拷贝模块生成的结果矢量图层中,将ti对应的子任务的结果处理状态置为第四数值,将fn力口1作为新的fn,转至第二fn判断模块;第二fn判断模块,用于判断fn是否等于n,如果fn等于n,则结束本次矢量数据处理过程,如果fn不等于n,转至状态检测模块。6.根据权利要求5所述的基于ArcGIS的矢量数据并行处理系统,其特征在于,所述子空间矩形范围处理模块中计算每个子空间范围是指:在长度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的第i子空间矩形范围,ie[〇,n-1]且为正整数,是通过下述公式计算得到:xmim=xmin+dx*i;ymim=ymin;xmaxi^xmin+dx^i+1;ymaxi^ymax;其中,dx=xmax-xminn,(xmim,ymini、(xmaxi,ymaxi、(xmiru,ymaxi、(xmaxi,ymim分别为第i个子空间范围的左下角坐标、右上角的坐标、左上角的坐标、右下角的坐标。7.根据权利要求5所述的基于ArcGIS的矢量数据并行处理系统,其特征在于,所述子空间矩形范围处理模块中计算每个子空间范围是指:在宽度方向上对矢量图层的空间矩形范围extent进行划分,对于任意的第i子空间矩形范围,ie[〇,n-l]且为正整数,是通过下述公式计算得到:xmini=xmin;ymim=ymin+dy*i;xmaxi=xmax;ymaxi=ymin+dy氺(i+1;其中,dy=ymax-yminn,(xmini,ymini、(xmaxi,ymaxi、(xmini,ymaxi、(xmaxi,ymim分别为第i个子空间范围的左下角坐标、右上角的坐标、左上角的坐标、右下角的坐标。8.根据权利要求5所述的基于ArcGIS的矢量数据并行处理系统,其特征在于,所述第一数值等于0,所述第二值等于1,所述第三数值等于0,所述第四数值等于1。

百度查询: 中国地质大学(武汉) 基于ArcGIS的矢量数据并行处理方法及系统

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。