ARCGIS教程第二十一章 拓扑规则.docx
- 文档编号:19344052
- 上传时间:2023-04-24
- 格式:DOCX
- 页数:22
- 大小:436.86KB
ARCGIS教程第二十一章 拓扑规则.docx
《ARCGIS教程第二十一章 拓扑规则.docx》由会员分享,可在线阅读,更多相关《ARCGIS教程第二十一章 拓扑规则.docx(22页珍藏版)》请在冰豆网上搜索。
ARCGIS教程第二十一章拓扑规则
第二十一章拓扑规则
1拓扑规则简介
实际应用时,往往需要在空间数据各要素之间保持某种特定的关系。
比如:
行政区是多边形,不能有相互重叠区域,线状道路之间不能有重叠线段、公共汽车站必须在公共交通线路上,等等。
在ArcGIS的Geodatabase中可以增加一系列的拓扑规则,在要素之间建立起空间关系,还可以对这些规则进行维护。
为了便于理解拓扑规则,先解释几个专用术语:
相交(Intersect):
线和线相交,并且只有一点重合(该点不是端点),称为相交。
接触(Touch):
某线段的端点和自身或其他线段有重合,称为接触。
悬点(DangleNode):
线段的端点悬空,没有和其他任何线段连接,这个端点称为悬点。
伪结点(PseudoNode):
二个端点相互接触,连接成一个端点,称为伪结点。
拓扑规则的种类可以按点、线、面来分。
以下介绍ArcGIS的主要拓扑规则,每条规则用一幅图来说明,图的左半部分是符合规则的例子,右半部分则是违反规则的例子。
1.1点拓扑规则举例
规则一:
Mustbecoveredbyboundaryof,点必须在多边形边界上。
例如有一个点要素类代表公共汽车站,另有一个多边形要素类代表地块,可制定如下规则:
公共汽车站必须位于地块的边界上。
另一个例子是:
行政界碑必须落在行政边界线上。
不满足该规则的点要素将被标记为错误,修复的方法是删除或移动错误点(移动也可理解为删除后立即添加)。
图21-1点拓扑规则一
规则二:
Mustbecoveredbyendpointof,点要素必须处于线要素的端点上。
例如:
阀门为点要素类,必须位于线要素类输水管的尽端。
不满足该规则的点要素将被标记为错误,修复的方法是删除或移动错误点。
图21-2点拓扑规则二
规则三:
Pointmustbecoveredbyline,点要素必须在线要素之上。
例如点要素代表窨井用,线要素代表排水管,窨井的必须位于排水管上。
另一个例子是:
公交汽车站(点要素类)必须在公交线路(线要素类)上。
不满足该规则的点要素将被标记为错误,修复的方法是删除或移动错误点。
图21-3点拓扑规则三
规则四:
Mustbeproperlyinsidepolygons,点要素必须落在多边形要素内(在边线上不算)。
比如省界为多边形,省内的城市为点,城市一定要落在省界内。
另一个例子是:
代表住宅地址的点要素必须被居住用地多边形包含。
不满足该规则的点要素将被标记为错误,修复的方法是删除或移动错误点。
图21-4点拓扑规则四
注意:
点要素本身是不能建立拓扑规则的,它必须和线要素或多边形要素一起才能建立拓扑规则。
1.2多边形拓扑规则举例
规则一:
Mustnotoverlap,同一多边形类的要素之间不能重叠(几个多边形共享一个点或共享一条边界不算重叠)。
例如规划地块之间不能有重叠,行政区不能有重叠。
重叠的部分将产生多边形错误。
修改错误的方法有三种,一是删除重叠部分,留出空白;二是将重叠部分合并到某一个多边形;三是在重叠部分新增多边形,并删除原来的重叠部分。
图21-5多边形拓扑规则一
规则二:
Mustnothavegaps,多边形之间不能有间隙。
比如规定表示连续分布的地形高程多边形之间不能有空隙。
不满足规则的地方将产生线错误,表示空隙多边形,修改的方法是调整原来的边界,或添加新的多边形。
图21-6多边形拓扑规则二
规则三:
Containpoint,多边形内必须包含点要素(边界上的点不算)。
例如规定居住用地内至少有一个地址点。
不包含点的多边形将被视为错误,修改的方法是:
在错误多边形内增加一个点要素,或者将没有内部点的多边形删除。
图21-8多边形拓扑规则三
图21-9多边形拓扑规则四
规则四:
Boundarymustbecoveredby,多边形的边线必须与线要素中的线段重合。
例如交通调查小区的边界必须和道路线要素类重合。
违反规则的地方将产生线错误,修改的方法可以是调整线段,也可调整多边形。
规则五:
Mustbecoveredbyfeatureclassof,多边形要素中的每一个多边形都被另一个要素类中的多边形覆盖。
例如城市规划区必须在若干行政区划内,工业建筑多边形必须在规划的工业用地内。
违反规则的地方将产生多边形错误,修改的方法是在重叠部分增加新的多边形或调整错误的多边形。
图21-10多边形拓扑规则五
规则六:
Mustbecoveredby,每个多边形要素都要被另一个要素类中的单个多边形覆盖。
例如建筑物多边形必须在地块多边形内,一个建筑多边形不能跨越多个地块。
不满足规则的地方将产生多边形错误,修改的方法是:
调整第一类多边形,使他们不要和第二类有交叉,或者扩大第二个要素类中的某些多边形,使他们能覆盖第一类中的错误多边形。
图21-11多边形拓扑规则六
规则七:
mustnotoverlapwith,一个要素类中的多边形不能与另一个要素类中的多边形重叠。
虽然和规则一相似,都是说不能重叠,但是这里是指两个多边形要素类(FeatureClass)之间的关系。
比如一个要素类表示湖泊,另一个要素类表示陆地,他们是相互独立的类,显然它们应该满足该规则。
重叠的部分将产生多边形错误,修改方法同规则一。
图21-12多边形拓扑规则七
规则八:
Mustcovereachother,两个要素类中的多边形要相互满覆盖,外边界要一致。
例如土壤层范围和地质层范围应一致。
违反规则的地方将产生多边形错误,修改错误的方法是在重叠不到的地方增加多边形,或者调整、删除不重叠的部分。
图21-13多边形拓扑规则八
规则九:
Areaboundarymustbecoveredbyboundaryof,某个多边形要素类的边界线在另一个多边形要素类的边线上。
例如县、市边界上必须有乡、镇边界,而且前者的边界必须被后者所重合。
违反规则的地方将产生线错误,修改的方法是手工编辑边界。
图21-14多边形拓扑规则九
多边形不仅可定义自身的规则,而且和点要素、线要素、其他多边形要素之间建立起拓扑关系。
多边形要素和点要素的关系前节已经介绍,不同多边形要素类之间的关系在本节介绍,多边形要素和线要素的关系在下节介绍。
1.3线拓扑规则举例
规则一:
Mustnothavedangles,不允许线要素有悬点,即每一条线的端点都不能孤立,必须和本要素类中其他要素、或和自身相接触。
例如,地块边界线段不能有悬点。
违反规则的地方将产生点错误,修改的方法是:
将包含悬点的线段延伸到其它要素上,或者将过长的部分截断后删除。
图21-15线拓扑规则一
规则二:
Mustnothavepseudonode,不能有伪结点,即线段的端点不能是二个端点的接触点(自身首尾接触是允许的),例如河流。
违反规则的地方将产生点
错误,修改的方法是:
将伪结点两边的线段合并为一个条线,使伪结点自然取消。
图21-16线拓扑规则二
规则三:
Mustnotoverlap,在同一要素类中,线与线不能相互重叠。
例如平面道路网。
违反规则的地方将产生线错误,修改的办法是将不需要的线段截断,再删除。
图21-17线拓扑规则三
规则四:
Mustnotselfoverlap,线要素不能自己和自己重叠。
例如街道。
违反规则的地方将产生线错误,修改的方法是截断、删除重叠部分。
图21-18线拓扑规则四
规则五:
Mustnotintersect,同一要素类中,线与线不能相交。
例如河流、地块边界线。
违反规则的地方将产生线错误,修改的方法是重合处合并,相交处打断。
图21-19线拓扑规则五
规则六:
Mustnotselfintersect,同一要素类中,线要素不能自相交,例如枝状的排水管。
违反规则的地方将产生线错误和点错误,修改的方法是在自相交处适当缩短或外移。
图21-20线拓扑规则六
图21-21线拓扑规则七
规则七:
Mustnotintersectortouchinterior,线和线不能交叉,端点不能和非端点接触(非端相互重合是允许的)。
例如铁路和铁路不能交叉。
某铁路端点不能和其他铁路的非端点部分接触。
违反规则的地方将产生线错误和点错误,该错误根据实际需要编辑、修改。
规则八:
Mustbesinglepart,线要素必须单独,不能相互接触、重叠。
违反规则的地方将产生线错误,修改的方法是将接触的地方合并,成为一个要素,或移动后分离。
图21-22线拓扑规则八
规则九:
Mustnotoverlapwith,两个线要素类中的线段不能重叠。
违反规则的地方将产生线错误,该错误根据实际需要编辑、修改。
图21-23线拓扑规则九
规则十:
Mustbecoveredbyfeatureclassof,某个要素类中的线段必须被另一要素类中的线段所覆盖。
例如公交线路必须行驶在道路上。
违反规则的地方将产生线错误,修改的方法是将错误线段删除,再重新输入正确的。
图21-24线拓扑规则十
规则十一:
Endpointmustbecoveredby,线要素的端点被点要素覆盖。
例如每一条公交线路的尽端必须有终点站。
违反规则的地方将产生点错误,修改的方法是增补新的点要素。
图21-25线拓扑规则十一
规则十二:
Mustbecoveredbyboundaryof,线要素必须被多边形要素的边界覆盖。
例如城市的内部道路至少一侧有地块多边形边界。
违反规则的地方将产生线错误,修改的方法是删除错误的线,或编辑多边形。
图21-26线拓扑规则十二
一个要素类允许设置多个拓扑规则,但是这些规则必须定义在一个拓扑类中。
2拓扑规则用于数据质量的检验和控制
2.1建立线要素拓扑规则
启动ArcCatalog,在窗口左侧将路径定位到\gis_ex09\ex22,其中有Geodatabasegeo22,双击鼠标展开其中的数据集,出现数据集dataset1。
在dataset1中有线要素类lotlines,是地块边界线。
本练习目的是通过建立线要素类lotlines的拓扑关系,检验输入的线要素是否全部封闭,为下一步构成地块多边形作准备。
选择dataset1,单击鼠标的右键,在弹出的菜单中,选择New/Topology…,表示新建拓扑规则。
出现NewTopology(新拓扑)对话框。
如果dataset1的拓扑规则已经存在,系统会提示无法建立拓扑规则。
这时用选择dataset1下侧的拓扑关系图标
,用鼠标右键选择Delete,将曾经建立的拓扑规则删除后再重建。
在NewTopology(新拓扑)对话框中,点击按钮“下一步”,有两个设置:
Enteranameforyourtopology:
topology1键盘输入新建拓扑规则的名称
EnteraclusterTolerance要求输入限差值,本练习用默认值,不修改
图21-27选择拓扑规则
按“下一步”键继续,提示Dataset1中的各种要素类名称,勾选lotlines,表示为该要素建立拓扑规则。
按“下一步”键,出现Rank设置对话框,保持默认值,再选“下一步”按钮,提示:
Specifytherulesforthetopology要求定义拓扑规则。
点击左侧按钮AddRule…,为要素类添加拓扑规则(见图21-27)。
Featuresoffeatureclass下拉选择要素类lotlines
Rule:
下拉选择规则MustNotHaveDangles,不能出现悬点
√ShowErrors勾选
图21-28拓扑错误
按OK键,返回Specifytherulesforthetopology对话框,按“下一步”按钮,再按“完成”键。
经ArcCatalog处理,建立拓扑规则,系统提示:
Thenewtopologyhasbeencreated.Wouldyouliketovalidateitnow?
意思是拓扑规则已建立,提问是否使它有效?
选“是(Y)”,可以看到在dataset1下多了一个topology1类,它有拓扑关系图标。
鼠标单击topology1,在ArcCatalog右侧窗口,选择标签Preview,可以看到有三个红色的小方块表示悬点,他们就是有拓扑错误的地方(见图21-28)。
2.2修改拓扑错误
启动ArcMap,打开地图文档\gis_ex09\ex22\ex22.mxd,有一个空的dataframe1,按图标
添加图层,在路径\gis_ex09\ex22\下展开geo22(Geodatabase),选择dataset1中的topology1,按OK键确定。
系统出现提示:
“Doyoualsowanttoaddallfeatureclassesthatparticipatein“topology1”tothemap?
”,意思是是否将所有与拓扑类topology1有关的要素类都加载进来?
选择“是(Y)”。
可以看到,添加两个图层:
“lotsline”、“topology1”。
其中,其中拓扑错误以红色方块显示。
在ArcMap标准按钮一栏中点击按钮
,调用出Editor工具条,也可在菜单中选用View/Toolbars/Editor。
在Editor工具栏中选择Editor/Moreeditingtools/Topology,调出拓扑(Topology)工具栏(见图21-29)。
图21-29拓扑工具栏
虽然都是用红方块表示错误,但每个错误的类型都不一样,用工具
放大左上角方块,可以发现这个错误是因为线的端点过长(称为Overshoot,参见图21-30)。
在Topology工具栏点
,选中该红色方块(用框选方式可能比较方便)。
方块变成黑色表示被选中,点鼠标右键弹出菜单,选择Trim…。
在弹出的MaximumDistance对话框中输入2,按回车,长出的部分被截去了。
输入2的意思是:
如果长出去的悬挂线(Dangleline)的长度小于2个坐标单位就截去。
具体应用时如何判断合适的长度,可以用Tools工具栏中的
大致量一下出头部分的长度,从
状态栏的Segment读数可知长度大致为0.5,实际输入一个略大于0.5的值即可。
图21-30线过长(Overshoot)
点击
(或者按
),回到最开始的视图,用
放大左下角的红色方块,可以发现这个错误是端点离目标线差一段距离,过短(称Undershoot,参见图21-31)。
在Topology工具栏点击图标
,弹出ErrorInspector窗口。
勾选Visibleextentonly,表示只在可视的地图范围内找错误,按Searchnow按钮,在窗口下方出现了一行记录,表示找到了一个错误(见图21-32)。
图21-31线过短(Undershoot)
图21-32错误检查窗口
点击该行记录,红色方块变成黑色(被选中),在该行上点鼠标右键,在弹出的菜单选择Extend,输入2后按回车,错误被改正了。
点击图标
,回到开始的视图,用
放大右下角的红色方块,这处的错误是有一条多余的线(见图21-33),用
选中方块,在鼠标右键菜单中选择SelectFeatures,按键盘上的Delete键,多余的线被删除了。
需注意,如果用Extend方法(延长),该错误也会被“改正”,但是很显然不应该用Extend方法,放大并看清错误的原因很重要的。
图21-33另一种悬挂线,实际上是多余线
图21-34DirtyArea
下面还要验证一下,刚才编辑过的地方是否还有拓扑错误。
在TOC中选择Topology1,单击右键,在弹出的菜单选Properties…,选Symbology标签,勾选DirtyAreas,按“确定”键。
这时,地图上刚才编辑过的地方被3个蓝色矩形框住了,这3个矩形就是DirtyAreas(见图21-34)。
只要对DirtyAreas验证就可以了。
在Topology工具栏上选(该工具是在Class)被打开,针对parcel2,可以看到有一个Res字段,纪录取值为0或者1,选定的区域内验证拓扑规则),框选3个矩形框,蓝色矩形消失了,说明该区域不存在拓扑错误了。
线要素类lotsline的数据质量检验完成。
选择编辑工具条中的菜单Editor/StopEditing,结束编辑状态,根据提示,选择“是(Y)”,保存编辑。
选用菜单File/Exit,退出ArcMap。
2.2生成地块多边形
启动ArcCatalog,定位到D:
\gis_ex\ex22\geo22下的dataset1,点击dataset1,单击右键,选择菜单New/PolygonFeatureClassFromLines(从线要素产生多边形),出现对话框:
Enternameforthefeatureclass:
lotspolygon输入生成的多边形名称
EnteraclusterTolerance要求输入限差值,本练习用默认值,不修改
在下方的对话框中勾选lotlines,按OK按钮。
在dataset1中,根据线要素lotlines,生成了一个新多边形要素类lotspolygon,有关错误已经修改。
3拓扑规则用于空间分析
3.1建立多边形拓扑规则
本练习要求作一个分析:
某公司准备在该地区开一个卡拉OK厅,位置要沿道路,但是不能开在居住用地沿线的道路上,避免干扰居民生活,要求将不符合条件的路段找出来。
启动ArcCatalog,在左侧路径栏中找到D:
\gis_ex09\ex22\geo22(Geodatabase),双击展开,双击dataset2,可以看到该要素数据集里包含了两个多边形要素类:
blocks和parcel2,在右侧的显示框内点击标签Preview,下侧出现Preview下拉框,选择Geography,可以分别显示该要素类的大致图形(见图21-35,图21-36),在Preview下拉框中选择Table,该要素类的属性表(AttributeTableofFeatureClass)被打开,针对parcel2,可以看到有一个Res字段,纪录取值为0或者1,0表示非居住用地,1表示居住用地。
图21-35以道路划分的街坊(blocks)
图21-36进一步细化的地块(parcel2)
在ArcCatalog左侧目录框中双击要素类(FeatureClass)parcel2,单击右键,选择菜单Properties…,打开FeatureClass属性窗口。
在其中,点击Subtypes标签,参考图21-37进行设置:
SubtypeField:
Res下拉选择Subtype字段为Res
DefaultSubtype:
非居住用地下拉选择Subtype默认值为“非居住用地”
图21-37建立Subtype
如果不出现“非居住”、“居住”下拉值,须事先输入:
Code(属性值)Description
0非居住用地键盘输入
1居住用地键盘输入
按“确定”按钮,关闭FeatureClassProperties对话框。
在目录框中展开dataset2,如果该数据集中已经存在拓扑规则的定义(如dataset2_Topology,一般原因是前次练习已经建立了拓扑规则,用鼠标右键点击该拓扑规则名,选菜单Delete,对ConfirmDelete对话框,回答“是(Y)”,将已经存在的拓扑规则删除。
)确认没有拓扑规则后,再用鼠标右键单击dataset2,选择菜单New/Topology,弹出NewTopology对话框,点击“下一步”:
Enteranameforyourtopology:
dataset2_Topology输入拓扑规则数据名称
Enteracluster用默认值
点击“下一步”,勾选blocks和parcel2两个要素类,再点击“下一步”,提示输入Rank值,接受系统默认值,再点击“下一步”,点击按钮AddRule…,增加拓扑规则,在弹出的输入对话框按进行设置:
Featuresoffeatureclass:
block下拉选择
Rule:
AreaBoundaryMustBeCoveredByBoundaryof下拉选择
Featureclass:
parcel2:
非居住展开parcel2,后再下拉选择
√ShowErrors在对话框右侧勾选,要求显示拓扑错误
按OK键继续,可以看到拓扑规则的描述:
blocks-AreaBoundaryMustBeCoveredByBoundaryOf-parcel2:
非居住
意思是:
blocks(街坊)边界必须和parcel2(地块细分)中非居住用地的边界重合,不满足规则的边界线将被作为错误标出来。
经过Subtype设置,parcel2(地块细分)中属性为非居住的已被定义(Res等于0),就满足了分析的要求。
点击“下一步”,点击“完成”,系统需要计算一段时间,产生拓扑规则数据,再出现提示:
Thenewtopologyhasbeencreated.Wouldyouliketovalidateitnow?
(新的拓扑规则已经建立,是否使它有效?
)按“是(Y)”按钮,在dataset2下出现拓扑规则数据名称dataset2_Topology和对应的图标。
选用菜单File/Exit退出ArcCalalog。
图21-38显示不能建设卡拉OK厅的区域(拓扑错误区)
3.2查看分析结果
启动ArcMap,打开\gis_ex09\ex22\ex22.mxd,激活dataframe2,按图标
,添加D:
\gis_ex09\ex22\geo22—dataset2—dataset2_Topology,出现提示:
“Doyoualsowanttoaddallfeatureclassesthatparticipatein‘dataset2_Topology’tothemap?
”选择“否(N)”。
拓扑类dataset2_Topology添加显示出来,有拓扑错误的地方都用红色粗线(LineErrors)标出来。
这些红线是不允许开设卡拉OK厅的位置,他们是居住用地的边界(图21-38)。
结束练习,选用菜单File/Exit退出ArcMap,系统提示是否保
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARCGIS教程 第二十一章 拓扑规则 ARCGIS 教程 第二十一 拓扑 规则