CN105045934A - 一种处理大型地理栅格数据的并行聚类方法 - Google Patents
一种处理大型地理栅格数据的并行聚类方法 Download PDFInfo
- Publication number
- CN105045934A CN105045934A CN201510570327.7A CN201510570327A CN105045934A CN 105045934 A CN105045934 A CN 105045934A CN 201510570327 A CN201510570327 A CN 201510570327A CN 105045934 A CN105045934 A CN 105045934A
- Authority
- CN
- China
- Prior art keywords
- cluster
- raster data
- classification
- calculation procedure
- field
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种处理大型地理栅格数据的并行聚类方法,本发明涉及并行聚类方法。本发明要解决地理栅格十分庞大,超过了单机加载极限从而导致系统无法运行或者运行效率很低,以及在多计算机并行聚类过程中各个进程计算结果的相互交换问题。本发明是通过一、计算节点数量,为每个计算进程编号;二、将数据发送给编号为ID的计算进程;三、生成M组聚类解的初始值;四、将聚类矢量中心表发送给计算进程;五、管理进程控制迭代求解过程;六、将字段4获得最高值的一行的内容发送给各个计算进程;七、将栅格聚类的结果写入地理栅格数据文件中;即完成了一种处理大型地理栅格数据的并行聚类方法等步骤实现的。本发明应用于处理大型地理栅格数据的并行聚类领域。
Description
技术领域
本发明涉及并行聚类方法,特别涉及一种处理大型地理栅格数据的并行聚类方法。
背景技术
在地理信息系统技术领域,地理栅格数据是一种重要的数据类型。在地理栅格数据中每一个栅格记录着一块地表区域的空间、社会、经济及环境属性特征,它为描述地表的信息提供数据基础。
地理栅格数据的聚类是一种根据栅格位置、属性特征的数值分布情况,在不需要事先输入已知样本的情况下,对栅格数据所属类目进行自动划分的方法。通过聚类处理,人们可以在没有任何额外数据输入的情况下,将地理栅格数据上划分出同质的或近似的区域,获得一个地区更具概括性的知识,进而可以进行矢量地图绘制、专题地图制作和数据分析。目前主流地理信息数据处理软件均支持K-Means、EM等聚类处理方法,目前的方法需要将栅格数据加载到内存中并反复遍历计算,最终获得聚类结果。
随着大型存储设备、高分辨率卫星传感器的引入,地理栅格数据的分辨率也越来越高。分辨率的提高引起了数据量呈几何级数增长,如:分辨率从30米提高到1米,对于同一地区数据量将提高30×30=900倍,原先100M的地理栅格数据将增长到近90G。由于地理栅格数据量过大,一方面单个计算机难以加载全部地理栅格数据,难以运行聚类方法;另一方面遍历数据将消耗较多时间,聚类耗费运行时间将十分长。
所以需要针对大型地理栅格数据设计一种并行的聚类方法,将庞大的数据的加载和计算聚类任务分散到多台计算机当中,进行面向大型地理栅格数据的并行聚类。
在面向大型数据的并行聚类方法方面:如一种基于MapReduce的并行聚类方法(201210434240.3),一种基于Hadoop的并行k均值聚类方法(201310568611.1),均倾向于通过Hadoop的MapReduce框架进行并行来加快运行并应对大数据量。此类专利都需要利用Map步骤将计算分散在到各个计算机当中,利用Reduce整合一次迭代的聚类成果;地理栅格数据中的地物类型并不是均匀的混杂在一起的,而是一个区域、一段连续的空间地物类型接近;面对十分庞大的栅格数据,Map块文件通常不大(如:默认为64M),其包含的区域可能面积非常小仅包含少数几种地物,此时应用聚类将会引起类目的过渡细分,聚类算法较难获得栅格数据整体的类目分配与数据分布情况,因此较难得到较好聚类结果。同时栅格数据需要较多次的迭代,每次迭代Reduce也会引起集群内部的大量通讯,相对的也会减缓聚类速度。
在栅格或者遥感影像(遥感影像是栅格数据的一种)聚类方面:一种基于模糊c均值聚类的农田划分方法(201210312253.3)遥感图像的主动谱聚类方法(201410136015.0);遥感影像的聚类方法(201210022353.2);均没有解决在栅格或者遥感影像数据十分庞大,超过了单机加载极限的问题,当数据过大方法将会无法运行或者运行效率很低。
发明内容
本发明的目的是为了解决地理栅格十分庞大,超过了单机加载极限从而导致系统无法运行或者运行效率很低,以及在多计算机并行聚类过程中各个进程计算结果的相互交换问题,而提出的一种处理大型地理栅格数据的并行聚类方法。
上述的发明目的是通过以下技术方案实现的:
步骤一、在计算机集群上,利用管理节点启动管理进程,管理进程根据大型地理栅格数据量计算参与计算的计算节点数量,并在每个计算节点上启动计算进程,同时为每个计算进程编号;其中,一个计算机集群包含5~100台通过互联网连接的计算机,在计算机集群中任选一台计算机充当管理节点,计算机集群中除管理节点之外其它节点充当计算节点;大型地理栅格数据的数据量为大于1000M;
步骤二、管理进程逐行读取大型地理栅格数据,将整个大型地理栅格数据分散加载到N个计算进程,将每行大型地理栅格数据发送给对应编号为ID的计算进程;
步骤三、管理进程随机生成M组聚类解的初始值,其中,每一组聚类解的初始值包含类目个数和类目中心点矢量列表;
步骤四、管理进程根据步骤三获得的M组类目个数和M组类目中心点矢量列表构造具有M个条目的聚类矢量中心表,将聚类矢量中心表发送给各个计算进程;
在M个条目的聚类矢量中心表中,一共有M行记录,每一行代表栅格数据的一个聚类的解;每一个聚类的解包含4个字段内容:
字段1:聚类解的编号;
字段2:类目个数,对应聚类解的类目个数;
字段3:类目中心点矢量列表,对应一组聚类中心点的矢量;
字段4:聚类结果质量,用于描述聚类质量,初始化是默认置为0;
步骤五、管理进程控制迭代求解过程;
步骤五一、每次迭代过程中,各个计算进程根据聚类矢量中心表进行聚类计算,更新步骤四得到的聚类矢量中心表的内容,并发送回管理进程;
步骤五二、管理进程根据各个计算进程的聚类矢量中心表,更新管理进程的聚类矢量中心表,并发送回各个计算进程重复步骤五一;经过5次迭代聚类矢量中心表的字段4出现2次相同的最高的评价值,停止迭代即得到最终的聚类矢量中心表;
其中,字段4为聚类结果质量,用于描述聚类质量,初始化是默认值为0;最高的评价值具体为在聚类矢量中心表中,字段4获得最高值的那一行;
步骤六、在步骤五中得到的管理进程获得的最终的聚类矢量中心表中,字段4获得的最高值一行的字段2描述了类目个数和字段4获得最高值的一行的字段3描述了每个类目的对应的矢量中心点;将字段4获得最高值的一行的内容发送给各个计算进程;其中,字段4获得最高值的一行的内容具体包括字段1、字段2、字段3和字段4;
步骤七、各个计算进程根据字段4获得最高值的一行的内容对计算进程对应的栅格数据进行聚类,每个栅格的类目标记为距离栅格最近的那个矢量中心点所对应的类目即为得到栅格聚类的结果;管理进程分别从各个计算进程收集栅格聚类的结果,并将栅格聚类的结果写入地理栅格数据文件中;即完成了一种处理大型地理栅格数据的并行聚类方法。
发明效果
本发明针对大型地理栅格数据,提供了一种可以将这些数据分散加载到多个计算机的进程当中,并通过多台计算机并行计算联合求解最终获得大型地理栅格数据的聚类结果。利用本发明提出的方法,可以应对远超过一台计算机内存极限大小的地理栅格数据的聚类工作,并快速获得聚类结果。
本发明将整个栅格数据按照行逐个的分配给各个计算节点计算机,将整个大型栅格数据分散加载到多台计算机中;计算节点按照一定的间隔加载栅格数据,一方面限制了单个计算节点加载的数据量,另一方面可以保证每个节点具备整个栅格数据类目与数据分布的全局视角,更利于获得聚类结果;
本发明在迭代计算的过程中构造了聚类矢量中心表,利用该表实现了多个计算机之间聚类结果的同步和综合,由于该表较小通讯量较低,所以每次聚类迭代可以较小通讯代价完成;同时,聚类矢量中心表同时包含多组聚类中心与类目个数,在迭代过程中可以不断优选获得更优化的聚类结果如图7所示。
附图说明
图1为具体实施方式一提出的一种处理大型地理栅格数据的并行聚类方法流程图;
图2为具体实施方式二提出的根据栅格数据大小启动管理进程和计算进程的步骤流程图;
图3为具体实施方式三提出的将整个大型栅格数据分散加载到N个计算进程的步骤流程图;
图4为具体实施方式一提出的聚类矢量中心表的结构示意图;
图5为具体实施方式五提出的管理进程控制的迭代求解过程示意图;
图6为具体实施方式八提出的管理进程逐行的分别从各个计算进程收集结果写入到结果栅格数据文件中的流程示意图;
图7为具体实施方式一提出的多个计算节点的计算机分散加载与处理大型地理栅格数据示意图;
图8(a)为实施例提出的栅格数据的空间属性1的灰度图;
图8(b)为实施例提出的栅格数据的空间属性2的灰度图;
图8(c)为实施例提出的栅格数据的空间属性3的灰度图;
图8(d)为实施例提出的栅格数据的空间属性4的灰度图;
图8(e)为实施例提出的栅格数据的空间属性5的灰度图
图9(a)为实施例提出的各个计算节点加载数据的示意图;
图9(b)为实施例提出的各个计算节点加载数据的示意图;
图9(c)为实施例提出的各个计算节点加载数据的示意图;
图9(d)为实施例提出的各个计算节点加载数据的示意图;
图9(e)为实施例提出的各个计算节点加载数据的示意图;
图9(f)为实施例提出的各个计算节点加载数据的示意图;
图10为实施例提出的栅格聚类结果对应的灰度图。
具体实施方式
具体实施方式一:结合图1本实施方式的一种处理大型地理栅格数据的并行聚类方法,具体是按照以下步骤制备的:
步骤一、在计算机集群上,利用管理节点启动管理进程,管理进程根据大型地理栅格数据量计算参与计算的计算节点数量,并在每个计算节点上启动计算进程,同时为每个计算进程编号;其中,一个计算机集群包含5~100台通过互联网连接的计算机,在计算机集群中任选一台计算机充当管理节点,计算机集群中除管理节点之外其它节点充当计算节点;大型地理栅格数据的数据量为大于1000M;
步骤二、管理进程逐行读取大型地理栅格数据,将整个大型地理栅格数据分散加载到N个计算进程,将每行大型地理栅格数据发送给对应编号为ID的计算进程;
步骤三、管理进程随机生成M组聚类解的初始值,其中,每一组聚类解的初始值包含类目个数和类目中心点矢量列表;
步骤四、管理进程根据步骤三获得的M组类目个数和M组类目中心点矢量列表构造具有M个条目的聚类矢量中心表,将聚类矢量中心表发送给各个计算进程;
管理进程随机生成M组聚类初始值,M的大小根据聚类目标的复杂程度而定;
对于城市等人工建筑较多的结构复杂地区:M取30;
对于市郊、城乡结合地区:M取20;
对于乡村和大面积自然景观地区:M取20;
其中,聚类矢量中心表由管理进程构造,聚类矢量中心表如图4所示,在M个条目的聚类矢量中心表中,一共有M行记录,每一行代表栅格数据的一个聚类的解(即每一行对应一个聚类的解);每一个聚类的解包含4个字段内容:
字段1:聚类解的编号;
字段2:类目个数,对应聚类解的类目个数;
字段3:类目中心点矢量列表,对应一组聚类中心点的矢量;
字段4:聚类结果质量(聚类矢量中心表有很多行,每一行都是栅格数据可能的聚类解,每个聚类解都由字段4来描述聚类质量),用于描述聚类质量,初始化是默认置为0;
步骤五、管理进程控制迭代求解过程;
步骤五一、每次迭代过程中,各个计算进程根据聚类矢量中心表进行聚类计算,更新步骤四得到的聚类矢量中心表的内容,并发送回管理进程;
步骤五二、管理进程根据各个计算进程的聚类矢量中心表,更新管理进程的聚类矢量中心表,并发送回各个计算进程重复步骤五一;经过5次迭代聚类矢量中心表的字段4出现2次相同的最高的评价值(评价是一个数值,值越大就越高),停止迭代即得到最终的聚类矢量中心表(这个表示最终的聚类在矢量上的表达);
其中,字段4为聚类结果质量(聚类矢量中心表有很多行,每一行都是栅格数据可能的聚类解,每个聚类解都由字段4来描述聚类质量),用于描述聚类质量,初始化是默认值为0;最高的评价值具体为在聚类矢量中心表中,字段4获得最高值的那一行;
步骤六、在步骤五中得到的管理进程获得的最终的聚类矢量中心表中,字段4获得的最高值一行的字段2描述了类目个数和字段4获得最高值的一行的字段3描述了每个类目的对应的矢量中心点;将字段4获得最高值的一行的内容发送给各个计算进程;其中,字段4获得最高值的一行的内容具体包括字段1、字段2、字段3和字段4;
步骤七、各个计算进程根据字段4获得最高值的一行的内容对计算进程对应的栅格数据进行聚类,每个栅格的类目标记为距离栅格最近的那个矢量中心点所对应的类目即为得到栅格聚类的结果;管理进程分别从各个计算进程收集栅格聚类的结果,并将栅格聚类的结果写入地理栅格数据文件中;即完成了一种处理大型地理栅格数据的并行聚类方法。
本实施方式效果:
本实施方式针对大型地理栅格数据,提供了一种可以将这些数据分散加载到多个计算机的进程当中,并通过多台计算机并行计算联合求解最终获得大型地理栅格数据的聚类结果。利用本实施方式提出的方法,可以应对远超过一台计算机内存极限大小的地理栅格数据的聚类工作,并快速获得聚类结果。
本实施方式将整个栅格数据按照行逐个的分配给各个计算节点计算机,将整个大型栅格数据分散加载到多台计算机中;计算节点按照一定的间隔加载栅格数据,一方面限制了单个计算节点加载的数据量,另一方面可以保证每个节点具备整个栅格数据类目与数据分布的全局视角,更利于获得聚类结果;
本实施方式在迭代计算的过程中构造了聚类矢量中心表,利用该表实现了多个计算机之间聚类结果的同步和综合,由于该表较小通讯量较低,所以每次聚类迭代可以较小通讯代价完成;同时,聚类矢量中心表同时包含多组聚类中心与类目个数,在迭代过程中可以不断优选获得更优化的聚类结果如图7所示。
具体实施方式二:本实施方式与具体实施方式一不同的是:步骤一中在计算机集群上,利用管理节点启动管理进程,管理进程根据大型地理栅格数据量计算参与计算的计算节点数量,并在每个计算节点上启动计算进程,同时为每个计算进程编号具体步骤(该步骤的处理流程如图2所示)如下:
(1)管理节点启动管理进程;
(2)管理进程读取待聚类的大型地理栅格数据的行数RowNum、列数ColNum和文件总的大小SumSize;待聚类的大型地理栅格数据每一行大小RowSize的计算方式为:
RowSize=SumSize/ColNum;
(3)管理进程计算N个计算节点;
根据每一个计算节点的最大数据加载量为MaxMemory,每一个计算节点最大加载的栅格数据行数MaxRowNum为:
MaxRowNum=MaxMemroy%RowSize
加载N个计算节点的计算公式为:
N=Round(RowNum/MaxRowNum+0.5)
其中,Round为四舍五入操作,%表示求余数;
(4)利用N个计算节点的每个节点启动一个计算进程,从1到N对计算进程进行编号。其它步骤及参数与具体实施方式一相同。
具体实施方式三:本实施方式与具体实施方式一或二不同的是:步骤二中管理进程逐行读取大型地理栅格数据,将整个大型地理栅格数据分散加载到N个计算进程,将每行大型地理栅格数据发送给对应编号为ID的计算进程具体步骤所示如下(如图3):
(1)设定管理进程内的变量counter=0;
(2)counter=counter+1;
(3)管理进程读取大型地理栅格数据中第counter行的数据,将大型地理栅格数据中第counter行的数据发送给第counter行的数据对应编号为ID的计算进程,编号为ID的计算进程在计算进程的内存空间中存储在大型地理栅格数据中第counter行中;
其中,将大型地理栅格数据中第counter行的数据发送给第counter行的数据对应编号为ID的计算公式如下:
ID=counter%N+1
(4)若counter比大型地理栅格数据的行数小,那么转到步骤(2),若counter大于等于大型地理栅格数据的行数转到步骤(5);
(5)管理进程通知所有计算进程数据传输过程结束。其它步骤及参数与具体实施方式一或二相同。
具体实施方式四:本实施方式与具体实施方式一至三之一不同的是:步骤三中管理进程随机生成M组聚类解的初始值包含类目个数和类目中心点矢量列表具体为:
(1)类目个数CenterNum:CenterNum为一个大于等于2并且小于等于最大类目个数MaxCenterNum的数值:
CenterNum=Random(MaxCenterNum-1)+2;
MaxCenterNum=Round(M/2+0.5)
其中,Random(MaxCenterNum-1)产生一个0到MaxCenterNum-1的随机数;MaxCenterNum可以根据用户的需要进行输入,也可以指定一个默认值:Round()为四舍五入操作;
(2)类目中心点矢量列表CenterVectorList:CenterVectorList随机生成CenterNum个类目中心点矢量;
对于大型地理栅格数据包含FeatureNum个空间属性,随机生成类目中心点为一个FeatureNum维度的矢量Vector=(F1,F2,…FfeatureNum),Vector中的每一个维度Fi表示为:
Fi=(Max(Fi)-Min(Fi))(Random(100))/100+Min(Fi)
其中,Max(Fi)表示大型地理栅格数据中第i维度的最大值,Min(Fi)表示大型地理栅格数据中第i维度的最小值,Random(100)产生一个0~100的随机数。其它步骤及参数与具体实施方式一至三之一相同。
具体实施方式五:本实施方式与具体实施方式一至四之一不同的是:步骤五中管理进程控制迭代求解过程具体步骤如下(如图5所示):
(1)、管理进程向各个计算进程发送指令后,管理进程处于等待结果状态;
(2)、各个计算进程接收指令后进行计算,各个计算进程都有相应的聚类矢量中心表,各个计算节点的计算进程中互不干扰进行聚类计算;计算进程遍历聚类矢量中心表的每一行进行计算,更新每一行的字段3类目中心点列表;对于聚类矢量中心表的一行,计算进程根据字段3类目中心点列表将计算进程中的栅格数据进行归类,计算一个类目的栅格的每一维度的均值,所有的维度的均值共同构成类目对应的新的中心点,将类目对应的所有新的中心点构成新的类目中心点列表,再将新的类目中心点列表更新到聚类矢量中心表的对应行的字段3之中;
(3)、管理进程收集步骤(2)更新后的聚类矢量中心表,更新管理进程的聚类矢量中心表;
(4)、初始化步骤(3)中更新后的聚类矢量中心表的聚类结果质量最低的一行的类目个数与类目中心点矢量列表;
(5)、管理进程将步骤(4)初始化后的聚类矢量中心表发回给各个计算进程;
(6)、经过5次迭代后(重复5次步骤(1)~(6)后)的聚类矢量中心表的字段4的最高值没有发生变化;
(7)、管理进程控制的迭代求解过程结束;即得到最终的聚类矢量中心表;
管理进程将数据发送给计算进程,计算进程每次迭代的时候更新聚类矢量中心表,并将最终的聚类矢量中心表发送给管理进程。其它步骤及参数与具体实施方式一至四之一相同。
具体实施方式六:本实施方式与具体实施方式一至五之一不同的是:计算进程遍历聚类矢量中心表的每一行进行计算,更新每一行的字段3类目中心点列表;对于聚类矢量中心表的一行,计算进程根据字段3类目中心点列表将计算进程中的栅格数据进行归类,计算一个类目的栅格的每一维度的均值,所有的维度的均值共同构成类目对应的新的中心点,将类目对应的所有新的中心点构成新的类目中心点列表,再将新的类目中心点列表更新到聚类矢量中心表的对应行的字段3之中具体步骤如下:
(1)、指定变量counter=1;
(2)、读取聚类矢量中心表第counter行内容,根据类目个数的列表、类目中心点的列表以及步骤二中分散加载到N个计算进程的大型地理栅格数据进行一次K-Means聚类,获得新的类目中心点的列表;
(3)、将新的类目中心点列表写回到聚类矢量中心表第counter行的第3个字段;
(4)、通过如下公式计算聚类结果质量:
其中,
式中,xj为栅格数据中第j个栅格的矢量,Zk为中心点列表第k个中心的矢量,通过栅格聚类结果质量公式获得一个栅格聚类结果质量数值评价,栅格聚类结果质量数值越高栅格聚类的质量就越好;CenterNum为聚类中心的个数,Zi为中心点列表第i个中心的矢量,Zj为中心点列表第j个中心的矢量;
(5)、将(4)获得的栅格聚类结果质量数值评价结果(即对栅格聚类结果质量的效果进行打分)写入到聚类矢量中心表第counter行的第4个字段;
(6)、counter=counter+1;
(7)、如果counter大于M那么执行步骤(8),否则(如果counter≤M)转到步骤(2);
(8)、结束更新字段过程;
其中,M为对应聚类矢量中心表的行数。其它步骤及参数与具体实施方式一至五之一相同。
具体实施方式七:本实施方式与具体实施方式一至六之一不同的是:更新管理进程的聚类矢量中心表的具体步骤如下:
对于聚类矢量中心表中的每一条记录,分别更新字段3和字段4;
对于字段3,类目中心点矢量列表中的第i个中心矢量Zi′计算公式如下:
其中,Z(P)i为第P个计算进程的对应类目中心点矢量列表中第i个中心矢量;Zi′为类目中心点矢量列表中更新之后的第i个中心矢量;
对于字段4,其计算公式如下:
其中,栅格聚类结果质量(P)为第P个计算进程的聚类结果质量;N为计算节点个数。其它步骤及参数与具体实施方式一至六之一相同。
具体实施方式八:本实施方式与具体实施方式一至七之一不同的是:步骤七中各个计算进程根据字段4获得最高值的一行的内容对计算进程对应的栅格数据进行聚类,每个栅格的类目标记为距离栅格最近的那个矢量中心点所对应的类目即为得到栅格聚类的结果;管理进程分别从各个计算进程收集栅格聚类的结果,并将栅格聚类的结果写入地理栅格数据文件中具体步骤如下(如图6所示):
(1)、管理进程找到聚类矢量中心表中字段4数值最高的一行,将字段4数值最高一行的类目中心点矢量列表发送给各个计算进程;
(2)、各个计算进程将接收到的聚类矢量中心表的内容确定在计算进程内所有栅格数据的类属关系;
(3)、设变量counter=1;
(4)、向第counter行对应的计算进程发出收集第counte行栅格数据中每一个栅格的类属情况的请求;
counter行对应的计算进程的ID采用如下公式计算:
ID=counter%N+1个进程
对应的计算进程的ID可以由ID=counter%N+1的公式计算出来,比如第1001行对应的是3号进程,那么管理进程应该向3号进程索要该行聚类的结果;
(5)、收集到counter行栅格数据的每一个栅格的类属情况之后,将counter行栅格数据的每一个栅格的类属情况写入到结果栅格数据文件中;
(6)、counter=counter+1;
(7)、如果counter大于大型地理栅格数据的行数RowNum,那么转到步骤(8),否则转到步骤(4);
(8)、结果栅格数据文件写入过程结束。其它步骤及参数与具体实施方式一至七之一相同。
采用以下实施例验证本发明的有益效果:
实施例一:
本实施例一种处理大型地理栅格数据的并行聚类方法,具体是按照以下步骤制备的:为了验证和测试本专利提出方法,引入我国沿海地区的一部分地理栅格数据,该数据每个栅格的分辨率为1米×1米,包含5个空间属性,栅格数目为3万×3万,其数据文件大小为35G。将每个栅格的空间属性映射为256级灰度图,图8(a)~图8(e)为地理栅格数据的5个空间属性,将看到每一个空间属性所示的效果:
测试用计算机集群环境为1台8G内存的服务器充当管理节点,40台包含8G内存计算机充当计算节点,每个计算节点内存最大加载的数据量为6G(计算节点需要预留出一部分内存给操作系统和其他程序使用),通过千兆局域网连接在一起。显然任何一台计算机的内存都无法加载35G数据,传统的加载之后在运行的方法无法正常运行。
利用本发明提出的方法,对改栅格数据进行聚类。
1、通过步骤一计算出共需要6个计算节点。
2、通过步骤二将整个数据分散加载到6个计算节点之中,管理节点负责分配数据,每个计算节点加载了5.83G的数据,实现的所有数据在集群内部的加载;加载结果如图9(a)~图9(f)所示,每个计算节点均加载了部分栅格数据:
3、通过步骤三、步骤四和步骤五获得聚类矢量中心表,通过步骤六获得最终的聚类效果,将原有的拥有5个空间属性,每个属性包含多种数值可能的大型栅格数据分为了4个类目。图10为输出栅格的类属结果转换为灰度图像的结果,对于属于类目1的栅格标记为白色,对于该类目的栅格其对应的地表类型大多属于旱地和干旱的草地;属于类目2的栅格标记为浅灰色,对于该类目的栅格其对应的地表类型大多属于沼泽;属于类目3的栅格标记为深灰色,对于该类目的栅格其对应的地表类型大多属于草地;属于类目4的栅格标记为深黑色,对于该类目的栅格其对应的地表类型大多属于水田;
本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,本领域技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (8)
1.一种处理大型地理栅格数据的并行聚类方法,其特征在于一种处理大型地理栅格数据的并行聚类方法具体是按照以下步骤进行的:
步骤一、在计算机集群上,利用管理节点启动管理进程,管理进程根据大型地理栅格数据量计算参与计算的计算节点数量,并在每个计算节点上启动计算进程,同时为每个计算进程编号;其中,一个计算机集群包含5~100台通过互联网连接的计算机,在计算机集群中任选一台计算机充当管理节点,计算机集群中除管理节点之外其它节点充当计算节点;其中,大型地理栅格数据的数据量为大于1000M;
步骤二、管理进程逐行读取大型地理栅格数据,将整个大型地理栅格数据分散加载到N个计算进程,将每行大型地理栅格数据发送给对应编号为ID的计算进程;
步骤三、管理进程随机生成M组聚类解的初始值,其中,每一组聚类解的初始值包含一个类目个数和一个类目中心点矢量列表;
步骤四、管理进程根据步骤三获得的M组类目个数和M组类目中心点矢量列表构造具有M个条目的聚类矢量中心表,将聚类矢量中心表发送给各个计算进程;
在M个条目的聚类矢量中心表中,一共有M行记录,每一行代表栅格数据的一个聚类的解;每一个聚类的解包含4个字段内容:
字段1:聚类解的编号;
字段2:类目个数,对应聚类解的类目个数;
字段3:类目中心点矢量列表,对应一组聚类中心点的矢量;
字段4:聚类结果质量,用于描述聚类质量,初始化是默认置为0;
步骤五、管理进程控制迭代求解过程;
步骤五一、每次迭代过程中,各个计算进程根据聚类矢量中心表进行聚类计算,更新步骤四得到的聚类矢量中心表的内容,并发送回管理进程;
步骤五二、管理进程根据各个计算进程的聚类矢量中心表,更新管理进程的聚类矢量中心表,并发送回各个计算进程重复步骤五一;经过5次迭代聚类矢量中心表的字段4出现2次相同的最高的评价值,停止迭代即得到最终的聚类矢量中心表;
其中,字段4为聚类结果质量,用于描述聚类质量,初始化是默认值为0;最高的评价值具体为在聚类矢量中心表中,字段4获得最高值的那一行;
步骤六、在步骤五中得到的管理进程获得的最终的聚类矢量中心表中,字段4获得的最高值一行的字段2描述了类目个数和字段4获得最高值的一行的字段3描述了每个类目的对应的矢量中心点;将字段4获得最高值的一行的内容发送给各个计算进程;其中,字段4获得最高值的一行的内容具体包括字段1、字段2、字段3和字段4;
步骤七、各个计算进程根据字段4获得最高值的一行的内容对计算进程对应的栅格数据进行聚类,每个栅格的类目标记为距离栅格最近的那个矢量中心点所对应的类目即为得到栅格聚类的结果;管理进程分别从各个计算进程收集栅格聚类的结果,并将栅格聚类的结果写入地理栅格数据文件中;即完成了一种处理大型地理栅格数据的并行聚类方法。
2.根据权利要求1所述一种处理大型地理栅格数据的并行聚类方法,其特征在于:步骤一中在计算机集群上,利用管理节点启动管理进程,管理进程根据大型地理栅格数据量计算参与计算的计算节点数量,并在每个计算节点上启动计算进程,同时为每个计算进程编号具体步骤如下:
(1)管理节点启动管理进程;
(2)管理进程读取待聚类的大型地理栅格数据的行数RowNum、列数ColNum和文件总的大小SumSize;待聚类的大型地理栅格数据每一行大小RowSize的计算方式为:
RowSize=SumSize/ColNum;
(3)管理进程计算N个计算节点;
根据每一个计算节点的最大数据加载量为MaxMemory,每一个计算节点最大加载的栅格数据行数MaxRowNum为:
MaxRowNum=MaxMemroy%RowSize
加载N个计算节点的计算公式为:
N=Round(RowNum/MaxRowNum+0.5)
其中,Round为四舍五入操作,%表示求余数;
(4)利用N个计算节点的每个节点启动一个计算进程,从1到N对计算进程进行编号。
3.根据权利要求2所述一种处理大型地理栅格数据的并行聚类方法,其特征在于:步骤二中管理进程逐行读取大型地理栅格数据,将整个大型地理栅格数据分散加载到N个计算进程,将每行大型地理栅格数据发送给对应编号为ID的计算进程具体步骤所示如下:
(1)设定管理进程内的变量counter=0;
(2)counter=counter+1;
(3)管理进程读取大型地理栅格数据中第counter行的数据,将大型地理栅格数据中第counter行的数据发送给第counter行的数据对应编号为ID的计算进程,编号为ID的计算进程在计算进程的内存空间中存储在大型地理栅格数据中第counter行中;
其中,将大型地理栅格数据中第counter行的数据发送给第counter行的数据对应编号为ID的计算公式如下:
ID=counter%N+1
(4)若counter比大型地理栅格数据的行数小,那么转到步骤(2),若counter大于等于大型地理栅格数据的行数转到步骤(5);
(5)管理进程通知所有计算进程数据传输过程结束。
4.根据权利要求3所述一种处理大型地理栅格数据的并行聚类方法,其特征在于:步骤三中管理进程随机生成M组聚类解的初始值包含类目个数和类目中心点矢量列表具体为:
(1)类目个数CenterNum:CenterNum为一个大于等于2并且小于等于最大类目个数MaxCenterNum的数值:
CenterNum=Random(MaxCenterNum-1)+2;
MaxCenterNum=Round(M/2+0.5)
其中,Random(MaxCenterNum-1)产生一个0到MaxCenterNum-1的随机数;Round()为四舍五入操作;
(2)类目中心点矢量列表CenterVectorList:CenterVectorList随机生成CenterNum个类目中心点矢量;
对于大型地理栅格数据包含FeatureNum个空间属性,随机生成类目中心点为一个FeatureNum维度的矢量Vector=(F1,F2,…FfeatureNum),Vector中的每一个维度Fi表示为:
Fi=(Max(Fi)-Min(Fi))(Random(100))/100+Min(Fi)
其中,Max(Fi)表示大型地理栅格数据中第i维度的最大值,Min(Fi)表示大型地理栅格数据中第i维度的最小值,Random(100)产生一个0~100的随机数。
5.根据权利要求4所述一种处理大型地理栅格数据的并行聚类方法,其特征在于:步骤五中管理进程控制迭代求解过程具体步骤如下:
(1)、管理进程向各个计算进程发送指令后,管理进程处于等待结果状态;
(2)、计算进程遍历聚类矢量中心表的每一行进行计算,更新每一行的字段3类目中心点列表;对于聚类矢量中心表的一行,计算进程根据字段3类目中心点列表将计算进程中的栅格数据进行归类,计算一个类目的栅格的每一维度的均值,所有的维度的均值共同构成类目对应的新的中心点,将类目对应的所有新的中心点构成新的类目中心点列表,再将新的类目中心点列表更新到聚类矢量中心表的对应行的字段3之中;
(3)、管理进程收集步骤(2)更新后的聚类矢量中心表,更新管理进程的聚类矢量中心表;
(4)、初始化步骤(3)中更新后的聚类矢量中心表的聚类结果质量最低的一行的类目个数与类目中心点矢量列表;
(5)、管理进程将步骤(4)初始化后的聚类矢量中心表发回给各个计算进程;
(6)、经过5次迭代后的聚类矢量中心表的字段4的最高值没有发生变化那么转到步骤(7)
(7)、管理进程控制的迭代求解过程结束;即得到最终的聚类矢量中心表。
6.根据权利要求5所述一种处理大型地理栅格数据的并行聚类方法,其特征在于:计算进程遍历聚类矢量中心表的每一行进行计算,更新每一行的字段3类目中心点列表;对于聚类矢量中心表的一行,计算进程根据字段3类目中心点列表将计算进程中的栅格数据进行归类,计算一个类目的栅格的每一维度的均值,所有的维度的均值共同构成类目对应的新的中心点,将类目对应的所有新的中心点构成新的类目中心点列表,再将新的类目中心点列表更新到聚类矢量中心表的对应行的字段3之中具体步骤如下:
(1)、指定迭代变量counter=1;
(2)、读取聚类矢量中心表第counter行内容,根据类目个数的列表、类目中心点的列表以及步骤二中分散加载到N个计算进程的大型地理栅格数据进行一次K-Means聚类,获得新的类目中心点的列表;
(3)、将新的类目中心点列表写回到聚类矢量中心表第counter行的第3个字段;
(4)、通过如下公式计算聚类结果质量:
其中,
式中,xj为栅格数据中第j个栅格的矢量,Zk为中心点列表第k个中心的矢量,CenterNum为聚类中心的个数,Zi为中心点列表第i个中心的矢量,Zj为中心点列表第j个中心的矢量;
(5)、将(4)获得的栅格聚类结果质量数值评价结果写入到聚类矢量中心表第counter行的第4个字段;
(6)、counter=counter+1;
(7)、如果counter大于M那么执行步骤(8),否则转到步骤(2);
(8)、结束更新字段过程;
其中,M为对应聚类矢量中心表的行数。
7.根据权利要求6所述一种处理大型地理栅格数据的并行聚类方法,其特征在于:更新管理进程的聚类矢量中心表的具体步骤如下:
对于聚类矢量中心表中的每一条记录,分别更新字段3和字段4;
对于字段3,类目中心点矢量列表中的第i个中心矢量Zi′计算公式如下:
其中,Z(P)i为第P个计算进程的对应类目中心点矢量列表中第i个中心矢量;Zi′为类目中心点矢量列表中更新之后的第i个中心矢量;
对于字段4,字段4的质量计算公式如下:
其中,栅格聚类结果质量(P)为第P个计算进程的栅格聚类结果质量;N为计算节点个数。
8.根据权利要求7所述一种处理大型地理栅格数据的并行聚类方法,其特征在于:步骤七中各个计算进程根据字段4获得最高值的一行的内容对计算进程对应的栅格数据进行聚类,每个栅格的类目标记为距离栅格最近的那个矢量中心点所对应的类目即为得到栅格聚类的结果;管理进程分别从各个计算进程收集栅格聚类的结果,并将栅格聚类的结果写入地理栅格数据文件中具体步骤如下:
(1)、管理进程找到聚类矢量中心表中字段4数值最高的一行,将字段4数值最高一行的类目中心点矢量列表发送给各个计算进程;
(2)、各个计算进程将接收到的聚类矢量中心表的内容确定在计算进程内所有栅格数据的类属关系;
(3)、设变量counter=1;
(4)、向第counter行对应的计算进程发出收集第counte行栅格数据中每一个栅格的类属情况的请求;
counter行对应的计算进程的ID采用如下公式计算:
ID=counter%N+1的进程;
(5)、收集到counter行栅格数据的每一个栅格的类属情况之后,将counter行栅格数据的每一个栅格的类属情况写入到结果栅格数据文件中;
(6)、counter=counter+1;
(7)、如果counter大于大型地理栅格数据的行数RowNum,那么转到步骤(8),否则转到步骤(4);
(8)、结果栅格数据文件写入过程结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510570327.7A CN105045934A (zh) | 2015-09-09 | 2015-09-09 | 一种处理大型地理栅格数据的并行聚类方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510570327.7A CN105045934A (zh) | 2015-09-09 | 2015-09-09 | 一种处理大型地理栅格数据的并行聚类方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105045934A true CN105045934A (zh) | 2015-11-11 |
Family
ID=54452480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510570327.7A Pending CN105045934A (zh) | 2015-09-09 | 2015-09-09 | 一种处理大型地理栅格数据的并行聚类方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105045934A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762898A (zh) * | 2018-04-09 | 2018-11-06 | 平安科技(深圳)有限公司 | 一种线程接口的管理方法、终端设备及计算机可读存储介质 |
CN109375873A (zh) * | 2018-09-27 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种分布式存储集群中数据处理守护进程的初始化方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060271601A1 (en) * | 2005-05-24 | 2006-11-30 | International Business Machines Corporation | System and method for peer-to-peer grid based autonomic and probabilistic on-demand backup and restore |
CN102819677A (zh) * | 2012-07-30 | 2012-12-12 | 河海大学 | 基于单场降雨类型的降雨站点相似性评价方法 |
-
2015
- 2015-09-09 CN CN201510570327.7A patent/CN105045934A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060271601A1 (en) * | 2005-05-24 | 2006-11-30 | International Business Machines Corporation | System and method for peer-to-peer grid based autonomic and probabilistic on-demand backup and restore |
CN102819677A (zh) * | 2012-07-30 | 2012-12-12 | 河海大学 | 基于单场降雨类型的降雨站点相似性评价方法 |
Non-Patent Citations (2)
Title |
---|
杨典华: "协作式大规模地理栅格数据并行处理方法研究", 《中国博士学位论文全文数据库(电子期刊)》 * |
潘欣等: "并行的中心点优化选取遥感影像聚类算法", 《吉林大学学报(信息科学版)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108762898A (zh) * | 2018-04-09 | 2018-11-06 | 平安科技(深圳)有限公司 | 一种线程接口的管理方法、终端设备及计算机可读存储介质 |
CN109375873A (zh) * | 2018-09-27 | 2019-02-22 | 郑州云海信息技术有限公司 | 一种分布式存储集群中数据处理守护进程的初始化方法 |
CN109375873B (zh) * | 2018-09-27 | 2022-02-18 | 郑州云海信息技术有限公司 | 一种分布式存储集群中数据处理守护进程的初始化方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zhang et al. | Spatial identification of land use functions and their tradeoffs/synergies in China: Implications for sustainable land management | |
Fang et al. | What drives urban carbon emission efficiency?–Spatial analysis based on nighttime light data | |
Mi et al. | Carbon emissions of cities from a consumption-based perspective | |
Ma et al. | Analysis of the spatial variations of determinants of agricultural production efficiency in China | |
Nie et al. | Simulating future land use by coupling ecological security patterns and multiple scenarios | |
Shi et al. | Evaluation method of urban land population carrying capacity based on GIS—A case of Shanghai, China | |
Liu et al. | Cost-based modelling of optimal emission quota allocation | |
Li et al. | Pattern of spatial evolution of rural settlements in the Jizhou District of China during 1962–2030 | |
Huang et al. | A land-use spatial optimum allocation model coupling a multi-agent system with the shuffled frog leaping algorithm | |
CN108537440A (zh) | 一种基于bim的建筑方案工程管理系统 | |
Chang et al. | Carbon emission performance and quota allocation in the Bohai Rim Economic Circle | |
CN103150614B (zh) | 一种土地利用空间自动配置方法 | |
CN105761192A (zh) | 村镇区域土地利用规划智能化方法和智能化集成系统 | |
Yu et al. | Spatiotemporal interaction between ecosystem services and urbanization in China: Incorporating the scarcity effects | |
Lin et al. | Energy efficiency of the mining sector in China, what are the main influence factors? | |
CN105260523A (zh) | 一种分布式并行空间可视域分析方法 | |
Miao | Industry 4.0: technology spillover impact on digital manufacturing industry | |
CN110288133A (zh) | 基于远景年饱和负荷分布图的规划变电站自动选址方法 | |
Yu et al. | A new algorithm based on Region Partitioning for Filtering candidate viewpoints of a multiple viewshed | |
CN105045934A (zh) | 一种处理大型地理栅格数据的并行聚类方法 | |
Wang et al. | The category identification and transformation mechanism of rural regional function based on SOFM model: A case study of Central Plains Urban Agglomeration, China | |
CN110298909A (zh) | 一种基于三维元胞自动机的风化现象模拟方法 | |
Cao et al. | Land use spatial optimization for city clusters under changing climate and socioeconomic conditions: A perspective on the land-water-energy-carbon nexus | |
Zhao et al. | Achieving the supply-demand balance of ecosystem services through zoning regulation based on land use thresholds | |
CN104598614A (zh) | 一种基于地理语义的数据多比例尺模态扩散更新方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20151111 |
|
RJ01 | Rejection of invention patent application after publication |