利索能及
我要发布
收藏
专利号: 2020101342745
申请人: 南京师范大学
专利类型:发明专利
专利状态:无效专利
更新日期:2025-08-18
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种基于空间模式匹配的倒钩河自动识别方法,其特征在于包括以下步骤:(1)基于研究区域的矢量水系图层,将满足预设长度要求的近似直线河段抽象为节点,生成节点集合V;

(1‑1)从研究区域的矢量水系图层中读取河流数据到集合R={ri|i=0,1,…,nr‑1}中,ri表示第i条河流,nr为河流个数;

(1‑2)从集合R中读取一条河流ri,将河流ri存入栈Stack;

(1‑3)判断栈Stack是否为空,若栈Stack不为空,则取出位于栈顶的河段作为当前需处理的河段rc,否则执行步骤(1‑15);

(1‑4)根据公式(1)计算河段rc的直线近似度S;

式中,ps为河段rc的起点,pe为河段rc的终点,||ps‑pe||表示河段rc的实际长度,Len(ps,pe)表示点ps与pe之间的理想直线长度;

(1‑5)若S

(1‑6)根据公式(2)计算河段rc的走向Direction;

Direction=(pe.x‑ps.x,pe.y‑ps.y)                 式(2)式中,(ps.x,ps.y)为河段rc的起点坐标,(pe.x,pe.y)是河段rc的终点坐标;

(1‑7)获取河段rc的中点,标记为节点Nc;

(1‑8)记录河段rc的所属河流序号i、直线近似度S、长度和走向Direction;

(1‑9)将节点Nc存储到集合vi中,并返回执行步骤(1‑3);

(1‑10)根据公式(3)依次计算当前河段rc中每个折点到河段首尾连线的距离,并获取Dis值最大的折点F;

式中,(pj.x,pj.y)为河段rc第j个折点的坐标;

(1‑11)用折点F将当前河段rc分成两部分,其中上游河段记为Lline,下游河段记为Rline;

(1‑12)对于下游河段Rline,计算其长度Length;

(1‑13)若Length>LT,LT为预设最短直线长度阈值,则将下游河段Rline入栈Stack,否则返回执行步骤(1‑3);

(1‑14)针对上游河段Lline,按照步骤步骤(1‑12)和步骤(1‑13)执行;

(1‑15)顺序给集合vi中的节点添加NodeType属性值,具体为:若集合vi只有一个节点,则该节点的NodeType为11;否则,其中最上游节点的NodeType为‑1,最下游节点的NodeType为1,其余节点的NodeType为0;

(1‑16)重复执行步骤(1‑2)至步骤(1‑14),直至集合R中所有河流被处理,将最终得到的所有集合vi组合形成节点集合V={vi|i=0,1,…,nr‑1};

(2)基于近似直线河段之间的邻接关系,生成边集合E,并由节点集合V和边集合E,生成流域的ARG模型G=(V,E);具体包括:(2‑1)读取矢量水系图层中河流线数据的流向属性,存入集合ToID={ti|i=0,1,…,nr‑1}中,其中,ti表示第i条河流ri的流向属性,i表示河流序号,nr为河流个数;

(2‑2)读取一条河流ri,获取集合ToID中值为i的所有河流的序号,并将这些序号放入集合Fi中;

(2‑3)获取河流ri的上游节点,存储到局部节点集合Seti;

(2‑4)获取集合Fi中所有河流的下游节点,存储到集合Seti;

(2‑5)从Seti中任意取两个节点,记为Nk和Nl;

(2‑6)基于节点Nk和Nl,生成边ekl;

(2‑7)分别获取节点Nk、Nl的走向Dk、Dl;

(2‑8)根据公式(4)计算河段夹角值Angle,作为边ekl的属性Angle;

式中,(Dk.x,Dk.y)和(Dl.x,Dl.y)分别为Dk、Dl的坐标;

(2‑9)获取节点Nk的河流序号值m,获取节点Nl的河流序号值n;

(2‑10)获取节点Nk所属河流的流向属性tm,获取节点Nl所属河流的流向属性tn;

(2‑11)根据公式(5)计算EdgeType,将其作为边ekl的属性EdgeType,并将边ekl连同其属性Angle和EdgeType存入边集合ei中;

(2‑12)循环执行步骤(2‑5)至步骤(2‑11),直至集合Seti中任意两节点都被处理;

(2‑13)获取河流ri的节点集合vi中任意两相邻节点,并对两相邻节点执行步骤(2‑6)至步骤(2‑11);

(2‑14)重复执行步骤(2‑13),直至集合vi中所有相邻节点都被处理;

