CN105894587B - 一种基于规则约束的山脊线和山谷线过滤方法 - Google Patents
一种基于规则约束的山脊线和山谷线过滤方法 Download PDFInfo
- Publication number
- CN105894587B CN105894587B CN201610201895.4A CN201610201895A CN105894587B CN 105894587 B CN105894587 B CN 105894587B CN 201610201895 A CN201610201895 A CN 201610201895A CN 105894587 B CN105894587 B CN 105894587B
- Authority
- CN
- China
- Prior art keywords
- ridge line
- constraint
- node
- line feature
- feature
- 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
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
Landscapes
- Engineering & Computer Science (AREA)
- Architecture (AREA)
- Computer Graphics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于规则约束的山脊线和山谷线过滤方法。首先,根据区域内山脊线或山谷线的高差、区域面积信息,设置合适的高差约束值、长度约束值和关联约束值;然后,基于Voronoi剖分对区域内的山脊线或山谷线进行空间剖分,构建ARG模型;其次,基于区域DEM数据获取高程,统计出每一山脊线或山谷线的影响范围内的高程差;最后,进行规则约束处理,将影响范围内高程差小于高差约束值、长度小于长度约束值、且与其邻近无关联的山脊线或山谷线进行舍弃处理,得到基于约束规则过滤后的山脊线或山谷线。本方法可将非地理尺度层次上的分水线、合水线过滤掉,得到地理层度上的山脊线、山谷线,满足用户对不同尺度的山脊线、山谷线的需要。
Description
技术领域
本发明属于地理信息技术应用领域,具体涉及一种基于规则约束的山脊线和山谷线的过滤方法。
背景技术
山脊线和山谷线是地理学研究中两类重要的地性线,是地形起伏变化的分界线。基于DEM提取山脊、山谷线已有较多研究,主要采用三维地形表面流水数字模拟法。以山脊线和山谷线的物理特性为依据,通过模拟和分析地形表面流水的运动状况得到分水线(山脊线)和合水线(山谷线)。该方法的特点是提取的整体效果较好且全面(《利用流域边界和坡向差自动提取山脊线》,郭万钦、刘时银、余蓬春,测绘科学,2011,36(06))。
但是,该方法存在两方面问题。一方面,由于地形流水模拟中的合水线和分水线与山谷线和山脊线在概念上存在一定差异,导致地形高处点因其汇水量较小而易被误判为山脊线,地形低处点因其汇水量较大而易被误判为山谷线(《山脊线和山谷线自动提取的一种新方法》,张渭军,孔金玲,王文科,测绘科学,2006,31(1))。另一方面,该方法可提取出小高差的汇水量较少的分水线或汇水量较大的合水线。从地理尺度的角度出发,小高差的分水线或合水线,均不能称之为山脊线或山谷线。
发明内容
针对上述现有方法中存在的误判和小高差问题,本发明提出一种基于规则约束的山脊线和山谷线过滤处理的方法。该方法的规则约束以局部高差约束为首要约束条件,兼顾长度约束及其与邻近地性线的关联约束。目的是舍弃高差较小、长度较短、孤立的且不具备地形特征的地性线。
本发明的技术方案如下:
一种基于规则约束的山脊线和山谷线过滤方法,首先,根据区域内山脊线或山谷线的高差和区域面积信息,设置合适的高差约束值、长度约束值和关联约束值;然后,基于Voronoi剖分对区域的山脊线或山谷线进行空间剖分,构建山脊线或山谷线的ARG模型;其次,基于区域DEM数据获取高程,统计出每一条山脊线或山谷线影响范围内的高程差;最后,进行规则约束处理,将影响范围内高程差小于高差约束值且长度小于长度约束值,并与其邻近山脊线或山谷线无关联的山脊线或山谷线进行舍弃处理,得到符合规则约束的山脊线或山谷线。
本发明方法的具体步骤如下:
步骤一:加载山脊线图层,并将相应的山脊线要素读取到集合R={ri|i=1,2,...,n}中,n为山脊线要素的个数;
步骤二:依据山脊线图层的高差、面积信息和用户需求,设置合适的高差约束值Ht、长度约束值Lt、关联约束值At和走向区间个数N;
步骤三:山脊线要素的空间剖分处理具体步骤如下:
a)将山脊线要素集合R读入点集SumPoint={p1,p2,...,pm},m为点要素的个数,点集SumPoint的“山脊线要素”属性来记录该点所归属的山脊线要素ri;
b)基于点集SumPoint,构建Voronoi图Vor;以图层的最小外包矩形为界,构建点集SumPoint的Voronoi图Vor={Ti|i=1,2,...,m'},Ti表示第i个Thicssen多边形T,m'为构成Voronoi图Vor的Thicssen多边形T的个数;并将点集SumPoint中各点要素的“山脊线要素”属性,赋予包含该点要素的Thicssen多边形Ti的“山脊线要素”属性;
c)基于Thicssen多边形Ti的“山脊线要素”属性进行合并处理,得到每条山脊线要素ri的影响范围;依次将Voronoi图Vor中具有相同“山脊线要素”属性值的Thicssen多边形Ti合并为一个多边形T'i,生成山脊线影响范围图Vor'={T'i|i=1,2,...,n},T'i表示第i条山脊线要素的影响范围,n为山脊线要素的个数;
步骤四:基于空间剖分结果,计算山脊线图层的ARG模型G=(V,E)中节点集合V={v1,v2,...,vn}及其相关属性;其中,V中每个节点代表一个山脊线要素对象,E={e1,e2,...,ef}为由节点连成的边集合,n为山脊线要素的个数,f为边的个数;具体步骤如下:
a)通过计算山脊线要素ri的影响范围T'i的质心点ci得到节点vi,并存入节点集合V中;i为循环变量,i∈[1,n],初值为1;
b)求出山脊线要素ri的影响范围T'i的顶点集Vti={pi1,pi2,...,pil},并存入节点vi的属性,l为顶点集Vti中点的个数;
c)读取山脊线要素ri的点集C={ci1,ci2,...,cit},t为山脊线要素ri中点的个数;
d)基于点集C分别计算直线ci1ci2、ci2ci3、…、cit-1cit的倾斜角α12、α23、…、αt-1t;
e)计算山脊线要素的大致走向Strike(Strike∈[0°,180°)):若t≤N,则按均值法计算Strike,即并存入节点vi的属性中,跳转步骤g);否则,执行下一步骤f);
f)按最大频数法计算走向将走向:先统计出个倾斜角α12、α23、…、αt-1t在各均匀区间中的频数;再取频数最大的区间内的倾斜角的均值为山脊线的大致走向Stike,并存入节点vi的属性中;
g)若循环变量i<n,则i加1,继续执行a)-f);否则,所有的山脊线要素及其属性均提取完成;
步骤五:计算山脊线要素间的ARG模型G=(V,E)中边集合E={e1,e2,...,ef}及属性山脊线影响范围间的走向关系S,具体步骤如下:
a)读取节点集合V中的节点vi和vj所对应的空间影响范围T'i的顶点集Vti和影响范围Tj'的顶点集Vtj;其中,i为循环变量,i∈[1,n-1],初值为1;j为循环变量,j∈[i+1,n],初值为i+1;
b)判断顶点集Vti和Vtj中是否存在连续的两公共点,若存在,则山脊线要素ri的影响范围T'i和rj的影响范围T'j为邻接拓扑关系,连接节点vi和vj,得到ARG模型一条边e=(vi,vj),并称节点vi与vj互为邻接节点,山脊线ri和山脊线rj互为邻接山脊线,将边e存入边集合E;若不存在,跳转步骤d);
c)读取边e,计算节点vi和vj构成的线段vivj的倾斜角α∈[0°,180°),作为山脊线要素ri和rj的相对走向关系S,存入边e的属性中;
d)若j≤n-1,循环变量j加1,继续执行步骤a)-c);否则,循环变量i加1,执行下一步骤e);
e)若循环变量i<n,则j=i+1,继续执行a)-d);否则,边集合E已全部提取及山脊线影响范围间的走向关系S均提取结束;
步骤六:基于DEM数据,获取山脊线要素影响范围集合Vor'的高程差集合D={di|i=1,2,...,n},具体步骤如下:
a)加载DEM数据;
b)基于DEM数据,获取山脊线要素ri的影响范围T'i内的规则格网单元的高程值集合Hi={h1,h2,h3,...,hp},p为第i条山脊线的影响范围T'i的规则格网单元的个数;
c)获取高程值集合Hi中的高程最小值hmin和高程最大值hmax,计算得到影响范围T'i内高程差Hi=hmax-hmin;
d)循环执行步骤b)和c),统计出每个影响范围内高程差d,并存入高差集合D;
步骤七:山脊线要素进行高差约束处理,以山脊线要素ri为例,具体步骤如下:
a)读取高差集合D中的山脊线要素ri的高程差di;
b)计算高程差di与高差约束值Ht的差值Vi,即Vi=di-Ht;
c)高差约束判断:若Vi<0,即山脊线要素ri的高程差di<高差阈值Ht,不满足高差约束条件;但考虑到该山脊线自身的长度因素及与邻接山脊线间的关联,仍需进行关联约束和长度约束的判断,继续执行步骤八;反之,则因山脊线要素ri的高程差di>高差阈值Ht,符合高差约束条件,保留山脊线要素ri,并将山脊线ri存入集合R',并跳转步骤十;
步骤八:山脊线要素进行关联约束处理:若山脊线ri与其邻接山脊线rj构成ARG模型的边e的相对走向关系S,分别与山脊线ri的走向Strikei和山脊线rj的走向Strike的差值均小于关联约束值At,则判定山脊线ri和山脊线rj间存在关联,可属于同一条山脊线,故保留山脊线ri,具体步骤如下:
a)遍历ARG图的边集合E,搜寻出由节点vi构成的边e;依次读取边e的另一节点vnj,得到节点vi的所有邻接节点,并存放集合Neighborhood={vn1,vn2,...,vnk},k为节点vi的邻接节点的个数;
b)j为循环变量,j∈[1,k],初值为1,在节点集合V中获取节点vi和其邻接节点vnj的走向Strikei和走向Strikenj;
c)获取由节点vi和节点vnj构成的边e的属性走向相对关系S;
d)若走向关系S与节点vi的走向Strikei和vnj的走向Srtikenj,均满足|Strikei-S|≤At且|Strikej-S|≤At,则判定山脊线要素ri与rnj之间存在关联;山脊线要素ri满足关联约束条件,保留山脊线要素ri,并将山脊线ri存入集合R',并跳转执行步骤十;否则,跳转下一步e);
e)循环变量j加1后,若j≤k,执行步骤b)-d);否则,山脊线要素ri与其邻接山脊线要素间不存在关联,进行下一步长度约束判断,执行步骤九;
步骤九:山脊线要素进行长度约束处理:比较山脊线要素ri的长度Li与长度阈值Lt的大小;若长度Li>长度阈值Lt,则保留山脊线要素ri,并将山脊线ri存入集合R';否则,可舍弃山脊线要素ri;
步骤十:对每条山脊线要素ri+1均执行步骤七-步骤九,进行规则约束处理;其中,i为循环变量,i∈[1,n],初值为1;最后输出基于规则约束处理后的山脊线要素集合R'={ri|i=1,2,..,q},q为规则约束处理后的山脊线的条数;
基于规则约束的山谷线过滤方法同基于规则约束的山脊线过滤方法一致,执行上述步骤,即可得到基于规则约束过滤后的山谷线。
本发明的过滤方法可以提取出符合地形概念的山脊线、山谷线。相比现有技术,本发明可将非地理尺度层次上不能称之为山脊线的分水线和山谷线的合水线过滤掉,得到符合地理尺度的山脊线、山谷线。通过设定不同的约束规则和规则条件,本方法可满足用户对不同尺度山脊线、山谷线的过滤需要。
附图说明
图1本发明方法的流程图;
图2庐山山脊线数据;
图3Voronoi图Vor;
图4山脊线影响范围图Vor';
图5庐山山脊线数据的ARG模型;
图6ARG模型边E属性表;
图7庐山山脊线数据高程差分布图;
图8 100m高差约束,15°关联约束,2000m长度约束规则下提取的山脊线;
图9不同高差约束提取的山脊线对比图(15°关联约束,2000m长度约束):(a)原始山脊线(600条),(b)高差约束100m(362条),(c)高差约束150m(299条),(d)高差约束200m(273条)。
具体实施方式
下面结合附图,并通过基于规则约束的庐山山脊线过滤的实例,来进一步说明本发明的效果。本实例的实验区域位于江西北部,东经115°57'-116°11',北纬29°33'-29°35'。该区域地势较高,山脊线的提取效果较好。实验数据为基于地形表面流水物理模拟分析原理,借助ArcGIS软件,提取得到实验区域的山脊线矢量数据。
以基于规则约束的山脊线的过滤方法为例,具体实施过程如下:
步骤一:加载山脊线图层,如图2所示。并将相应的山脊线要素读取到集合R中。本实例中R={ri|i=1,2,...,600},共600个山脊线要素。
步骤二:依据山脊线图层的高差、面积信息和用户需求,设置合适的高差约束值Ht、长度约束值Lt,关联约束值At。本实例中,高差约束值Ht设为100m,长度约束值Lt设为2000m,关联约束值At设为15°,走向区间个数设为9。
步骤三:山脊线要素的空间剖分处理。具体步骤如下:
a)将山脊线要素集合R读入点集SumPoint={p1,p2,...,p4319},本实例中共4319个点要素,并使用点集SumPoint的“山脊线要素”属性来记录该点所归属的山脊线要素,如点集SumPoint中的点要素1,点要素2,点要素3,点要素4,点要素5均归属于山脊线r1,则点要素1,点要素2,点要素3,点要素4,点要素5的“山脊线要素”属性值均为1;
b)基于点集SumPoint,构建Voronoi图Vor。以图层的最小外包矩形R为界,本实例中山脊线要素图层的最小外包矩形R={(399064.06,3274424.25),(404729.06,3274424.25),(404729.06,3270731.75),(399064.06,3270731.75),(399064.06,3274424.25)}。以R为界,得到的Voronoi图Vor,图Vor={Ti|i=1,2,...,4319}共由4319个Thicssen多边形组成,如图3所示。并将点集SumPoint中各点要素的“山脊线要素”属性,赋予包含该点的相应Thicssen多边形的“山脊线要素”属性,如Thicssen多边形T1、T2、T3、T4、T5分别包含点要素1、2、3、4、5,则T1、T2、T3、T4、T5“山脊线要素”的属性值均为1;
c)基于Thicssen多边形Ti的“山脊线要素”属性合并Thicssen多边形Ti,得到每条山脊线要素ri的影响范围。以“山脊线要素”属性值为1为例,则“山脊线要素”属性值均为1的Thicssen多边形T1、T2、T3、T4、T5,合并为一个多边形T'1,多边形T'1即代表山脊线要素r1的影响范围。本实例依次合并后,最终得到合并后的图Vor'={T'i|i=1,2,...,600},如图4所示。图Vor'共由600个多边形组成,每个多边形对应一个山脊线要素的空间剖分范围。
步骤四:基于空间剖分结果,计算山脊线要素间的ARG模型G=(V,E)中节点集合V={v1,v2,...,v600}及其相关属性。其中,V中每个节点代表一个山脊线要素对象,E为由节点连成的边集合,山脊线要素的个数为600。以山脊线要素r1为例,具体步骤如下:
a)计算山脊线要素r1的影响范围T'1的质心点c1得到节点v1={402037.969,3274311.5},并依次存入节点集合V中;
b)求出山脊线要素r1的影响范围T'1的顶点集Vt1={p11,p12,...,p120},l共由20个点构成,并存入节点v1的属性中;
c)读取山脊线要素r1的点集C={c11,c12,c13,c14,c15},点的个数t=5;
d)基于点集C={c11,c12,c13,c14,c15},分别计算直线c11c12、c12c13、c13c14、c1415的倾斜角α12=123.77、α23=145.35、α34=161.92、α45=172.48;
e)计算山脊线要素的大致走向Strike(Strike∈[0°,180°)):t=5≤N=9,按均值法计算并存入节点vi的属性中,跳转步骤g);
g)对山脊线要素r2,r3,…,r600均执行步骤a)-e),直至所有的山脊线要素及其属性均提取到集合V={v1,v2,...,v600}中。
步骤五:计算山脊线要素间的ARG模型G=(V,E)中边集合E={e1,e2,...,ef}及属性山脊线影响范围间的走向关系S。以节点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;
c)读取边e,通过计算节点v1和v2构成的线段v1v2的倾斜角α=134.55°,作为山脊线r1和r2的相对走向关系S,作为边e的属性中;
d)继续执行步骤a)-c),直至j=600,i=2,执行步骤e);
e)i=2<600,j=i+1=3,继续执行步骤a)-d)。本实例共由1704条边e构成,边集合E={e1,e2,...,e1704}其属性包括由构成边e的两节点所对应两邻接山脊线的相对走向关系S。山脊线要素间的ARG模型及ARG模型的边的走向关系S,分别如图5、图6所示。
步骤六:基于DEM数据,获取山脊线要素影响范围集合Vor'的高程差集合D,本实例中D={di|i=1,2,...,600},具体步骤如下(以山脊线要素r1为例):
a)加载DEM数据(如图2所示);
b)基于DEM数据,获取山脊线要素r1的影响范围T'1内的规则格网单元的高程值集合H1={h1,h2,h3,...,h296},规则格网单元的个数为296个;
c)获取高程值集合H1中的高程最小值hmin=1142.10和高程最大值hmax=1178.30,计算得到影响范围T'1内高程差d1=hmax-hmin=36.20;
d)循环执行步骤b)和c),统计出第2,3,…,600个影响范围内高程差,并存入高差集合D={36.20,47.10,256.60,...,94.60},高程差分布如图7所示。
步骤七:山脊线要素进行高差约束处理,以山脊线要素r1为例,具体步骤如下:
a)读取高差集合D中的山脊线要素r1的高程差d1=36.20;
b)计算高程差d1与高差阈值Ht的差值V1=d1-Ht=36.20-100=-63.80;
c)高差约束判断:V1<0,即山脊线要素r1的高程差d1<高差阈值Ht,不满足高差约束条件。但考虑到该山脊线自身的长度因素及与邻接山脊线间的关联,仍需进行关联约束和长度约束的判断,继续执行步骤八;
步骤八:山脊线要素进行关联约束处理,接步骤七进行山脊线r1的关联判断,具体步骤如下:
a)遍历ARG图的边集合E,搜寻出由节点v1构成的边e,依次读取边e的另一节点v2,v4,v10,v12,得到节点v1的所有邻接节点,并存放集合Neighborhood={v2,v4,v10,v12},节点v1共有k=4个邻接节点的;
b)j为循环变量,j∈[1,4],初值为1,以j=1,即进行节点v1和节点v2的关联判断:在节点集合V中获取节点v1的走向Strike1=150.88°和其邻接节点v2的走向Strike2=16.58°;
c)获取由节点v1和节点v2构成的边e的属性走向关系S=134.55°;
d)由于|Strike1-S|=16.33>At,|Strike2-S|=117.96>At,不满足|Strike1-S|≤At且|Strike2-S|≤At,则判定山脊线要素r1与r2之间不存在关联,跳转下一步e);
e)循环变量j=j+1=2≤4,继续进行节点v1和节点v4,v10,v12的关联判断,执行步骤b)-d),判断结果为山脊线要素r1与其邻接山脊线要素r2,r4,r10,r12间不存在关联,需进行长度判断,执行步骤九。
步骤九:山脊线要素进行长度约束处理,接步骤八对山脊线r1进行长度约束判断:求取山脊线要素r1的长度L1=1020.72m<长度阈值Lt=2000m。山脊线r1既不满足高差约束条件,又不满足关联约束和长度约束条件,故可舍弃山脊线要素r1。
步骤十:对山脊线要素r2,r2,...,r600均执行步骤七-步骤九,进行规则约束处理。最后,输出基于规则约束(高差约束100m,关联约束15°,长度约束2000m)的山脊线要素集R'={r'i|i=1,2,..,368},如图8所示,即经过滤处理后山脊线的条数为368条。
对于不同地理尺度的需求,通过设置不同的规则阈值,本实验可得到不同尺度的山脊线。图9中的(b)、(c)、(d)分别为对应高差约束值为100m、150m和200m处理后的山脊线。从提取效果上可以看出高差阈值越大,符合尺度要求的山脊线越少。
本发明实施例中仅实现了基于规则约束的山脊线过滤处理方法。该方法也同样适用于山谷线。
Claims (2)
1.一种基于规则约束的山脊线和山谷线过滤方法,其特征在于,首先,根据区域内山脊线或山谷线的高差和区域面积信息,设置合适的高差约束值、长度约束值和关联约束值;然后,基于Voronoi剖分对区域的山脊线或山谷线进行空间剖分,构建山脊线或山谷线的ARG模型;其次,基于区域DEM数据获取高程,统计出每一条山脊线或山谷线影响范围内的高程差;最后,进行规则约束处理,将影响范围内高程差小于高差约束值且长度小于长度约束值,并与其邻近山脊线或山谷线无关联的山脊线或山谷线进行舍弃处理,得到符合规则约束的山脊线或山谷线。
2.根据权利要求1所述的一种基于规则约束的山脊线和山谷线过滤方法,其特征在于,该过滤方法的具体步骤如下:
步骤一:加载山脊线图层,并将相应的山脊线要素读取到集合R={ri|i=1,2,...,n}中,n为山脊线要素的个数;
步骤二:依据山脊线图层的高差、面积信息和用户需求,设置合适的高差约束值Ht、长度约束值Lt、关联约束值At和走向区间个数N;
步骤三:山脊线要素的空间剖分处理具体步骤如下:
a)将山脊线要素集合R读入点集SumPoint={p1,p2,...,pm},m为点要素的个数,点集SumPoint的“山脊线要素”属性来记录点集SumPoint中各点要素所归属的山脊线要素ri;
b)基于点集SumPoint,构建Voronoi图Vor;以图层的最小外包矩形为界,构建点集SumPoint的Voronoi图Vor={Ti|i=1,2,...,m'},Ti表示第i个Thicssen多边形T,m'为构成Voronoi图Vor的Thicssen多边形T的个数;并将点集SumPoint中各点要素的“山脊线要素”属性,赋予包含该点要素的Thicssen多边形Ti的“山脊线要素”属性;
c)基于Thicssen多边形Ti的“山脊线要素”属性进行合并处理,得到每条山脊线要素ri的影响范围;依次将Voronoi图Vor中具有相同“山脊线要素”属性值的Thicssen多边形Ti合并为一个多边形T'i,生成山脊线影响范围图Vor'={T'i|i=1,2,...,n},T'i表示第i条山脊线要素的影响范围,n为山脊线要素的个数;
步骤四:基于空间剖分结果,计算山脊线图层的ARG模型G=(V,E)中节点集合V={v1,v2,...,vn}及其相关属性;其中,V中每个节点代表一个山脊线要素对象,E={e1,e2,...,ef}为由节点连成的边集合,n为山脊线要素的个数,f为边的个数;具体步骤如下:
a)通过计算山脊线要素ri的影响范围T'i的质心点ci得到节点vi,并存入节点集合V中;i为循环变量,i∈[1,n],初值为1;
b)求出山脊线要素ri的影响范围T'i的顶点集Vti={pi1,pi2,...,pil},并存入节点vi的属性,l为顶点集Vti中点的个数;
c)读取山脊线要素ri的点集C={ci1,ci2,...,cit},t为山脊线要素ri中点的个数;
d)基于点集C分别计算直线ci1ci2、ci2ci3、…、cit-1cit的倾斜角α12、α23、…、αt-1t;
e)计算山脊线要素的大致走向Strike(Strike∈[0°,180°)):若t≤N,则按均值法计算Strike,即并存入节点vi的属性中,跳转步骤g);否则,执行下一步骤f);
f)按最大频数法计算走向:先统计出各倾斜角α12、α23、…、αt-1t在各均匀区间 中的频数;再取频数最大的区间内的倾斜角的均值为山脊线的大致走向Stike,并存入节点vi的属性中;
g)若循环变量i<n,则i加1,继续执行a)-f);否则,所有的山脊线要素及其属性均提取完成;
步骤五:计算山脊线要素间的ARG模型G=(V,E)中边集合E={e1,e2,...,ef}及属性山脊线影响范围间的走向关系S,具体步骤如下:
a)读取节点集合V中的节点vi和vj所对应的空间影响范围T'i的顶点集Vti和影响范围Tj'的顶点集Vtj;其中,i为循环变量,i∈[1,n-1],初值为1;j为循环变量,j∈[i+1,n],初值为i+1;
b)判断顶点集Vti和Vtj中是否存在连续的两公共点,若存在,则山脊线要素ri的影响范围T'i和rj的影响范围T'j为邻接拓扑关系,连接节点vi和vj,得到ARG模型一条边e=(vi,vj),并称节点vi与vj互为邻接节点,山脊线ri和山脊线rj互为邻接山脊线,将边e存入边集合E;若不存在,跳转步骤d);
c)读取边e,计算节点vi和vj构成的线段vivj的倾斜角α∈[0°,180°),作为山脊线要素ri和rj的相对走向关系S,存入边e的属性中;
d)若j≤n-1,循环变量j加1,继续执行步骤a)-c);否则,循环变量i加1,执行下一步骤e);
e)若循环变量i<n,则j=i+1,继续执行a)-d);否则,边集合E已全部提取及山脊线影响范围间的走向关系S均提取结束;
步骤六:基于DEM数据,获取山脊线要素影响范围集合Vor'的高程差集合D={di|i=1,2,...,n},具体步骤如下:
a)加载DEM数据;
b)基于DEM数据,获取山脊线要素ri的影响范围T'i内的规则格网单元的高程值集合Hi={h1,h2,h3,...,hp},p为第i条山脊线的影响范围T'i的规则格网单元的个数;
c)获取高程值集合Hi中的高程最小值hmin和高程最大值hmax,计算得到影响范围T'i内高程差Hi=hmax-hmin;
d)循环执行步骤b)和c),统计出每个影响范围内高程差d,并存入高差集合D;
步骤七:山脊线要素进行高差约束处理,以山脊线要素ri为例,具体步骤如下:
a)读取高差集合D中的山脊线要素ri的高程差di;
b)计算高程差di与高差约束值Ht的差值Vi,即Vi=di-Ht;
c)高差约束判断:若Vi<0,即山脊线要素ri的高程差di<高差阈值Ht,不满足高差约束条件;但考虑到该山脊线自身的长度因素及与邻接山脊线间的关联,仍需进行关联约束和长度约束的判断,继续执行步骤八;反之,则因山脊线要素ri的高程差di>高差阈值Ht,符合高差约束条件,保留山脊线要素ri,并将山脊线ri存入集合R',并跳转步骤十;
步骤八:山脊线要素进行关联约束处理:若山脊线ri与其邻接山脊线rj构成ARG模型的边e的相对走向关系S,分别与山脊线ri的走向Strikei和山脊线rj的走向Strikej的差值均小于关联约束值At,则判定山脊线ri和山脊线rj间存在关联,可属于同一条山脊线,故保留山脊线ri,具体步骤如下:
a)遍历ARG图的边集合E,搜寻出由节点vi构成的边e;依次读取边e的另一节点vnj,得到节点vi的所有邻接节点,并存放集合Neighborhood={vn1,vn2,...,vnk},k为节点vi的邻接节点的个数;
b)j为循环变量,j∈[1,k],初值为1,在节点集合V中获取节点vi和其邻接节点vnj的走向Strikei和走向Strikenj;
c)获取由节点vi和节点vnj构成的边e的属性走向相对关系S;
d)若走向关系S与节点vi的走向Strikei和vnj的走向Srtikenj,均满足|Strikei-S|≤At且|Strikenj-S|≤At,则判定山脊线要素ri与rnj之间存在关联;山脊线要素ri满足关联约束条件,保留山脊线要素ri,并将山脊线ri存入集合R',并跳转执行步骤十;否则,跳转下一步e);
e)循环变量j加1后,若j≤k,执行步骤b)-d);否则,山脊线要素ri与其邻接山脊线要素间不存在关联,进行下一步长度约束判断,执行步骤九;
步骤九:山脊线要素进行长度约束处理:比较山脊线要素ri的长度Li与长度阈值Lt的大小;若长度Li>长度阈值Lt,则保留山脊线要素ri,并将山脊线ri存入集合R';否则,可舍弃山脊线要素ri;
步骤十:对每条山脊线要素ri+1均执行步骤七-步骤九,进行规则约束处理;其中,i为循环变量,i∈[1,n],初值为1;最后输出基于规则约束处理后的山脊线要素集合R'={ri|i=1,2,..,q},q为规则约束处理后的山脊线的条数;
基于规则约束的山谷线过滤方法同基于规则约束的山脊线过滤方法一致,执行上述步骤,即可得到基于规则约束过滤后的山谷线。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610201895.4A CN105894587B (zh) | 2016-04-01 | 2016-04-01 | 一种基于规则约束的山脊线和山谷线过滤方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610201895.4A CN105894587B (zh) | 2016-04-01 | 2016-04-01 | 一种基于规则约束的山脊线和山谷线过滤方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105894587A CN105894587A (zh) | 2016-08-24 |
CN105894587B true CN105894587B (zh) | 2018-10-16 |
Family
ID=57013220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610201895.4A Expired - Fee Related CN105894587B (zh) | 2016-04-01 | 2016-04-01 | 一种基于规则约束的山脊线和山谷线过滤方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105894587B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106384016B (zh) * | 2016-10-08 | 2019-04-23 | 南京师范大学 | 单一倾向断层的自动反演方法 |
CN106682237B (zh) * | 2017-01-23 | 2020-04-03 | 南京师范大学 | 一种山体边界自动提取方法 |
CN106934357B (zh) * | 2017-02-28 | 2020-04-03 | 南京师范大学 | 一种平行断层的自动识别方法 |
CN107146283B (zh) * | 2017-05-10 | 2020-05-19 | 南京师范大学 | 一种层状岩质边坡类型的自动划分方法 |
CN107958485B (zh) * | 2017-12-08 | 2020-12-08 | 南京师范大学 | 一种伪山顶点剔除方法 |
CN109739942B (zh) * | 2018-12-14 | 2020-10-16 | 南京泛在地理信息产业研究院有限公司 | 一种基于等高线模型的鞍部点提取方法 |
CN110887502B (zh) * | 2019-11-18 | 2020-09-04 | 广西华蓝岩土工程有限公司 | 一种必经结点最短路径搜索方法 |
CN114926599A (zh) * | 2022-05-27 | 2022-08-19 | 甘肃省水利水电勘测设计研究院有限责任公司 | 一种地形曲面轻量化方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102567702A (zh) * | 2010-12-08 | 2012-07-11 | 中国科学院地理科学与资源研究所 | 一种基于嫦娥dem数据的自动识别山谷和山脊线的方法 |
US8238619B2 (en) * | 2006-11-23 | 2012-08-07 | Samsung Electronics Co., Ltd. | Method of extracting ridge line and valley line from three-dimensional point data |
CN103177258A (zh) * | 2013-03-29 | 2013-06-26 | 河南理工大学 | 一种根据矢量等高线数据自动提取地性线的方法 |
CN104156571A (zh) * | 2014-07-25 | 2014-11-19 | 山西潞安环保能源开发股份有限公司 | 分级自动检测主体山脉与水系的方法---方向导数小波变换 |
CN104899865A (zh) * | 2015-05-04 | 2015-09-09 | 西安建筑科技大学 | 基于高斯尺度空间的山脉线提取方法 |
CN105160658A (zh) * | 2015-08-10 | 2015-12-16 | 南京师范大学 | 一种基于子流域边界和流路特征的山脊线提取方法 |
-
2016
- 2016-04-01 CN CN201610201895.4A patent/CN105894587B/zh not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8238619B2 (en) * | 2006-11-23 | 2012-08-07 | Samsung Electronics Co., Ltd. | Method of extracting ridge line and valley line from three-dimensional point data |
CN102567702A (zh) * | 2010-12-08 | 2012-07-11 | 中国科学院地理科学与资源研究所 | 一种基于嫦娥dem数据的自动识别山谷和山脊线的方法 |
CN103177258A (zh) * | 2013-03-29 | 2013-06-26 | 河南理工大学 | 一种根据矢量等高线数据自动提取地性线的方法 |
CN104156571A (zh) * | 2014-07-25 | 2014-11-19 | 山西潞安环保能源开发股份有限公司 | 分级自动检测主体山脉与水系的方法---方向导数小波变换 |
CN104899865A (zh) * | 2015-05-04 | 2015-09-09 | 西安建筑科技大学 | 基于高斯尺度空间的山脉线提取方法 |
CN105160658A (zh) * | 2015-08-10 | 2015-12-16 | 南京师范大学 | 一种基于子流域边界和流路特征的山脊线提取方法 |
Non-Patent Citations (4)
Title |
---|
Extracting Topographic Characteristic Lines Based on Constraint Delaunay TIN;YANG Zuqiao 等;《Information Engineering and Computer Science (ICIECS), 2010 2nd International Conference on》;20101230;全文 * |
基于格网DEM线状分析窗口的地形特征线快速提取方法;周毅 等;《测绘通报》;20071231(第10期);全文 * |
基于矢量等高线数据提取山脊线山谷线的研究;靳海亮 等;《测绘通报》;20051031(第10期);全文 * |
提取山脊线和山谷线的一种新方法;黄培之;《武汉大学学报·信息科学版》;20010630;第26卷(第3期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105894587A (zh) | 2016-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105894587B (zh) | 一种基于规则约束的山脊线和山谷线过滤方法 | |
Burrough et al. | High-resolution landform classification using fuzzy k-means | |
CN106022259B (zh) | 一种基于激光点云三维特征描述模型的山区道路提取方法 | |
CN106600697B (zh) | 一种面向3d场景的导航网格地图表示方法 | |
CN107301254A (zh) | 一种路网热点区域挖掘方法 | |
CN109949574B (zh) | 一种数据驱动的城市路网交通小区多级划分方法 | |
CN109743683A (zh) | 一种采用深度学习融合网络模型确定手机用户位置的方法 | |
CN106981092B (zh) | 基于Priority-Flood的内流流域提取方法 | |
CN107392875A (zh) | 一种基于k近邻域划分的点云数据去噪方法 | |
CN102902844A (zh) | 基于大数据量dem数据的子流域划分方法 | |
CN106790468A (zh) | 一种分析用户WiFi活动轨迹规律的分布式实现方法 | |
Wang et al. | The isotropic organization of DEM structure and extraction of valley lines using hexagonal grid | |
CN112270266B (zh) | 多特征约束的网状河流主流识别方法 | |
CN109658477A (zh) | 一种基于lidar数据的dem生成算法 | |
CN106358209B (zh) | 基于德洛内四面体的无线传感器网络表面覆盖方法 | |
CN103945238A (zh) | 一种基于用户行为的社区探测方法 | |
CN107818338A (zh) | 一种面向地图综合的建筑物群组模式识别的方法及系统 | |
CN106023161B (zh) | 一种破碎山脊线的自动关联方法 | |
CN113850822A (zh) | 一种基于汇流分割的斜坡单元自动划分方法 | |
CN116415318B (zh) | 一种基于数学形态学的内流区湖泊水文连通性建模方法 | |
CN105205450B (zh) | 一种基于非规则标识点过程的sar图像目标提取方法 | |
CN104102718A (zh) | 面向失衡数据集的簇边界采样与动态剪枝的失衡数据分类方法 | |
CN104463924B (zh) | 基于散乱点高程采样数据的数字高程地形模型生成方法 | |
CN104598600B (zh) | 一种基于分布式内存的并行数字地形分析优化方法 | |
CN109388891A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20181016 Termination date: 20210401 |
|
CF01 | Termination of patent right due to non-payment of annual fee |