CN109934890B - 一种河曲包络线自动提取方法 - Google Patents

一种河曲包络线自动提取方法 Download PDF

Info

Publication number
CN109934890B
CN109934890B CN201910173838.3A CN201910173838A CN109934890B CN 109934890 B CN109934890 B CN 109934890B CN 201910173838 A CN201910173838 A CN 201910173838A CN 109934890 B CN109934890 B CN 109934890B
Authority
CN
China
Prior art keywords
river
point
markindex
points
envelope
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.)
Active
Application number
CN201910173838.3A
Other languages
English (en)
Other versions
CN109934890A (zh
Inventor
童宇博
陶世康
李安波
闾国年
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Fanzai Geographic Information Industry Research Institute Co ltd
Nanjing Normal University
Original Assignee
Nanjing Fanzai Geographic Information Industry Research Institute Co ltd
Nanjing Normal University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Fanzai Geographic Information Industry Research Institute Co ltd, Nanjing Normal University filed Critical Nanjing Fanzai Geographic Information Industry Research Institute Co ltd
Priority to CN201910173838.3A priority Critical patent/CN109934890B/zh
Publication of CN109934890A publication Critical patent/CN109934890A/zh
Application granted granted Critical
Publication of CN109934890B publication Critical patent/CN109934890B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Generation (AREA)
  • Image Analysis (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;
其中:
Figure BDA0001988892250000021
(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计算表达式如下:
Figure BDA0001988892250000022
式中,(xm,ym)、(xn,yn)分别为M、N两点的坐标,arctan2为反正切函数,Pi为π;
(62)计算角度集合AL中,任意两个相邻线段的夹角E,得到夹角集合IAL;所述夹角E的计算表达式如下:
Figure BDA0001988892250000031
式中,DL1、DL2分别为两相邻线段的倾斜角;
(63)计算任意倾斜角集合AR中,任意两个相邻线段的夹角F,得到夹角集合IAR;所述夹角F计算表达式如下:
Figure BDA0001988892250000032
式中,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;
其中:
Figure BDA0001988892250000041
本实施例中,首次执行时,直线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;
Figure BDA0001988892250000051
式中,(xm,ym)、(xn,yn)分别为M、N两点的坐标,arctan2为反正切函数,Pi为π;本实施例中,左包络线计算得到的第一个倾斜角为262.75761083794964°,右包络线计算得到的第一个倾斜角为247.75248296729268°;
(6-2)基于如下公式计算倾斜角集合AL中,任意两个相邻线段的夹角E,得到夹角集合IAL;
Figure BDA0001988892250000052
式中,DL1、DL2分别为两相邻线段的倾斜角;
(6-3)基于如下公式计算任意倾斜角集合AR中,任意两个相邻线段的夹角F,得到夹角集合IAR,
Figure BDA0001988892250000053
式中,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 (6)

1.一种河曲包络线的提取方法,其特征在于:包括如下步骤:
(1)读取矢量河流线要素区间,将首尾点相连形成直线,遍历河流要素寻找区间内距离直线最远的点P;
(2)根据点P在河流的位置,存入左弯顶点集合PL或右弯顶点集合PR;
(3)根据点P对应ID值,将河流断点划分为两个子区间;
(4)迭代执行步骤(1)-(3),完成所有河曲弯顶点的提取;
(5)分别对左弯顶点集合PL和右弯顶点集合PR按照序号从小到大排序,顺序相连生成初始包络线;
(6)针对初始包络线,剔除角度小于阈值的夹角所对应的点,且顺序相连生成优化包络线;
(7)基于优化包络线,分别向河流外侧做单边缓冲区;
(8)基于裁剪函数分别提取河流左右两侧的单边缓冲区内所包含的河流点,并根据河流点的序号将其按从小到大顺序插入到弯顶点集合的对应位置;
(9)基于弯顶点集合PL和PR,分别连线,生成河曲包络线要素,
步骤(2)当点P位于河流左侧时,存入左弯顶点集合PL;否则,存入右弯顶点集合PR;
步骤(3)所述的两个子区间为[start,markIndex]与[markIndex,end],其中,start和end为区间起点位置和终点位置点ID,将首尾点相连形成直线L,并在区间内寻找离直线L最远的点P,将其ID记为markIndex。
2.根据权利要求1所述的河曲包络线的提取方法,其特征在于:步骤(1)所述的矢量河流线要素区间为[start,end],start和end为区间起点位置和终点位置点ID,将首尾点相连形成直线L,并在区间内寻找离直线L最远的点P,将其ID记为markIndex。
3.根据权利要求2所述的河曲包络线的提取方法,其特征在于:步骤(1)具体包括如下步骤:
(11)读取一条区间为[start,end]的矢量河流线要素数据;
(12)判断start点和end点之间的距离,若大于用户指定阈值T1,则继续执行步骤(13);否则,结束本次迭代;
(13)根据start点和end点的坐标(xstart,ystart)、(xend,yend),生成经过start点与end点的直线L的直线方程Ax+By+C=0;
其中:
Figure FDA0003961382540000011
(14)在区间[start,end]内寻找距离直线L最远的点P,将其ID记为markIndex。
4.根据权利要求3所述的河曲包络线的提取方法,其特征在于:步骤(2)具体步骤如下:
(21)将ID值为markIndex的点的坐标(xmarkIndex,ymarkIndex)代入直线L的表达式Ax+By+C中;
(22)若Axmarkindex+Bymarkindex+C>0,将markIndex分配到右弯顶点集合PR中;若Axmarkindex+Bymarkindex+C<0,则将markIndex分配到左弯顶点集合PL中。
5.根据权利要求1所述的河曲包络线的提取方法,其特征在于:步骤(5)分别对弯顶点集合PL和PR中的点按序号从小到大排序;顺序相连生成初始包络线LeftEnvelopeLine和RightEnvelopeLine。
6.根据权利要求1所述的河曲包络线的提取方法,其特征在于:步骤(6)具体步骤如下:
(61)对于弯顶点集合PL与PR中任意相邻的两点M、N,计算两点所连的直线的倾斜角度D;若D<0,则D=D+360°;得到对应的角度集合AL与AR;其中倾斜角度D计算表达式如下:
Figure FDA0003961382540000021
式中,(xm,ym)、(xn,yn)分别为M、N两点的坐标,arctan2为反正切函数,Pi为π;
(62)计算角度集合AL中,任意两个相邻线段的夹角E,得到夹角集合IAL;所述夹角E的计算表达式如下:
Figure FDA0003961382540000022
式中,DL1、DL2分别为两相邻线段的倾斜角;
(63)计算任意倾斜角集合AR中,任意两个相邻线段的夹角F,得到夹角集合IAR;所述夹角F计算表达式如下:
Figure FDA0003961382540000023
式中,DR1、DR2分别为两相邻线段的倾斜角;
(64)基于用户指定阈值T2,将PL与PR中对应夹角集合IAL与IAR中小于阈值T2的点剔除,得到弯顶点集合PL与PR。
CN201910173838.3A 2019-03-08 2019-03-08 一种河曲包络线自动提取方法 Active CN109934890B (zh)

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 CN109934890A (zh) 2019-06-25
CN109934890B true 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)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110569445B (zh) * 2019-08-29 2023-06-02 湖北工业大学 一种基于位置的社交网络中近邻检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319902A (zh) * 2018-01-19 2018-07-24 中国科学院南京土壤研究所 一种河曲自动提取方法
CN109344473A (zh) * 2018-09-18 2019-02-15 南京师范大学 一种基于形态特征的对口河识别方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2994315B1 (fr) * 2012-08-06 2014-08-29 Total Sa Procede de determination de trajectoires de chenaux

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108319902A (zh) * 2018-01-19 2018-07-24 中国科学院南京土壤研究所 一种河曲自动提取方法
CN109344473A (zh) * 2018-09-18 2019-02-15 南京师范大学 一种基于形态特征的对口河识别方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于国产GF-1遥感影像的水体提取方法;陈文倩等;《资源科学》;20150630;全文 *

Also Published As

Publication number Publication date
CN109934890A (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
CN112699623B (zh) 基于非结构网格规则化重构技术的高精度热流计算方法
CN112306067B (zh) 一种全局路径规划方法及系统
CN109934890B (zh) 一种河曲包络线自动提取方法
CN103530894A (zh) 一种基于多尺度块稀疏表示的视频目标追踪方法及其系统
CN114936389B (zh) 一种叶片截面线的中弧线构造与几何特征分割方法
CN107357959A (zh) 一种高精度的叶片截面特征参数提取方法
CN112417171A (zh) 面向知识图谱表示学习的数据增广方法
CN104778678B (zh) 一种考虑孔喉末端的孔隙喉道识别方法
CN109345627A (zh) 一种三角网格模型特征保持混合简化方法
CN110992481B (zh) 基于最邻近连线的建筑物白模一致性合并方法
CN114003623A (zh) 一种相似路径台风的检索方法
CN106874526A (zh) 叶轮机叶片的生产坐标的生成方法和装置
CN108875720B (zh) 矢量字体的骨架线提取方法及装置
CN113721969A (zh) 一种基于多尺度空间矢量数据级联更新方法
CN117391940A (zh) 一种基础地理要素自动缩编方法
CN104331389A (zh) 基于八点法的等值线追踪算法
CN111444903A (zh) 漫画气泡内文字定位方法、装置、设备及可读存储介质
CN110807061A (zh) 一种基于分层搜索不确定图的频繁子图的方法
CN106938696A (zh) 一种马刀型低噪声螺旋桨桨叶设计方法
CN103927426A (zh) 航空发动机整体叶盘特征识别方法
CN104199742A (zh) 一种叶片截面特征点云的精确划分方法
CN110837845A (zh) 一种基于改进网格搜索算法的svm参数优化方法
CN111008429A (zh) 一种基于点云的异构cad几何一致性对比方法
CN116416377A (zh) 针对薄壁管激光切割的加工特征的识别方法、装置及系统
CN110135102A (zh) 面向碎片化建模的相似度量方法

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