1.一种基于形态特征的放射状水系自动化识别方法,其特征在于,包括如下步骤:
(1)根据流域间的邻接关系构建D‑TIN,并通过D‑TIN面提取任意三个相邻流域的交点作为流域交点,保存在List
(2)基于InterPoints将邻近流域交点间的距离保存至数组Ldis[n][n],获取任一流域交点到邻近交点的最短距离,取其一半作为当前流域交点的圆缓冲区半径,生成对应的圆缓冲区并加入到BufferList;
(3)以圆缓冲区集合BufferList作为裁剪单元,以整个研究区的水系为裁剪要素,生成缓冲区内的河流要素并保存至集合List
(4)遍历各圆缓冲区内的水系集合RiverList,计算各河流首点到流域交点的距离dis1和尾点到流域交点距离dis2,提取出等级为1、2的河流,且dis1<dis2的河段,标记该河段为辐射河段即dflag=1;反之,标记该河段为非辐射河段即dflag=0;
(5)在各圆缓冲区内,利用玫瑰花图统计辐射河流在各方向区间的流向频数以及累计长度;只有当各方位区间内统计的流向频数以及累计长度均大于零时,圆缓冲区域的河流才满足向四周发散的特征,标记该区域的flag1=1;反之,标记该区域的flag1=0;
(6)计算各圆缓冲区内的河流总源点数Scount和总出口点数Ecount,以及各源点和各出口点分别到圆缓冲区中心点即流域交点的平均距离分别记为D1、D2;当Scount≥Ecount且D1<D2时,标记该区域的flag2=1;反之,标记该区域的flag2=0;
(7)统计每个区域内中flag1、flag2的值,只有当flag1、flag2同时为1时,才能判定该区域内存在放射状水系;反之,该区域不存在放射状水系;
(8)若圆缓冲区内存在放射状水系,则根据缓冲区内点的高程变化特征以及与中心点的距离特征提取特征点,特征点的连线即为放射状水系范围。
2.根据权利要求1所述的一种基于形态特征的放射状水系自动化识别方法,其特征在于,所述步骤(1)中提取流域交点的具体步骤如下:(1.1)遍历流域数据,利用流域间的邻接关系构建区域邻接图,并将任意两个流域间的邻接关系保存在邻接矩阵rag[m][m]中,其中m为流域个数;若两流域相邻,则将两流域间的邻接关系标记为1;反之,标记为0;
(1.2)遍历邻接矩阵rag,取各行任意两个邻接关系为1的流域,若选取的两流域间也具有相邻关系,则形成一个闭合三角形,加入到List
(1.3)遍历DTINList,找到任一三角面所对应的三个邻接流域,并分别提取这三个邻接流域的外接矩形R1、R2、R3;
(1.4)求取外接矩形R1、R2、R3的相交矩形InterRec,并加入到List
(1.5)将所有的流域边界转换为点状数据,通过相交矩形InterRec所对应的邻接流域id,找到相交矩形内相对应的流域边界点,并加入List
(1.6)循环相交矩形InterRec内的流域边界点lypts,标记相同坐标出现三次,且这三个坐标所属流域id均不相同的点作为流域交点,并加入到集合List
(1.7)直到遍历完所有的D‑TIN面。
3.根据权利要求1所述的一种基于形态特征的放射状水系自动化识别方法,其特征在于,所述步骤(2)中生成圆缓冲区的具体步骤如下:(2.1)通过流域交点集合InterPoints,构建TIN面并保存至集合List
(2.2)先定义一个二维数组Ldis[n][n],其中n是流域交点数,该数组中每一行的值是指当前行号所对应的流域交点到其余交点的距离值;然后遍历LTinList中的任意TIN面,计算TIN面上任意两点之间的距离,并存到对应的Ldis[n][n]中;当两点的id相同时,距离为
0;当两点之间没有TIN边时,距离为∞;
(2.3)遍历Ldis数组,获取每一行中不为0的最小值,取其一半作为该行所对应流域交点的圆缓冲区半径,并保存至数组Mdis[n];
(2.4)计算所有Mdis[j]的平均距离ad,其中min≤Mdis[j]≤max,min和max根据流域特点进行选取,j∈{0,1,2,…,n};若min≤Mdis[j]≤max,则将Mdis[j]作为该交点的缓冲半径并生成圆缓冲区;若Mdis[j]>max或Mdis[j]<min,则将ad作为此中心点的缓冲半径并生成圆缓冲区,并保存至圆缓冲区集合BufferList。
4.根据权利要求1所述的一种基于形态特征的放射状水系自动化识别方法,其特征在于,所述步骤(4)中基于圆缓冲区内的水系数据,剔除非辐射河段的具体步骤如下:(4.1)遍历所有河流要素集合RiverList,筛选等级为1、2的河流;
(4.2)遍历所有河流等级为1、2的河流,计算任意河流的尾点与首点分别到流域交点的距离d2和d1,若满足d2‑d1>k1*len;k1∈[0,1],len为该河流长度,则标记该河流为辐射河流,即dflag=1;反之,该河流为非辐射河流,即dflag=0。
5.根据权利要求1所述的一种基于形态特征的放射状水系自动化识别方法,其特征在于,所述步骤(5)中对河流的流向和累计长度特征进行统计,判断该水系是否具有从中心向四周发散的特征的具体步骤如下:(5.1)以阈值T2将360°等分为N个区间,其中N=360°/T2,N为正整数,将河流流向值分布在各区间[0°,N°),[N°,2N°),...,[(N‑1)*T1,360°);
(5.2)遍历RiverList,通过List
6.根据权利要求1所述的一种基于形态特征的放射状水系自动化识别方法,其特征在于,所述步骤(6)中河流源点与出口点特征的统计,判断该水系的总河流源点数是否大于总出口点数,且各源点与圆缓冲区中心点的平均距离是否小于各出口点与中心点的平均距离的具体步骤如下:(6.1)遍历任意RiverList中dflag=1的辐射河段,当一河流的FROM_NODE=NULL时,该河流为发源河流,此时将该区域内水系的总源点数增加1,记为Scount=Scount+1,并加入至源点集合记为List
(6.2)遍历各圆缓冲区内的源点集合YPointList和出口点集合CPointList,分别计算各河流源点和各河流出口点到该圆缓冲区中心点即对应的流域交点的距离,然后分别求取其平均值D1和D2;
(6.3)若满足Scount≥Ecount且D1<D2,则标记该区域的flag2=1;反之,则标记flag2=0。
7.根据权利要求1所述的一种基于形态特征的放射状水系自动化识别方法,其特征在于,所述步骤(8)中确定放射状水系具体范围的具体步骤如下:(8.1)依次遍历各存在放射状水系的圆缓冲区,以流域交点为中心,以阈值T3作N条辅助半径,其中N=360°/T3,N为任意正整数,并将辅助半径离散化为点状数据;
(8.2)将这些点状数据与DEM相叠加可获得辅助半径上各点的高程值,并保存至任一缓冲区的点高程集合List
(8.3)遍历任一RadiusList中的各辅助半径Radius,获取各辅助半径上的点距中心点最近且高差最大的点为特征点,将所有特征点按半径排列顺序连接起来就是放射状水系的范围。