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。