CN106023161B - 一种破碎山脊线的自动关联方法 - Google Patents
一种破碎山脊线的自动关联方法 Download PDFInfo
- Publication number
- CN106023161B CN106023161B CN201610312031.XA CN201610312031A CN106023161B CN 106023161 B CN106023161 B CN 106023161B CN 201610312031 A CN201610312031 A CN 201610312031A CN 106023161 B CN106023161 B CN 106023161B
- Authority
- CN
- China
- Prior art keywords
- ridge line
- line feature
- node
- feature
- attribute
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30181—Earth observation
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种破碎山脊线的自动关联方法。该方法包括如下步骤:(1)对破碎山脊线进行预处理,并设定关联约束条件;(2)对破碎山脊线进行空间剖分处理,得到每条山脊线的空间影响范围;(3)基于空间剖分结果,构建山脊线的ARG模型;(4)基于关联约束条件,提取符合关联约束条件的山脊线要素对,进行山脊线要素的关联;(5)对关联处理后的山脊线重构ARG模型,继续提取符合关联约束条件的山脊线要素对,进行关联处理,循环这一过程,直至山脊线图层中不存在符合关联约束条件的邻接山脊线要素对,则关联处理结束。
Description
技术领域
本发明属于地理信息技术应用领域,具体涉及一种破碎山脊线的自动关联方法。
背景技术
山脊线是地形起伏变化的分界线,在地形表示方面起着重要作用。数字地面模型(DEM)数据中隐含了相关的山脊线信息,因而,基于DEM提取山脊线已得到了广泛的研究。
传统的基于DEM提取山脊线的研究中主要采用基于地形表面流水分析的方法。以山脊线的物理特性为依据,通过模拟和分析地形表面流水的运动状况得到分水线(山脊线)(参见《提取山脊线和山谷线的一种新方法》,黄培之,武汉大学学报:信息科学版,2001年,26(3))。由于流水模拟的方法在地形破碎的地区噪音非常大,难免会遗漏部分地形特征点,导致局部地形特征线在连接时较为困难,进而提取的山脊线易破碎并产生很多毛刺(参见《利用等高线数据提取山脊(谷)线算法研究》,靳海亮,康建荣,高井祥,武汉大学学报:信息科学版,2005年,30(9))。
为了克服这一不足,传统的提取方法采用对地形数据进行洼地填充的方式,来剔除噪音,进而减少破碎和毛刺。该方法在一定程度上提高了山脊线的连续性和正确性,但提取的山脊线仍需借助人工判别的手段对山脊线进行关联连接处理后,方可运用到具体分析和应用中,处理效率低,且易引入人为错误。
发明内容
本发明针对传统的基于DEM提取的山脊线中出现的毛刺和山脊线破碎问题,提出一种破碎山脊线的自动关联方法。该方法可实现毛刺的剔除和破碎山脊线的关联,满足自动化提取山脊线的需要。本发明方法同样适用于破碎山谷线的自动关联处理。
本发明的技术方案如下:
首先,对破碎山脊线进行预处理,并设定关联约束条件;然后,对破碎山脊线进行空间剖分处理,构建山脊线的邻接关系图(Attributed Relation Graph,简称ARG)模型;其次,基于关联约束条件,提取符合关联约束条件的山脊线要素对,并进行山脊线要素的关联;最后,对关联处理后的山脊线重构ARG模型,继续提取符合关联约束条件的山脊线要素对,进行关联处理,直至山脊线图层中不存在符合关联约束条件的邻接山脊线要素对,则关联处理结束。
上述方法的具体步骤如下:
(一)破碎山脊线的预处理
步骤11:加载山脊线图层,并将相应的山脊线要素读入集合R1={ri|i=1,2,…,n1},n1为山脊线要素的条数;
步骤12:依据山脊线图层信息,设定关联约束条件:设置相对走向约束值SThreshold、相对趋势约束值IThreshold和最短距离约束值DThreshold;
步骤13:剔除非线状要素的山脊线要素,并读入集合R2={ri|i=1,2,…,n2},n2为剔除了非线状要素的山脊线的个数;
步骤14:针对存在公共点的两山脊线要素进行去毛刺处理,并读入集合R3={ri|i=1,2,…,n3},n3为预处理后的山脊线要素的个数;具体处理过程如下:
a)将山脊线要素ra和rb分别读入点集PointA={p1,p2,…,pu}和PointB={p1,p2,…,pv},u、v分别为点集PointA、PointB中点的个数;
b)计算山脊线要素ra和rb的公共交点,存入点集CrossPoint={p1,p2,…,pc},c为公共交点的个数;
c)若公共交点的个数c=1,则按均值法或最大频数法计算山脊线要素ra的走向Strikea和山脊线要素rb的走向Strikeb;否则,跳转下面的步骤f);
d)若|Strikea-Strikeb|<SThreshold,则对山脊线要素ra和rb进行合并处理;否则,跳转e);
e)对山脊线要素ra和rb进行打断操作,山脊线要素ra和山脊线要素rb均删除公共交点CrossPoint;
f)公共交点的个数c≥2,计算山脊线要素ra的长度lengtha和山脊线要素rb的长度lengthb;
若lengtha>lengthb,则删除长度较短山脊线要素rb;否则,删除山脊线要素ra;
(二)山脊线要素的空间剖分处理
步骤21:将山脊线要素集合R3读入点集P={pi(xi,yi)|i=1,2,…,m},m为点要素的个数,并使用点集P的“山脊线要素”属性来记录点要素所归属的山脊线要素;
步骤22:基于点集P,构建Voronoi图Vor;以图层的最小外包矩形为界,构建点集P的Voronoi图Vor={Ti|i=1,2,…,m′},Ti表示第i个Thicssen多边形,m'为构成Voronoi图Vor的Thicssen多边形T的个数;并将点集P中各点的“山脊线要素”属性,赋给包含该点的相应Thicssen多边形Ti的“山脊线要素”属性;
步骤23:基于Thicssen多边形Ti的“山脊线要素”属性合并Thicssen多边形Ti,得到每条山脊线要素ri的影响范围;依次将Voronoi图Vor中具有相同“山脊线要素”属性值的Thicssen多边形Ti合并为一个多边形T'i,生成图Vor'={T'i|i=1,2,...,n'},n'为图Vor'的Thicssen多边形的个数;图Vor'即山脊线要素集合R3基于最小外包矩形的空间影响范围集合,T'i代表第i条山脊线要素ri的影响范围;
(三)基于空间剖分结果,构建山脊线要素的ARG模型G=(V,E)
步骤31:计算山脊线要素的ARG模型G=(V,E)中节点集合V={v1,v2,…,vn3}及其相关属性;其中,V中每个节点代表一个山脊线要素对象,E为ARG模型的边集合;具体步骤如下:
a)计算山脊线要素ri的剖分范围T'i的质心点ci得到节点vi,并存入节点集合V中;i为循环变量,i∈[1,n3],初值为1;
b)读取山脊线要素ri的点集Ci={ci1,ci2,...,cit},t为山脊线要素ri中点的个数;
c)基于点集Ci分别计算直线ci1ci2、ci2ci3、…、cit-1cit的倾斜角α12、α23、…、αt-1t,并按最大频数法或均值法计算山脊线要素的走向Strikei,Strikei∈[0°,180°),并存入节点vi的属性中;
d)基于点集Ci,计算山脊线要素ri的最小凸包的点集Hi={hi1,hi2,...,his},s为点的个数,并存入节点vi的属性中;
e)求出山脊线要素ri的剖分范围T'i的顶点集Vti={pi1,pi2,...,pil},并存入节点vi的属性,l为顶点集Vti中点的个数;
f)若循环变量i<n3,则i加1,继续执行步骤a)-e),直至所有节点及其属性均提取完成;
步骤32:基于节点集合V,计算山脊线的ARG模型G=(V,E)的边集合w1为边的个数,具体步骤如下:
a)读取节点集合V中的节点vi和vj所对应的影响范围T'i的顶点集Vti和影响范围T'j的顶点集Vtj;其中,i为循环变量,i∈[1,n3-1],初值为1;j为循环变量,j∈[i+1,n3],初值为i+1;
b)判断顶点集Vti和Vtj是否存在连续的两公共点,若存在,则山脊线要素ri的影响范围T'i和rj的影响范围T'j为邻接拓扑关系,连接节点vi和vj,得到ARG模型一条边e=(vi,vj),称节点vi与vj互为邻接节点,山脊线要素ri和山脊线要素rj为边e所对应的邻接山脊线要素对,并将边e存入边集合E;否则,跳转步骤c);
c)若j≤n3,则循环变量j加1,继续执行步骤a)和b);否则,循环变量i加1,执行下一步骤d);
d)若循环变量i≤n3-1,则循环变量j=i+1,继续执行步骤a)-c);否则,ARG模型的边集合已提取结束;
步骤33:计算ARG模型G=(V,E)的边集合的属性{S,I,D},S表示边所对应的邻接山脊线要素对的相对走向关系,I表示邻接山脊线要素对的趋势关系,D表示邻接山脊线要素对的最短距离关系;具体步骤如下:
a)读取边集合E的第k条边ek,k为循环变量,k∈[1,w1],获取节点va和节点vb的走向属性Strikea和Strikeb;
b)计算由节点va与vb所对应的山脊线要素ra与rb相对走向关系Sk=Strikea-Strikeb,并存入边ek的属性中;
c)计算节点va和vb构成的直线vavb的倾斜角αk,αk∈[0°,180°),作为边ek的相对趋势关系Ik,并存入边ek的属性中;
d)获取边ek的节点va的最小凸包的点集Ha={ha1,ha2,…,hap}和节点vb的最小凸包的点集Hb={hb1,hb2,…,hbq},p和q均为点的个数;
e)按式(1)计算hai与hbj的距离dij,并存入最短距离集合Distance中,其中i和j为循环变量,初值均为1,i∈[1,p],j∈[1,q];
其中,(xai,yai)和(xbj,ybj)分别为hai和hbj的坐标;
f)若循环变量j≤q,循环变量j加1,继续执行上一步骤e);否则,循环变量i加1,执行下一步骤g);
g)若循环变量i≤p,则循环变量j=1,继续执行步骤e);否则,距离dij计算结束,执行下一步骤h);
h)读取最短距离集合Distance,取集合Distance中的最小值Dk=min{d11,d12,…,dpq}作为边ek的最短距离关系,并存入边ek的属性中;
i)读取边集合E的下一条边ek+1,循环以上步骤,直至边集合E中每条边的相对走向关系S、相对趋势关系I和最短距离关系D均计算结束;
(四)山脊线的关联处理
步骤41:遍历ARG模型的边集合E={e1,e2,…,ew1}中的每条边e及属性{S,I,D},并获取边e的节点va和节点vb的Strikea和Strikeb;
步骤42:对每条边e均进行关联约束条件的判断,若均满足以下条件:
则边e符合关联约束条件,节点va和vb所对应的山脊线要素ra和rb满足关联约束条件,并将边e记为e'存入边集合E';若不满足,则跳转下一步骤43;
步骤43:循环执行步骤42,直至所有边e均进行关联约束条件的判断后,得到边集合w2为边集合E′内的边数;
步骤44:基于边集合进行山脊线要素的关联处理,具体步骤如下:
a)读取边集合E′的第i条边e'i,并提取边e'i的节点va和vb,其中i为循环变量,初值为w2;
b)读取并提取边集合E'的第j条边e'j的节点vc和vd,其中j为循环变量,初值为w2-1;
c)若节点va、vb、vc和vd,均满足va≠vc,va≠vd,vb≠vc,vb≠vd,则边e'i与边e'j间不存在共同关联,循环变量j减1,执行步骤e);否则执行步骤d);
d)由于边e'i和边e'j存在共同关联,将e'j存入集合Li(Li存储与e'i存在共同合并的边e')循环变量j减1,并跳转步骤e);
e)若j≥1,则跳转步骤b),否则执行下一步骤f);
f)将边e'i存入集合Li,依次读取Li中边e',并按式(2)分别计算每条边e'所对应的节点ve和vf对应的山脊线要素re和rf的差异度Difference,并存入集合Sum中;
Difference=p1×|S|+p2×(|Strikee-I|+|Strikee-I|+p3×D (2)
其中,p1,p2,p3分别代表相对走向关系S、相对趋势关系I、最短距离关系D的权值,p1、p2、p3均∈(0,1)之间,且满足p1+p2+p3=1;
g)遍历集合Sum,并获取值最小的差异度Difference所对应的边e',对边e'的节点ve和vf所对应的山脊线要素re和rf进行关联处理;
h)循环变量i减1,若i≥2,则循环变量j=i-1,继续执行步骤a)-步骤g);否则,输出关联后的山脊线要素集合LM1={ri|i=1,2,…,l1},l1为第一次关联处理后的山脊线的条数;
步骤45:循环执行步骤(一)至(四),直至循环K次后该山脊线要素集合LMK不存在符合关联约束条件的邻接山脊线要素对,则连接处理结束,输出山脊线要素集合LMK={ri|i=1,2,…,lK}。
本发明提出一种破碎山脊线的自动关联方法。该方法以关联约束为前提条件,提取符合关联约束条件的邻接山脊线要素对进行关联处理。若某一山脊线要素与多个山脊线要素间均满足关联约束条件,即存在共同关联对象时,则计算该山脊线要素与其所有邻接山脊线要素的差异度,选取与其差异度最小的邻接山脊线要素作为关联对象,进行关联连接。本方法同样适用于破碎山谷线的自动关联。与传统的方法相比,本方法采用关联处理的方式,在一定程度上克服了由于DEM数据抗躁性较差,而引起的地形特征点连接困难的问题,并对毛刺进行了剔除处理,进而满足了自动化提取山脊线的需要。
附图说明
图1本发明方法的流程图;
图2庐山山脊线数据;
图3预处理后的庐山山脊线数据;
图4庐山山脊线图层的空间剖分结果图V';
图5庐山山脊线的ARG模型;
图6ARG模型边E的属性表;
图7为实施例中第1次关联处理后的庐山山脊线图层的空间剖分结果图;
图8为实施例中第6次关联处理后的庐山山脊线图层的空间剖分结果图;
图9为实施例中第6次关联处理后的符号化效果图。
注:图3-图5均为第一次关联处理过程图。
具体实施方式
本发明的方法是适用于破碎山脊线和山谷线的自动关联处理,下面结合附图,给出破碎山脊线的实施例,来进一步说明本发明的效果。具体流程如图1所示。
本实例的实验区域位于江西北部,东经115°57'-116°11',北纬29°33'-29°35'。实验数据为基于地形表面流水分析原理,借助ArcGIS软件,提取得到实验区域的山脊线矢量数据。
以庐山破碎山脊线的关联为例,具体的实施过程如下:
(一)破碎山脊线的预处理
步骤11:加载山脊线图层,如图2所示。并将相应的山脊线要素读入集合R1中。本实例中R1={ri|i=1,2,…,974,共974个山脊线要素;
步骤12:依据山脊线图层信息设定关联约束条件:相对走向约束值SThreshold、相对趋势约束值IThreshold和最短距离约束值DThreshold。本实例中,相对走向约束值SThreshold设为25°、相对趋势约束值IThreshold设为45°和最短距离约束值DThreshold设为150m;
步骤13:剔除非线状要素的山脊线要素,本实例中共剔除113条山脊线要素。并读入集合R2,共861条山脊线要素;
步骤14:针对存在公共点的两山脊线要素进行去毛刺处理,并读入集合R3={ri|i=1,2,…,n3}。本实例中,以有公共点的山脊线要素r795和山脊线要素r796为例,具体步骤如下:
a)将山脊线要素r795和r796分别读入点集PointA={p1,p2,…,p7}和PointB={p1,p2,…,p14}。PointA中点的个数u=7,PointB中点的个数v=14;
b)计算山脊线要素r795和r796的公共交点,存入集合CrossPoint,公共交点个数c=1;
c)公共交点的个数c=1,按均值法计算山脊线要素r795的走向Strike795=41.03°,按最大频数法计算山脊线要素r796的走向Strike796=28.08°;
d)|Strike795-Strike796|=12.95°<SThreshold=25°,故对山脊线要素r795和r796进行合并处理;
对有公共点的山脊线要素均进行步骤14操作后,得到R3={ri|i=1,2,…,598,共n3=598条预处理后的山脊线要素,如图3所示。
(二)山脊线要素的空间剖分处理
步骤21:将山脊线要素集合R3读入点集P={pi(xi,yi)|i=1,2,…,4352},共4352个点要素,并使用点集P的“山脊线要素”属性来记录该点所归属的山脊线要素。如点集P中的点要素1,点要素2,点要素3,点要素4,点要素5均归属于山脊线r1;
步骤22:基于点集P,构建Voronoi图Vor。以图层的最小外包矩形为界,本实例中山脊线要素图层的最小外包矩形的顶点坐标为{(399064.06,3274424.25),(404729.06,3274424.25),(404729.06,3270731.75),(399064.06,3270731.75),(399064.06,3274424.25)}。以最小外包矩形边界为界,得到Voronoi图Vor,Vor={Ti|i=1,2,…,4352}共有4352个Thicssen多边形构成。并将点集P中各点的“山脊线要素”属性,赋给包含该点的相应Thicssen多边形的“山脊线要素”属性,如Thicssen多边形T1、T2、T3、T4、T5分别包含点要素1、点要素2、点要素3、点要素4、点要素5,则T1、T2、T3、T4、T5“山脊线要素”的属性值均为1;
步骤23:基于Thicssen多边形的“山脊线要素”属性合并Thicssen多边形,得到每条山脊线要素ri的剖分范围。以“山脊线要素”属性值为1为例,则“山脊线要素”属性值均为1的Thicssen多边形T1、T2、T3、T4、T5,合并为一个多边形T'1,多边形T'1代表山脊线要素r1的影响范围。依次合并后,本实例最终得到合并后的图Vor′={T′i|i=1,2,…,598},如图4所示。图Vor'共由598个多边形组成,每个多边形对应一个山脊线要素的影响范围。
(三)基于空间剖分结果,构建山脊线要素的ARG模型G=(V,E)
步骤31:计算山脊线要素的ARG模型G=(V,E)中节点集合V={v1,v2,…,v598}及其相关属性。其中,V中每个节点代表一个山脊线要素对象,E为ARG模型的边集合。本实例中,以山脊线r1为例,具体步骤如下:
a)计算山脊线要素r1的剖分范围T'1的质心点c1得到节点v1={402037.969,3274311.5},并依次存入节点集合V中;
b)读取山脊线要素r1的点集C1={c11,c12,...,c15},点的个数t=5;
c)基于点集C1={c11,c12,...,c15},按均值法计算直线c11c12、c12c13、c13c14、c14c15的倾斜角α12=123.77°、α23=145.35°、α34=161.92°、α45=172.48°,并存入节点v1的属性中;
d)基于点集C1,计算山脊线要素r1的最小凸包的点集H1={h11,h12,h13,h14},并存入节点v1的属性中;
e)求出山脊线要素r1的剖分范围T'1的顶点集Vt1={p11,p12,...,p120},共20个点,并存入节点v1的属性;
循环以上步骤,直至598个节点及其属性均提取完成;
步骤32:计算ARG模型G=(V,E)的边集合本实例中,以节点v1={402037.969,3274311.5}和v2={401976.2,3274374.25}为例,具体步骤如下:
a)读取节点集合V中的节点v1和v2所对应的空间影响范围T'1的顶点集Vt1={p11,p12,...,p120}和影响范围T'2的顶点集Vt2={p21,p22,...,p221}。此时,循环变量i=1,j=2;
b)顶点集Vt1和Vt2中存在连续的两公共点,则山脊线要素r1的影响范围T'1和r2的影响范围T'2为邻接拓扑关系,连接节点v1和v2,得到ARG模型的第一条边e=(v1,v2)。称节点v1与v2互为邻接节点,山脊线要素r1和山脊线要素r2为边e所对应的邻接山脊线要素对,并将边e存入边集合E;
c)循环变量j=2≤n3=598,则循环变量j加1,继续执行步骤a)和b),直至ARG模型的边集合E均提取结束。本实例中,边集合E={e1,e2,…,e1695},共w=1695条边,如图5所示。
步骤33:计算ARG模型G=(V,E)的边集合E={e1,e2,…,e1695}的属性{S,I,D},S表示该边所对应的邻接山脊线要素对的相对走向关系,I表示邻接邻接山脊线要素对的趋势关系,D表示邻接山脊线要素对的最短距离关系。以边e1为例,具体步骤如下:
a)读取边集合E的第1条边e1,获取节点v1和节点v2的走向属性和Strike1=150.88°和Strike2=16.58°;
b)计算节点v1与v2所对应的山脊线要素r1与r2相对走向关系S=Strikea-Strikeb=134.30°,并存入边e1的属性中;
c)计算由节点v1和v2构成的直线v1v2的倾斜角α=134.55°,作为边e1的山脊线相对趋势关系I,并存入边e1的属性中;
d)获取边e1的两节点v1和v2的最小凸包的点集H1={h11,h12,h13,h14}和H2={h21,h22,…,h29},p=4,q=9;
e)按式(1)依次计算d11,存入最短距离Distance集合,循环变量i=1,j=1:
f)循环变量j=1≤q=9,循环变量j加1,继续执行上一步骤e),本实例中,最短距离集合Distance={13.46,23.49,…,115.30;
g)读取最短距离集合Distance,取集合Distance中的最小值D=min{13.46,23.49,…,115.30}=13.46作为边e1的最短距离关系,D代表节点v1与v2所对应的山脊线要素r1与r2的最短距离;
h)读取边集合E的下一条边e2,循环以上步骤,直至边集合E的每条边的相对走向关系S、相对趋势关系I和最短距离关系D均计算结束。本实例的边集合E={e1,e2,…,e1695}的属性{S,I,D}计算结果如图6所示。
(四)山脊线的关联处理
步骤41:遍历ARG模型的边集合E={e1,e2,…,e1695},本实例以边e1、e1517、e1666为例,进行关联处理。获取边e1、e1517和e1666及其属性{S1,I1,D1}、{S1517,I1517,D1517}和{S1666,I1666,D1666}。并获取边e1的节点v1的Strike1和节点v2的Strike2、边e1517的节点v500的Strike500和节点v560的Strike560和边e1666的节点v559的Strike559和节点v560的Strike560;
步骤42:对边e1、e1517、e1666进行关联约束的判断,边e1计算结果如下:
边e1517的计算结果如下:
边e1666的计算结果如下:
相对走向关系S1>相对走向阈值SThreahold,则边e1不符合关联约束条件,则节点v1和v2所对应的山脊线要素对r1和r2不能进行关联处理,跳转下一步骤43;边e1517和边e1666满足关联约束条件,可进行关联处理,将边e1517和边e1666均存入边集合E';
步骤43:读取边集合E的每条边,循环执行步骤42,直至所有边均进行关联约束的判断后,本实例得到边集合E′={e′1,e′2,…,e′196},共196条边;
步骤44:基于边集合E′={e′1,e′2,…,e′196},进行山脊线要素的关联处理。本实例存在共同关联的边e'188和边e'166为例,具体步骤如下:
a)读取边集合E′={e′1,e′2,…,e′196}中的第188条边e'188,并提取边e'188的节点v559和v560。此时,循环变量i=188;
b)读取并提取边集合E'的第166条边e'166的节点v500和v560。此时,循环变量j=166。
c)由于节点v500、v560与v559、v560间存在共同节点v560,均满足以下条件:v500≠v559,
v500≠v560,v560≠v559,v560=v560,则边e'188与边e'166间存在共同关联,执行步骤d);
d)将边e'166存入集合L188,循环变量j减1,跳转步骤e)。
e)j≥1,跳转步骤b),搜寻与边e'188存在共同合并的所有边,本实例中,仅边e'166与边e'188存在共同合并;
f)将边e'188存入集合L188,依次读取L188中边e'166与边e'188,并按式(2)依次计算边e'166所对应的节点v500和v560对应的山脊线要素r500和r560间的相似度Difference166和边e'188所对应的节点v559和v560对应的山脊线要素r559和r560间的差异度Difference188。本实例中,取p1=0.6,p2=0.2,p3=0.2,计算得到Difference166=0.6×0.14+0.2×(10.79+10.65)+0.2×7.5=5.87和Difference188=0.6×10.55+0.2×(40.4+29.85)+0.2×88.41=38.06,并存入集合Sum中;
g)遍历集合Sum,Difference166=5.87<Difference188=38.06,故对边e'166的节点v500和v560所对应的山脊线要素r500和r560进行关联处理;
h)循环变量i减1,i=187≥2,则循环变量j=187-1=186,继续执行步骤a)-步骤g),直至关联结束。本实例中,共关联了154条山脊线要素,关联后的山脊线要素集合LM1={ri|i=1,2,…,444},共对154条边所对应的山脊线要素进行了关联处理;
步骤45:基于第一次关联后山脊线要素集合LM1={ri|i=1,2,…,444},空间剖分结果V1,如图7所示。循环执行步骤(一)-(四),本实例中,直至循环6次后该山脊线要素集合LM6中已不存在符合关联约束条件的邻接山脊线要素对,输出山脊线要素集合LM6={ri|i=1,2,…,351}。山脊线要素集合LM6的空间剖分结果V6(如图8所示),山脊线要素长度的符号化表示如图9所示。第2、3、4、5、6次关联处理时分别关联了52条、21条、10条、8条和2条山脊线要素。
Claims (3)
1.一种破碎山脊线的自动关联方法,其特征在于,包括如下步骤:首先,对破碎山脊线进行预处理,并设定关联约束条件;然后,对破碎山脊线进行空间剖分处理,构建山脊线的邻接关系图,即ARG模型;其次,基于关联约束条件,提取符合关联约束条件的山脊线要素对,并进行山脊线要素的关联;最后,对关联处理后的山脊线重构ARG模型,继续提取符合关联约束条件的山脊线要素对,进行关联处理,直至山脊线图层中不存在符合关联约束条件的邻接山脊线要素对,则关联处理结束。
2.根据权利要求1所述的一种破碎山脊线的自动关联方法,其特征在于,方法的具体步骤如下:
(一)破碎山脊线的预处理
步骤11:加载山脊线图层,并将相应的山脊线要素读入集合R1={ri|i=1,2,...,n1),n1为山脊线要素的条数;
步骤12:依据山脊线图层信息,设定关联约束条件:设置相对走向约束值SThreshold、相对趋势约束值IThreshold和最短距离约束值DThreshold;
步骤13:剔除非线状要素的山脊线要素,并读入集合R2={ri|i=1,2,...,n2},n2为剔除了非线状要素的山脊线的个数;
步骤14:针对存在公共点的两山脊线要素进行去毛刺处理,并读入集合R3={ri|i=1,2,...,n3),n3为预处理后的山脊线要素的个数;
(二)山脊线要素的空间剖分处理
步骤21:将山脊线要素集合R3读入点集P={pi(xi,yi)|i=1,2,...,m},m为点要素的个数,并使用点集P的“山脊线要素”属性来记录点要素所归属的山脊线要素;
步骤22:基于点集P,构建Voronoi图Vor;以图层的最小外包矩形为界,构建点集P的Voronoi图Vor={Ti|i=1,2,...,m′},Ti表示第i个Thicssen多边形,m′为构成Voronoi图Vor的Thicssen多边形T的个数;并将点集P中各点的“山脊线要素”属性,赋给包含该点的相应Thicssen多边形Ti的“山脊线要素”属性;
步骤23:基于Thicssen多边形Ti的“山脊线要素”属性合并Thicssen多边形Ti,得到每条山脊线要素ri的影响范围;依次将Voronoi图Vor中具有相同“山脊线要素”属性值的Thicssen多边形Ti合并为一个多边形T′i,生成图Vor′={T′i|i=1,2,...,n′},n′为图Vor′的Thicssen多边形的个数;图Vor′即山脊线要素集合R3基于最小外包矩形的空间影响范围集合,T′i代表第i条山脊线要素ri的影响范围;
(三)基于空间剖分结果,构建山脊线要素的ARG模型G=(V,E)
步骤31:计算山脊线要素的ARG模型G=(V,E)中节点集合V={v1,v2,...,vn3}及其相关属性;其中,V中每个节点代表一个山脊线要素对象,E为ARG模型的边集合;具体步骤如下:
a)计算山脊线要素ri的剖分范围T′i的质心点ci得到节点vi,并存入节点集合V中;i为循环变量,i∈[1,n3],初值为1;
b)读取山脊线要素ri的点集Ci={ci1,ci2,...,cit},t为山脊线要素ri中点的个数;
c)基于点集Ci分别计算直线ci1ci2、ci2ci3、...、cit-1cit的倾斜角α12、α23、...、αt-1t,并按最大频数法或均值法计算山脊线要素的走向Strikei,Strikei∈[0°,180°),并存入节点vi的属性中;
d)基于点集Ci,计算山脊线要素ri的最小凸包的点集Hi={hi1,hi2,...,his},s为点的个数,并存入节点vi的属性中;
e)求出山脊线要素ri的剖分范围T′i的顶点集Vti={pi1,pi2,...,pil},并存入节点vi的属性,l为顶点集Vti中点的个数;
f)若循环变量i<n3,则i加1,继续执行步骤a)-e),直至所有节点及其属性均提取完成;
步骤32:基于节点集合V,计算山脊线的ARG模型G=(V,E)的边集合w1为边的个数,具体步骤如下:
a)读取节点集合V中的节点vi和vj所对应的影响范围T′i的顶点集Vti和影响范围T′j的顶点集Vtj;其中,i为循环变量,i∈[1,n3-1],初值为1;j为循环变量,j∈[i+1,n3],初值为i+1;
b)判断顶点集Vti和Vtj是否存在连续的两公共点,若存在,则山脊线要素ri的影响范围T′i和rj的影响范围T′j为邻接拓扑关系,连接节点vi和vj,得到ARG模型一条边e=(vi,vj),称节点vi与vj互为邻接节点,山脊线要素ri和山脊线要素rj为边e所对应的邻接山脊线要素对,并将边e存入边集合E;否则,跳转步骤c);
c)若j≤n3,则循环变量j加1,继续执行步骤a)和b);否则,循环变量i加1,执行下一步骤d);
d)若循环变量i≤n3-1,则循环变量j=i+1,继续执行步骤a)-c);否则,ARG模型的边集合已提取结束;
步骤33:计算ARG模型G=(V,E)的边集合的属性{S,I,D},S表示边所对应的邻接山脊线要素对的相对走向关系,I表示邻接山脊线要素对的趋势关系,D表示邻接山脊线要素对的最短距离关系;具体步骤如下:
a)读取边集合E的第k条边ek,k为循环变量,k∈[1,w1],获取节点va和节点vb的走向属性Strikea和Strikeb;
b)计算由节点va与vb所对应的山脊线要素ra与rb相对走向关系Sk=Strikea-Strikeb,并存入边ek的属性中;
c)计算节点va和vb构成的直线vavb的倾斜角αk,αk∈[0°,180°),作为边ek的相对趋势关系Ik,并存入边ek的属性中;
d)获取边ek的节点va的最小凸包的点集Ha={ha1,ha2,...,hap}和节点vb的最小凸包的点集Hb={hb1,hb2,...,hbq},p和q均为点的个数;
e)按式(1)计算hai与hbj的距离dij,并存入最短距离集合Distance中,其中i和j为循环变量,初值均为1,i∈[1,p],j∈[1,q];
其中,(xai,yai)和(xbj,ybj)分别为hai和hbj的坐标;
f)若循环变量j≤q,循环变量j加1,继续执行上一步骤e);否则,循环变量i加1,执行下一步骤g);
g)若循环变量i≤p,则循环变量j=1,继续执行步骤e);否则,距离dij计算结束,执行下一步骤h);
h)读取最短距离集合Distance,取集合Distance中的最小值Dk=min{d11,d12,...,dpq}作为边ek的最短距离关系,并存入边ek的属性中;
i)读取边集合E的下一条边ek+1,循环以上步骤,直至边集合E中每条边的相对走向关系S、相对趋势关系I和最短距离关系D均计算结束;
(四)山脊线的关联处理
步骤41:遍历ARG模型的边集合E={e1,e2,...,ew1}中的每条边e及属性{S,I,D},并获取边e的节点va和节点vb的Strikea和Strikeb;
步骤42:对每条边e均进行关联约束条件的判断,若均满足以下条件:
则边e符合关联约束条件,节点va和vb所对应的山脊线要素ra和rb满足关联约束条件,并将边e记为e′存入边集合E′;若不满足,则跳转下一步骤43;
步骤43:循环执行步骤42,直至所有边e均进行关联约束条件的判断后,得到边集合w2为边集合E′内的边数;
步骤44:基于边集合进行山脊线要素的关联处理,具体步骤如下:
a)读取边集合E′的第i条边e′i,并提取边e′i的节点va和vb,其中i为循环变量,初值为w2;
b)读取并提取边集合E′的第j条边e′j的节点vc和vd,其中j为循环变量,初值为w2-1;
c)若节点va、vb、vc和vd,均满足va≠vc,va≠vd,vb≠vc,vb≠vd,则边e′i与边e′j间不存在共同关联,循环变量j减1,执行步骤e);否则执行步骤d);
d)由于边e′i和边e′j存在共同关联,将e′j存入集合Li(Li存储与e′i存在共同合并的边e′)循环变量j减1,并跳转步骤e);
e)若j≥1,则跳转步骤b),否则执行下一步骤f);
f)将边e′i存入集合Li,依次读取Li中边e′,并按式(2)分别计算每条边e′所对应的节点ve和vf对应的山脊线要素re和rf的差异度Difference,并存入集合Sum中;
Difference=p1×|S|+p2×(|Strikee-I|+|Strikee-I|)+p3×D (2)
其中,p1,p2,p3分别代表相对走向关系S、相对趋势关系I、最短距离关系D的权值,
p1、p2、p3均∈(0,1)之间,且满足p1+p2+p3=1;
g)遍历集合Sum,并获取值最小的差异度Difference所对应的边e′,对边e′的节点ve和vf所对应的山脊线要素re和rf进行关联处理;
h)循环变量i减1,若i≥2,则循环变量j=i-1,继续执行步骤a)-步骤g);否则,输出关联后的山脊线要素集合LM1={ri|i=1,2,...,l1},l1为第一次关联处理后的山脊线的条数;
步骤45:循环执行步骤(一)至(四),直至循环K次后该山脊线要素集合LMK不存在符合关联约束条件的邻接山脊线要素对,则连接处理结束,输出山脊线要素集合LMK={ri|i=1,2,...,lK}。
3.根据权利要求2所述的一种破碎山脊线的自动关联方法,其特征在于,步骤14的具体处理过程如下:
a)将山脊线要素ra和rb分别读入点集PointA={p1,p2,...,pu}和PointB={p1,p2,...,pv},u、v分别为点集PointA、PointB中点的个数;
b)计算山脊线要素ra和rb的公共交点,存入点集CrossPoint={p1,p2,...,pc},c为公共交点的个数;
c)若公共交点的个数c=1,则按均值法或最大频数法计算山脊线要素ra的走向Strikea和山脊线要素rb的走向Strikeb;否则,跳转下面的步骤f);
d)若|Strikea-Strikeb|<SThreshold,则对山脊线要素ra和rb进行合并处理;否则,跳转e);
e)对山脊线要素ra和rb进行打断操作,山脊线要素ra和山脊线要素rb均删除公共交点CrossPoint;
f)公共交点的个数c≥2,计算山脊线要素ra的长度lengtha和山脊线要素rb的长度lengthb;
若lengtha>lengthb,则删除长度较短山脊线要素rb;否则,删除山脊线要素ra。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610312031.XA CN106023161B (zh) | 2016-05-12 | 2016-05-12 | 一种破碎山脊线的自动关联方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610312031.XA CN106023161B (zh) | 2016-05-12 | 2016-05-12 | 一种破碎山脊线的自动关联方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106023161A CN106023161A (zh) | 2016-10-12 |
CN106023161B true CN106023161B (zh) | 2019-01-18 |
Family
ID=57099269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610312031.XA Expired - Fee Related CN106023161B (zh) | 2016-05-12 | 2016-05-12 | 一种破碎山脊线的自动关联方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106023161B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106599931B (zh) * | 2016-12-23 | 2019-07-02 | 南京师范大学 | 一种基于随机森林的破碎山脊线关联方法 |
CN107909625B (zh) * | 2017-11-15 | 2020-11-20 | 南京师范大学 | 一种基于等高线的山顶点提取方法 |
CN112052547B (zh) * | 2020-09-04 | 2021-07-23 | 东南大学 | 一种基于人工智能的城市道路网络自动生成方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567702A (zh) * | 2010-12-08 | 2012-07-11 | 中国科学院地理科学与资源研究所 | 一种基于嫦娥dem数据的自动识别山谷和山脊线的方法 |
CN103177258A (zh) * | 2013-03-29 | 2013-06-26 | 河南理工大学 | 一种根据矢量等高线数据自动提取地性线的方法 |
CN104899865A (zh) * | 2015-05-04 | 2015-09-09 | 西安建筑科技大学 | 基于高斯尺度空间的山脉线提取方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130231897A1 (en) * | 2012-03-01 | 2013-09-05 | Harris Corporation | Systems and methods for efficient analysis of topographical models |
US9563969B2 (en) * | 2013-11-27 | 2017-02-07 | Electronics And Telecommuncations Research Institute | Method of generating implicit terrain data by performing lossless compression and lossy compression and electronic apparatus for performing the method |
-
2016
- 2016-05-12 CN CN201610312031.XA patent/CN106023161B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567702A (zh) * | 2010-12-08 | 2012-07-11 | 中国科学院地理科学与资源研究所 | 一种基于嫦娥dem数据的自动识别山谷和山脊线的方法 |
CN103177258A (zh) * | 2013-03-29 | 2013-06-26 | 河南理工大学 | 一种根据矢量等高线数据自动提取地性线的方法 |
CN104899865A (zh) * | 2015-05-04 | 2015-09-09 | 西安建筑科技大学 | 基于高斯尺度空间的山脉线提取方法 |
Non-Patent Citations (3)
Title |
---|
A Comparison of Ridge Detection Methods for DEM Data;Shinji Koka 等;《ACIS International Conference on Software Engineering》;20121230;全文 |
利用等高线数据提取山脊(谷)线算法研究;靳海亮等;《武汉大学学报·信息科学版》;20050930;第30卷(第9期);全文 |
提取山脊线和山谷线的一种新方法;黄培之;《武汉大学学报·信息科学版》;20010630;第26卷(第3期);全文 |
Also Published As
Publication number | Publication date |
---|---|
CN106023161A (zh) | 2016-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Shi et al. | Road detection from remote sensing images by generative adversarial networks | |
CN110084195B (zh) | 基于卷积神经网络的遥感图像目标检测方法 | |
CN102938066B (zh) | 一种基于多元数据重建建筑物外轮廓多边形的方法 | |
CN106600697B (zh) | 一种面向3d场景的导航网格地图表示方法 | |
CN110490901A (zh) | 抗姿态变化的行人检测跟踪方法 | |
CN108898605A (zh) | 一种基于图的栅格地图分割方法 | |
CN106023161B (zh) | 一种破碎山脊线的自动关联方法 | |
CN105894587B (zh) | 一种基于规则约束的山脊线和山谷线过滤方法 | |
Li et al. | An automatic tree skeleton extracting method based on point cloud of terrestrial laser scanner | |
Liu et al. | 2-D human pose estimation from images based on deep learning: a review | |
CN111310668A (zh) | 一种基于骨架信息的步态识别方法 | |
Henry et al. | Image pattern recognition using near sets | |
CN110175574A (zh) | 一种道路网提取方法及装置 | |
CN110363178A (zh) | 基于局部和全局深度特征嵌入的机载激光点云分类方法 | |
CN114495170A (zh) | 一种基于局部抑制自注意力的行人重识别方法及系统 | |
CN115018982A (zh) | 一种基于地基激光雷达点云的树木数字孪生方法 | |
CN114495163B (zh) | 基于类别激活映射的行人重识别生成学习方法 | |
Zheng et al. | Category-wise fusion and enhancement learning for multimodal remote sensing image semantic segmentation | |
Han et al. | Multi-stage generative adversarial networks for generating pavement crack images | |
KR101063827B1 (ko) | 한국토지정보시스템 연속지적도와 수치지형도의 기하학적 지도 변환을 위한 반자동화된 공액점 쌍 추출방법 | |
Bettinelli et al. | Algorithm for parametric community detection in networks | |
CN109543700B (zh) | 一种抗遮挡的服饰关键点检测方法 | |
Zhao et al. | Object detector based on enhanced multi-scale feature fusion pyramid network | |
Li et al. | What do we learn by semantic scene understanding for remote sensing imagery in CNN framework? | |
Jaworski et al. | Towards automatic configuration of floorplans for Indoor Positioning System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190118 Termination date: 20210512 |