欢迎您来到GIS动力

加入收藏 免费注册 用户登陆 帮助中心
首页 新闻动态 技术专栏 银杏树下 学习考研 软件下载 求职招聘 许愿瓶 节日祝福 用户中心 精彩推荐 资源搜索 地图
专栏导航: AO开发 | SO开发 | ArcGIS桌面 | 超图桌面 | 开发语言 | 数据库 | WebGIS | 银杏文学 | 研究生考题 | FreeMap 谈天说地
   您现在位于: 首页技术专栏SuperMap应用与开发超图桌面 → 正文
拓扑分析
07-10-15 09:53:43 作者:未知 出处:超图

拓扑关系是地理对象在空间位置上的相互关系,如节点与线、线与面之间的连接关系,空间实体之间的拓扑关系是GIS进行空间分析和决策的基础之一,是否具有高效、可靠的拓扑处理功能已成为衡量GIS软件的重要标准。本专题将简要介绍如何使用SuperMap GIS 5 桌面产品中的拓扑处理功能。

1 什么情况下需要拓扑处理

空间数据在采集和编辑过程中,常会不可避免地出现一些数据错误。例如,同一个节点或同一条线被数字化了两次;相邻的面状几何对象在采集过程中出现了裂缝或者相交;多边形不封闭;多边形的边为悬线等等,导致假节点、冗余节点、悬线、重复线等错误数据的产生(如下图),这些数据错误往往量大,而且比较隐蔽,肉眼不容易识别出来,通过手工方法也不易去除,导致采集的空间数据之间的拓扑关系和实际地物之间的拓扑关系不符合,以致影响后续的数据处理和分析工作,影响数据的质量和可用性。因此,需要进行拓扑处理消除这些冗余和错误的数据。

2 SuperMap GIS 5 桌面产品具有的拓扑处理功能

SuperMap GIS 5 桌面产品中的拓扑处理包括如下功能:

  • 去冗余顶点、悬线、重复线,碎多边形的检查、显示和清除;
  • 节点类型识别(普通节点、假节点和悬节点);
  • 弧段交叉和自交叉;
  • 长悬线延伸;
  • 假节点合并。

(1)弧段求交

建立拓扑关系,首先要进行弧段求交计算,并根据交点按顺序把线对象分解成多个线对象,如下图所示。一般而言,在二维坐标系统中凡是与其他线有交点的线对象都需要从交点处打断,实际应用中情况可能有所不同。比如一条铁路横跨一条公路,从二维坐标上来看是相交的两个线对象,但是事实上不能在交点处被分解。这时候需要做一些处理,将两个线对象分别赋予一个可以代表二者在Z轴方向上相对位置的属性,可以是海拔高度值,也可以是一个代表相对位置的数值。如果两个线对象的高度属性值不等,则不予计算交点。

(2)去除冗余点

如果在折线上某点附近存在两个点号不同的顶点,且两个顶点之间的距离小于或等于Fuzzy容限,则这两个顶点之一就构成为冗余顶点。识别并去掉冗余顶点的操作被称为去冗余点。注意去冗余点与合并假节点的相似处与不同点。

(3)邻近节点合并

两两之间距离小于指定容限(Fuzzy Tolerance)的两个或者多个节点被称为临近点。识别并合并临近点为一个点的操作被称为合并临近点。合并临近点操作有时会得到一个假节点,有时会得到一个真节点。

(4)去除重复线

如果两个线对象包括节点在内的全部顶点两两重叠(坐标相同),则称为重合线对象。重合线对象的判断不考虑方向。重合线对象往往由部分重合的两个线对象相交后产生。为避免建立拓扑多边形时产生面积为零的多边形对象,重合的线对象只保留其中一个,多余的应删除。

(5)合并假节点

合并两个假节点为一个真正节点的操作称为合并假节点,该操作得到的结果可能是一个顶点(如果假节点处的两条线段明显不在一条直线上),也可能是一个普通点(如果假节点处的两条线段是在一条直线上)。假节点在没有实际意义的时候可以去掉,并把与该假节点相连的两个线对象合并为一个。系统假节点合并功能可以合并当前数据集中所有的假节点。

(6)去除悬线

悬线按照悬节点个数可以分为两种:单悬节点悬线和双悬节点悬线;按照长度则可以分为:短悬线和长悬线。短悬线有时也称为过头线,短悬线指长度小于指定Dangle容限的悬线;在一定容许范围内(这个长度上的范围就是Dangle容限),过头线可以被去掉,这种操作被称为去短悬线;长悬线是指长度大于指定Dangle容限,且沿悬节点方向延伸指定Node Snap容限长度后可与其他线对象相交的悬线。长悬线可以被延长到另一条线上去(到线的中间或节点处),这种操作被称为长悬线延伸。

注意:长悬线延伸到一个临近节点上时会被认为是要做合并临近点操作。系统可以批量删除短悬线或延伸长悬线。

3 SuperMap GIS 5 桌面产品中如何进行拓扑处理

(1)在SuperMap GIS 5 桌面产品中使用拓扑处理的步骤如下:

1)选择菜单“数据集->线数据集拓扑处理…”,弹出“线数据集拓扑处理”对话框;

2)在对话框中选择源数据源和要进行拓扑处理的线数据集;

3)在“拓扑错误处理选项”框中选择要进行的拓扑处理选项;

4)点击“高级”按钮,弹出“拓扑处理高级参数设置”对话框,设置拓扑容限值;

这里一共有6种容限设置:

  • 打断容限值:单位与数据集的单位相同。用于控制线数据集打断时的节点选择。若两条线段的交点与点数据集中邻近点的距离在此容限范围内,则予以打断;否则不进行打断处理。
  • 节点容限:单位与数据集的单位相同。Fuzzy 容限即是图层的精度(分辨率),代表顶点(Vertex)或结点(Node)之间的最小距离。也就是说,在此距离之内的两个点可以视为重合。Fuzzy 容限一般为图层范围的1/10000 -- 1/1000000之间。为确保地图精度,本系统默认为1/1000000。
  • 颗粒容限:单位与数据集的单位相同。Grain 容限用于控制圆、弧线、曲线转换成折线时的取点密度。适用于地图编辑。系统默认为图层范围的1/10000。
  • 短悬线容限:单位与数据集的单位相同。Dangle容限指定建立拓扑关系时可以删除的过头线的最大长度。系统默认为图层范围的1/10000。
  • 最小多边形容限:单位与数据集的单位相同。数据集的Small Polygon容限用于指定建立拓扑关系是可以删除的最大碎多边形。本容限使用面积单位。
  • 长悬线延伸容限:即当两个点的距离可以认为一点的最小距离,单位与数据集的单位相同。Nodesnap 容限适用于地图编辑。可以把当前编辑的点或线连接到图层中已经存在的对象的结点上。该容限对于封闭一个多边形以及去掉过头线(overshoots)和undershoots非常重要。系统默认为图层范围的1/10000。 

如果点击“默认”按钮,那么系统会自动算出各种容限值,也可以根据自己的需要填写容限值;点击“确定”按钮,保存设置,回到“数据集”对话框。

5)点击“确定”按钮,即可进行拓扑处理。

(2)拓扑处理检查

系统对线数据集进行拓扑处理后,可以生成一个SMTOPOERROR字段来记录生成的拓扑错误信息。字段中的值只有四种,决定了拓扑错误信息:“0”代表没有错误;“1”代表线段的起点是悬节点;“2”代表线段的终点是悬节点;“3”代表线段的起点和终点都是悬节点。

如果想更直观的从地图上看到拓扑错误,可以对SMTOPOERROR字段作单值专题图来实现(如下图)。

在实际应用中,通过拓扑错误专题图的制作,可以突出显示不同拓扑错误关系的数据,以便根据实际情况进行手工调整。

(3)拓扑处理注意事项:

1)可以根据实际数据的情况和使用目的,选择不同的拓扑处理选项组合;

2)如果需要进行拓扑错误检查,必须选择弧段求交,弧段求交是进行后续拓扑处理的基础。

3)线数据集经过拓扑处理后,原来数据集的线对象将会在各线对象交点处被打断,而生成新的线对象,如用户还需继续使用原来的线数据集,可以在拓扑处理前对线数据集先进行备份,以保护原数据集;

4)弧段求交操作得到的是一个真正的节点,而合并临近点操作有时却得到一个假节点,因此合并临近点操作后可能还要继续做合并假节点操作;

5)线数据集必须关闭才能进行拓扑处理;

6)拓扑处理的结果与拓扑容限大小的设置有关。

4 拓扑构建

(1)构建网络数据模型

城市交通、地下管网(含给排水),以及电力、通讯、有线电视等部门在采用GIS进行相应的系统分析和维护过程中,经常要涉及到网状数据,这些网状数据是由点和线组成的,相互之间有复杂的空间拓扑关系。比如,城市交通中,相交的街道和其组成的十字路口之间具有连通的关系;给排水管道中,阀门和管道之间的关系;电力管网中,高压线和电杆之间的关系。

这些网络数据在GIS中需要通过构建网络模型来进行分析。这种网络模型需要构建节点和简单线之间的空间拓扑关系,包括节点与节点之间的关系、节点与线之间的关系,线与线之间的关系等。

系统提供了将线数据集拓扑生成网络数据集,通过网络数据集生成和维护网络拓扑关系。

具体实现步骤:

1)打开线数据集,显示在地图窗口中;

2)选择菜单“数据集->线数据集拓扑处理…”,弹出“线数据集拓扑处理”对话框;

3)选择待处理的线数据集;在创建拓扑参数项里选择创建网络数据集,并为其命名;在错误处理选项中选择要进行哪些拓扑错误处理;

4)点击“高级”按钮,在弹出的“拓扑处理高级参数设置”对话框中设置各种拓扑容限;

5)点击“确定”按钮,即可生成网络数据集。

上图为生成的网络数据集,具有以下特点:

1)网络数据集由简单线和节点所组成,相互之间具有复杂的空间拓扑关系;

2)网络数据通过新增的简单线起始节点字段FNODE和终止节点字段TNODE的数值来描述资源流动的方向性;

3)网络数据通过新增的正向阻抗系数字段ResistanceA和反向阻抗系数字段ResistanceB来描述资源流动的通畅性

4)在构建网络数据后,原线数据集的所有字段将被复制到新生成的网络数据集中;

5)进行拓扑处理时的错误类型被记录在新增的SMTOPOERROR字段中。

注意:

1)弧段求交是进行其他拓扑处理的基础,为必选项;

2)生成的网络数据集会将原始的线数据集中相交的地方打断生成节点,而原始的线数据集也将被破坏,因此建议在构建网络数据集之前,将原始的线数据集备份;

3)在进行构建网络数据时,用户应该首先进行弧段求交,因为弧段求交是其他拓扑关系处理的基础和前提,只有这一步完成后,其他步骤才能进行。除了弧段求交必须首先完成外,其他拓扑处理运算的顺序则可以根据需要任意颠倒,但必须是在弧段求交的基础上进行。

(2)构建拓扑多边形

将线数据进行拓扑处理构建面数据集,这是常用的数据处理功能。

具体实现步骤:

1)选择菜单“数据集->线数据集拓扑处理…”,弹出“线数据集拓扑处理”对话框;

2)选择待处理的线数据集;在创建拓扑参数项里选择创建面数据集,并为其命名;在“错误处理选项”中选择要进行的拓扑处理选项框。

4)点击“高级”按钮,在弹出的“拓扑处理高级参数设置”对话框中设置各种拓扑容限;

5)点击“确定”按钮,即可生成拓扑多边形。

下图为拓扑处理的结果。


(本文已被浏览 次)
发布人:admin
推荐给好友:发送给好友
上篇新闻:
下篇新闻:
相关评论
发表我的评论
  • 尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法;
  • 本站有权保留或删除您发表的任何评论内容;
  •   相关文章  

    关于我们 友情链接 ┋ 与我在线 ┋ 管理 ┋ TOP
    网站当前版本:GisPower CMS V3.0
    『GIS 动力』- http://www.gispower.org/
    联系我们:webmaster#gispower.org
    Copyright (c) 2003-2007 GisPOwer.Org. All Rights Reserved.

                   滇ICP备05006901号