(2‑15)循环执行步骤(2‑2)至步骤(2‑14),直至所有河流都被处理,得到边集合E={ei|i=0,1,…,nr‑1};

(2‑16)基于图的邻接表存储结构,根据节点集合V和边集合E,生成ARG模型G=(V,E);

(3)定义倒钩河的空间模式P的结构模式和语义模式匹配规则;具体包括:(3‑1)定义倒钩河的结构模式P=(Vp,Ep),其中,Vp为节点集,具体包括三个节点,每个节点的属性为NodeType,Ep为边集,具体包括三条边,每条边的属性为MinAngle、MaxAngle和EdgeType;

(3‑2)基于倒钩河的平面形态和空间结构特征,定义倒钩河的语义模式的匹配规则如下表所示:表中,MinAngle和MaxAngle表示夹角最小值和最大值;

(4)基于空间模式的结构匹配,识别出所述ARG模型中与所述空间模式P结构一致的所有同构子图,并存储到集合SG中;

(5)基于空间模式的语义匹配,顺序进行集合SG中每一个子图与空间模式P的语义匹配,将匹配失败的子图从集合SG中删除;

(6)根据集合SG,生成倒钩河图层。

2.根据权利要求1所述的基于空间模式匹配的倒钩河自动识别方法,其特征在于:步骤(4)具体包括:(4‑1)获取空间模式P的一个深度优先遍历序列Pt,获取流域ARG模型G的一个深度优先遍历序列Gt;

(4‑2)获取序列Pt中的第一个节点n0;

(4‑3)顺序从序列Gt中获取一个未读取过的节点u,执行步骤(4‑4),若u获取失败,执行步骤(5);

(4‑4)若节点u的度小于节点n0的度,认为节点u的度与节点n0匹配成功,执行步骤(4‑

3),否则执行步骤(4‑5);

(4‑5)构建一个新子图sgh,并存储u到子图sgh;

(4‑6)以序列Pt中上一个匹配成功的节点为起点,获取下一节点ns,执行步骤(4‑7),若ns获取失败,执行步骤(4‑13);

(4‑7)以子图sgh中最后存储的节点为起点,获取G中所有未被记录到子图sgh的相邻节点,存储到集合PSetd;

(4‑8)在集合PSetd中获取任一节点w,执行步骤(4‑9),若集合PSetd为空,执行步骤(4‑

12);

(4‑9)若节点w的度小于节点ns的度,从集合PSetd中删除节点w后,执行步骤(4‑8),否则执行步骤(4‑10);

(4‑10)若存在节点ns在P中的某一邻接边,且节点w在G中的邻接边中找不到对应边,执行步骤(4‑8);否则,认为节点w与节点ns匹配成功;

(4‑11)存储节点w到子图sgh,从集合PSetd中删除节点w后,执行步骤(4‑6);

(4‑12)删除子图sgh中最后存储的节点,获取序列Pt中上一节点,记为节点ns,若ns=n0,执行步骤(4‑3);否则,执行步骤(4‑7);

(4‑13)存储子图sgh到集合SG,并复制该子图到一个新构建的子图中,新子图也记为sgh,删除新子图sgh中最后存储的节点,获取序列Pt中最后一个节点,记为节点ns,执行步骤(4‑8)。

3.根据权利要求1所述的基于空间模式匹配的倒钩河自动识别方法,其特征在于:步骤(5)具体包括:(5‑1)从集合SG中顺序获取一个子图sgr;

(5‑2)顺序获取空间模式P中一个节点nm,并从子图sgr中获取对应节点um;

(5‑3)若节点nm与节点um的属性Nodetype值不同,则从集合SG中删除子图sgr后,执行步骤(5‑1),否则执行步骤(5‑4);

(5‑4)获取节点nm的一条邻接边nem={EdgeType,MaxAngle,MinAngle};

(5‑5)获取节点um的对应邻接边uem={EdgeType,MidAngle};

(5‑6)若nem与uem的属性EdgeType值不同,则从集合SG中删除子图sgr后,执行步骤(5‑

1),否则执行步骤(5‑7);

(5‑7)若uem.MidAngle>nem.MaxAngle或uem.MidAngle

(5‑8)循环执行步骤(5‑4)至步骤(5‑7),直到节点nm的所有邻接边都被判别;

(5‑9)循环执行步骤(5‑2)至步骤(5‑8),直到子图sgr的所有节点和边都被判别;

(5‑10)循环执行步骤(5‑1)至步骤(5‑9),直到集合SG中的所有子图都被判别。