CN109934890A - 一种河曲包络线自动提取方法 - Google Patents
一种河曲包络线自动提取方法 Download PDFInfo
- Publication number
- CN109934890A CN109934890A CN201910173838.3A CN201910173838A CN109934890A CN 109934890 A CN109934890 A CN 109934890A CN 201910173838 A CN201910173838 A CN 201910173838A CN 109934890 A CN109934890 A CN 109934890A
- Authority
- CN
- China
- Prior art keywords
- point
- envelope
- river
- meander
- angle
- 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.)
- Granted
Links
- 238000000605 extraction Methods 0.000 title claims abstract description 13
- 238000000034 method Methods 0.000 claims abstract description 16
- 238000005457 optimization Methods 0.000 claims abstract description 7
- 238000003825 pressing Methods 0.000 claims abstract description 4
- 238000004364 calculation method Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 3
- 238000005452 bending Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Landscapes
- Image Analysis (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种河曲包络线自动提取方法,首先读取区间为[start,end]的矢量河流线要素,随后判断递归提取的弯顶点的位置并存入对应的弯顶点集合中,进而划分为两个子区间;通过迭代上述步骤完成所有河曲弯顶点的提取;随后分别对左右集合的点按序号从小到大排序并生成初始包络线。针对初始包络线,剔除角度小于阈值的夹角所对应的点进行优化包络线;接着,优化包络线分别向河流外侧做单边缓冲区,利用裁剪函数,分别提取出左右缓冲区内包含的河流点,并根据河流点的序号将其按从小到大顺序插入到弯顶点集合的对应位置;最后基于弯顶点集合,分别连线,生成河曲包络线要素。本发明方法自动化程度高,且与人工提取结果基本一致。
Description
技术领域
本发明属于地理信息及河曲包络线提取技术,具体涉及一种河曲包络线自动提取方法。
背景技术
河曲是指迂回曲折的河道。河曲一直是河流形态学的重要研究内容之一,对古水文的重建与河流演化研究具有重要的意义。河曲包络线作为河曲的重要特征要素之一,是指由一系列河曲的弯顶连线而成的具有一定曲率半径的曲线。河曲包络线是河流经过长期演变自然形成的准安全曲线。一般来说,洪水的河床不会超过河曲包络线的范围。为此,在河流防护、水患治理、河曲发育区域公路规划等方面,河曲包络线具有重要的研究意义与应用价值。
长期以来,河曲包络线的提取以手动为主,主观性强,且提取精度较差。为此,如何基于矢量河流数据,自动、快速地提取出河曲包络线,具有着重要的研究意义和应用价值。
发明内容
发明目的:本发明针对现有技术存在的问题,提供一种基于矢量线状河流数据的河曲包络线自动提取方法。
技术方案:一种河曲包络线的提取方法,包括如下步骤:
(1)读取矢量河流线要素区间,将首尾点相连形成直线,遍历河流要素寻找区间内距离直线最远的点P;
(2)根据点P在河流的位置,存入左弯顶点集合PL或右弯顶点集合PR;
(3)根据点P对应ID值,将河流断点划分为两个子区间;
(4)迭代执行步骤(1)-(3),完成所有河曲弯顶点的提取;
(5)分别对左弯顶点集合PL和右弯顶点集合PR按照序号从小到大排序,顺序相连生成初始包络线;
(6)针对初始包络线,剔除角度小于阈值的夹角所对应的点,且顺序相连生成优化包络线;
(7)基于优化包络线,分别向河流外侧做单边缓冲区;
(8)基于裁剪函数分别提取河流左右两侧的单边缓冲区内所包含的河流点,并根据河流点的序号将其按从小到大顺序插入到弯顶点集合的对应位置;
(9)基于弯顶点集合PL和PR,分别连线,生成河曲包络线要素。
进一步的,步骤(1)所述的矢量河流线要素区间[start,end]中,start和end为区间起点位置和终点位置点ID,将首尾点相连形成直线L,并在区间内寻找离直线L最远的点P,将其ID记为markIndex;
更进一步的,步骤(1)具体包括如下步骤:
(11)读取一条区间为[start,end]的矢量河流线要素数据;
(12)判断start点和end点之间的距离,若大于用户指定阈值T1,则继续执行步骤(13),否则,结束本次迭代;
(13)根据start点和end点的坐标(xstart,ystart)、(xend,yend),生成经过start点与end点的直线L的直线方程Ax+By+C=0;
其中:
(14)在区间[start,end]内寻找距离直线L最远的点P,将其ID记为markIndex。
步骤(2)当点P位于河流左侧时,存入弯顶点集合PL;否则,存入右弯顶点集合PR。其具体步骤如下:
(21)将ID值为markIndex的点的坐标(xmarkIndex,ymarkIndex)代入直线L的表达式Ax+By+C中;
(22)若Axmarkindex+Bymarkindex+C>0,将markIndex分配到右弯顶点集合PR中;若Axmarkindex+Bymarkindex+C<0,则将markIndex分配到左弯顶点集合PL中。
步骤(3)所述的两个子区间为[start,markIndex]与[markIndex,end]。
步骤(5)分别对弯顶点集合PL和PR中的点按序号从小到大排序;顺序相连生成初始包络线LeftEnvelopeLine和RightEnvelopeLine。
步骤(6)具体步骤如下:
(61)对于弯顶点集合PL与PR中任意相邻的两点M、N,计算两点所连的直线的倾斜角度D;若D<0,则D=D+360°;得到对应的角度集合AL与AR;其中倾斜角度D计算表达式如下:
式中,(xm,ym)、(xn,yn)分别为M、N两点的坐标,arctan2为反正切函数,Pi为π;
(62)计算角度集合AL中,任意两个相邻线段的夹角E,得到夹角集合IAL;所述夹角E的计算表达式如下:
式中,DL1、DL2分别为两相邻线段的倾斜角;
(63)计算任意倾斜角集合AR中,任意两个相邻线段的夹角F,得到夹角集合IAR;所述夹角F计算表达式如下:
式中,DR1、DR2分别为两相邻线段的倾斜角;
(64)基于用户指定阈值T2,将PL与PR中对应夹角集合IAL与IAR中小于阈值T2的点剔除,得到弯顶点集合PL与PR。
有益效果:本发明与现有技术相比,其显著的效果在于本发明对于河曲包络线的提取实现了自动化,能够快速、准确的提取出河曲包络线,且提取的结果最大接近人工的操作,也简化了人工提取的计算过程和工艺流程。
附图说明
图1是本发明的一个实施例的流程示意图;
图2是实施例中采用的实验数据点所构成的河曲包络线;
图3是实施例中提取出的河曲弯顶点;
图4是实施例中提取出的初始包络线;
图5是剔除夹角过大点后生成的优化包络线示意图(阈值T2=120°);
图6是基于优化包络线生成的单边缓冲区示意图(单边缓冲区半径=15);
图7是基于单边缓冲区对河流进行裁剪的结果;
图8是最终提取的河曲包络线。
具体实施方式
为了详细的说明本发明所公开的技术方案,下面结合附图和具体实施例做进一步的阐述。
河曲包络线自动提取的首要关键在于正确寻找各个河曲的弯顶顶点,而河曲的弯顶顶点通常表现为离河流中轴线局部最远的点。基于这一特征,本发明首先通过递归算法在河流中寻找并生成弯顶顶点集合,并使用折线相连得到初始河曲包络线;此外,河曲包络线要求具有一定的平滑特性,为此,本发明对初始河曲包络线中弯折角度过大的折线进行了平滑,并且将超出初始河曲包络线的部分河段合并到初始河曲包络线中,从而得到相对平滑的河曲包络线。
如图1所示,本实施例具体包括步骤:
步骤1:读取一区间为[start,end]的矢量河流线要素(其中变量start和end为区间的起点位置和终点位置点的ID值),将首尾点相连形成直线L,遍历河流要素寻找离直线L最远的点P,将其ID记为markIndex;
其中,本实例的实验数据采用的是基于百度地图数字化生成的shapefile格式的嘉陵江局部线图层数据,如图2所示;
步骤1具体包括以下步骤:
(1-1)读取一条区间为[start,end]的矢量河流线要素数据;本实施例中,河流区间为[0,411];
(1-2)判断start点和end点之间的距离,若大于所定阈值T1,则继续执行步骤(1-3);否则,结束本次迭代;本实施例中,给定阈值T1=40,首次执行时start与end的距离为756.14859387;
(1-3)根据start点和end点的坐标(xstart,ystart)、(xend,yend),生成经过start点与end点的直线L的直线方程Ax+By+C=0;
其中:
本实施例中,首次执行时,直线L的直线方程为-723.9105827063322x+-218.4357211124152y+563100.3745153011=0;
(1-4)在区间[start,end]内寻找距离直线L最远的点P,将其ID记为markIndex。本实施例中,首次执行时markIndex值为156;
步骤2:判断点P在河流的左侧或右侧,并存入对应的弯顶点集合PL或PR,具体包括以下步骤:
(2-1)将ID值为markIndex的点的坐标(xmarkindex,ymarkindex)代入直线L的表达式Ax+By+C中;首次执行时点markIndex的坐标为(819.6173596270382,-380.3016390800476);
(2-2)若Axmarkindex+Bymarkindex+C>0,将markIndex分配到右弯顶点集合PR中;若Axmarkindex+Bymarkindex+C<0,则将markIndex分配到左弯顶点集合PL中。本实施例中,首次执行时markIndex被分配到右弯顶点集合PR中;
步骤3:根据markIndex,将河流划分为两个子区间([start,markIndex]与[markIndex,end]);本实施例中,初次划分的两个子区间分别为[0,156]、[156,411];
步骤4:迭代执行步骤(1)至(3),直至完成所有河曲弯顶点的提取;本实施例中,提取的河曲弯顶点如图3所示;
步骤5:分别对集合PL和PR中的点按序号从小到大排序;顺序相连生成初始包络线LeftEnvelopeLine和RightEnvelopeLine;本实施例中,生成的初始包络线如图4所示;
步骤6:针对初始包络线,查找出角度小于阈值A的夹角所对应的点,在对应集合PL和PR中剔除。本实施例中,阈值T2取值为120°。具体包括:
(6-1)对于弯顶点集合PL与PR中任意相邻的两点M、N,根据下式,计算两点所连的直线的倾斜角度D;若D<0,则D=D+360°。计算完毕后,可得到对应的角度集合AL与AR;
式中,(xm,ym)、(xn,yn)分别为M、N两点的坐标,arctan2为反正切函数,Pi为π;本实施例中,左包络线计算得到的第一个倾斜角为262.75761083794964°,右包络线计算得到的第一个倾斜角为247.75248296729268°;
(6-2)基于如下公式计算倾斜角集合AL中,任意两个相邻线段的夹角E,得到夹角集合IAL;
式中,DL1、DL2分别为两相邻线段的倾斜角;
(6-3)基于如下公式计算任意倾斜角集合AR中,任意两个相邻线段的夹角F,得到夹角集合IAR,
式中,DR1、DR2分别为两相邻线段的倾斜角;
本实施例中,左包络线计算得到的第一个夹角为185.7662703603437°,右包络线计算得到的第一个夹角为189.27568797747847°;
(6-3)基于用户指定阈值T2,将PL与PR中对应夹角集合IAL与IAR中小于阈值T2的点剔除。本实施例中,T2为120°;
步骤7:基于弯顶点集合PL和PR,然后分别生成包络线LeftEnvelopeLine′和RightEnvelopeLine′,并分别向河流外侧做单边缓冲区LBuffer和RBuffer。本实施例中,生成的包络线LeftEnvelopeLine′和RightEnvelopeLine′如图5所示;生成的单边缓冲区如图6所示,缓冲区半径为15;
步骤8:利用裁剪函数,分别提取出LBuffer和RBuffer内包含的河流点,并根据河流点的序号,将其按从小到大顺序插入到PL和PR的对应位置。本实施例中,裁剪出的缓冲区内的河流如图7所示,左包络线裁剪出来的河流点序号集合为{382,383,384,248,249,204,205,206,130,131,72,73,74,75,76,77,78},将这些点加入到左弯顶点集合PL中,并按序号从小到大排序;
步骤9:基于弯顶点集合PL和PR,分别连线,生成河曲包络线要素。本实施例中,最终生成的河曲包络线如图8所示。
由实施例可知,本发明所述方法能够有效地对河曲包络线进行提取,自动化程度高,且与人工提取结果基本一致。
Claims (8)
1.一种河曲包络线的提取方法,其特征在于:包括如下步骤:
(1)读取矢量河流线要素区间,将首尾点相连形成直线,遍历河流要素寻找区间内距离直线最远的点P;
(2)根据点P在河流的位置,存入左弯顶点集合PL或右弯顶点集合PR;
(3)根据点P对应ID值,将河流断点划分为两个子区间;
(4)迭代执行步骤(1)-(3),完成所有河曲弯顶点的提取;
(5)分别对左弯顶点集合PL和右弯顶点集合PR按照序号从小到大排序,顺序相连生成初始包络线;
(6)针对初始包络线,剔除角度小于阈值的夹角所对应的点,且顺序相连生成优化包络线;
(7)基于优化包络线,分别向河流外侧做单边缓冲区;
(8)基于裁剪函数分别提取河流左右两侧的单边缓冲区内所包含的河流点,并根据河流点的序号将其按从小到大顺序插入到弯顶点集合的对应位置;
(9)基于弯顶点集合PL和PR,分别连线,生成河曲包络线要素。
2.根据权利要求1所述的一种河曲包络线提取方法,其特征在于:步骤(1)所述的矢量河流线要素区间[start,end]中,start和end为区间起点位置和终点位置点ID,将首尾点相连形成直线L,并在区间内寻找离直线L最远的点P,将其ID记为markIndex。
3.根据权利要求1所述的一种河曲包络线提取方法,其特征在于:步骤(2)当点P位于河流左侧时,存入左弯顶点集合PL;否则,存入右弯顶点集合PR。
4.根据权利要求1所述的一种河曲包络线提取方法,其特征在于:步骤(1)具体包括如下步骤:
(11)读取一条区间为[start,end]的矢量河流线要素数据;
(12)判断start点和end点之间的距离,若大于用户指定阈值T1,则继续执行步骤(13);否则,结束本次迭代;
(13)根据start点和end点的坐标(xstart,Ystart)、(xend,Yend),生成经过start点与end点的直线L的直线方程Ax+By+C=0;
其中:
(14)在区间[start,end]内寻找距离直线L最远的点P,将其ID记为markIndex。
5.根据权利要求1所述的一种河曲包络线提取方法,其特征在于:步骤(2)具体步骤如下:
(21)将ID值为markIndex的点的坐标(xmarkIndex,ymarkIndex)代入直线L的表达式Ax+By+C中;
(22)若Axmarkindex+Bymmarkindex+C>0,将markIndex分配到右弯顶点集合PR中;若Axmarkindex+Bymmarkindex+C<0,则将markIndex分配到左弯顶点集合PL中。
6.根据权利要求1所述的一种河曲包络线提取方法,其特征在于:步骤(3)所述的两个子区间为[start,markIndex]与[markIndex,end]。
7.根据权利要求1所述的一种河曲包络线提取方法,其特征在于:步骤(5)分别对弯顶点集合PL和PR中的点按序号从小到大排序;顺序相连生成初始包络线LeftEnvelopeLine和RightEnvelopeLine。
8.根据权利要求1所述的一种河曲包络线提取方法,其特征在于:步骤(6)具体步骤如下:
(61)对于弯顶点集合PL与PR中任意相邻的两点M、N,计算两点所连的直线的倾斜角度D;若D<0,则D=D+360°;得到对应的角度集合AL与AR;其中倾斜角度D计算表达式如下:
式中,(xm,ym)、(xn,yn)分别为M、N两点的坐标,arctan2为反正切函数,Pi为π;
(62)计算角度集合AL中,任意两个相邻线段的夹角E,得到夹角集合IAL;所述夹角E的计算表达式如下:
式中,DL1、DL2分别为两相邻线段的倾斜角;
(63)计算任意倾斜角集合AR中,任意两个相邻线段的夹角F,得到夹角集合IAR;所述夹角F计算表达式如下:
式中,DR1、DR2分别为两相邻线段的倾斜角;
(64)基于用户指定阈值T2,将PL与PR中对应夹角集合IAL与IAR中小于阈值T2的点剔除,得到弯顶点集合PL与PR。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910173838.3A CN109934890B (zh) | 2019-03-08 | 2019-03-08 | 一种河曲包络线自动提取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910173838.3A CN109934890B (zh) | 2019-03-08 | 2019-03-08 | 一种河曲包络线自动提取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109934890A true CN109934890A (zh) | 2019-06-25 |
CN109934890B CN109934890B (zh) | 2023-04-07 |
Family
ID=66986670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910173838.3A Active CN109934890B (zh) | 2019-03-08 | 2019-03-08 | 一种河曲包络线自动提取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109934890B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569445A (zh) * | 2019-08-29 | 2019-12-13 | 湖北工业大学 | 一种基于位置的社交网络中近邻检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150205003A1 (en) * | 2012-08-06 | 2015-07-23 | Total Sa | Method of determining channelway trajectories |
CN108319902A (zh) * | 2018-01-19 | 2018-07-24 | 中国科学院南京土壤研究所 | 一种河曲自动提取方法 |
CN109344473A (zh) * | 2018-09-18 | 2019-02-15 | 南京师范大学 | 一种基于形态特征的对口河识别方法 |
-
2019
- 2019-03-08 CN CN201910173838.3A patent/CN109934890B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150205003A1 (en) * | 2012-08-06 | 2015-07-23 | Total Sa | Method of determining channelway trajectories |
CN108319902A (zh) * | 2018-01-19 | 2018-07-24 | 中国科学院南京土壤研究所 | 一种河曲自动提取方法 |
CN109344473A (zh) * | 2018-09-18 | 2019-02-15 | 南京师范大学 | 一种基于形态特征的对口河识别方法 |
Non-Patent Citations (1)
Title |
---|
陈文倩等: "基于国产GF-1遥感影像的水体提取方法", 《资源科学》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110569445A (zh) * | 2019-08-29 | 2019-12-13 | 湖北工业大学 | 一种基于位置的社交网络中近邻检测方法 |
CN110569445B (zh) * | 2019-08-29 | 2023-06-02 | 湖北工业大学 | 一种基于位置的社交网络中近邻检测方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109934890B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105787226B (zh) | 四边有限元网格模型的参数化模型重建 | |
CN106803253B (zh) | 一种三维岩石图像裂缝识别方法 | |
CN106557777B (zh) | 一种基于SimHash改进的Kmeans文档聚类方法 | |
CN103177258A (zh) | 一种根据矢量等高线数据自动提取地性线的方法 | |
CN103530894A (zh) | 一种基于多尺度块稀疏表示的视频目标追踪方法及其系统 | |
CN107357959A (zh) | 一种高精度的叶片截面特征参数提取方法 | |
CN105550244A (zh) | 一种自适应聚类方法 | |
CN107507171A (zh) | 一种肺部ct图像气道三维骨架树状结构提取及标记方法 | |
CN110276966A (zh) | 交叉口信号控制时段划分方法 | |
CN108629836A (zh) | 一种将CATIA BIM实体模型转换为SuperMap GIS标准化模型的方法 | |
CN107103551A (zh) | 一种选取种子节点的合著网络社区划分方法 | |
CN110379184A (zh) | 交叉口信号控制时段划分方法 | |
CN110442726A (zh) | 基于实体约束的社交媒体短文本在线聚类方法 | |
CN106127677B (zh) | 局部样本投影轮廓约束的点云边界特征识别方法 | |
CN109934890A (zh) | 一种河曲包络线自动提取方法 | |
CN110992481B (zh) | 基于最邻近连线的建筑物白模一致性合并方法 | |
CN109297470B (zh) | 一种基于动力因素与路径信息的相似台风匹配算法 | |
CN113514072B (zh) | 一种面向导航数据与大比例尺制图数据的道路匹配方法 | |
CN110363848A (zh) | 一种基于数字岩心的孔隙网络模型的可视化方法及装置 | |
CN104143214A (zh) | 一种电子地图多边形三角剖分方法与装置 | |
CN113297775A (zh) | 一种叶轮机械叶片气动模型的建模方法 | |
CN103714192A (zh) | 基于自适应r-树的大数据量铁路三维设计模型渲染方法 | |
CN116258972B (zh) | 一种基于深度学习的岩质高陡边坡结构面提取方法 | |
CN108108700A (zh) | 一种基于弦轴变换的猪的特征区域识别方法 | |
CN105513136B (zh) | 一种基于水平集中心聚类的3d角色模型骨架提取方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |