第三章数据的采集与组织GIS软件应用实习教材1实例与练习练习1:某地区地块的拓扑关系建立1.背景:拓扑关系对于数据处理和空间分析具有重要意义,拓扑经常应用于地块查询、土地利用类型更新等。2.目的:通过本例,让读者掌握创建一个要素数据集的拓扑关系的整个流程,并对创建拓扑后的一些工作,如拓扑错误检测、拓扑错误修改、拓扑编辑等基本操作有一个较全面的了解。3.要求:在Topology数据集中导入上述两个Shapefile,建立该要素数据集的拓扑关系,使拓扑生效后检测拓扑错误,修改拓扑错误,最后进行拓扑编辑。4.数据:Blocks.shp、Parcels.shp,存放在.../ChP3/Ex1中,请将其拷贝到E:/ChP3/Ex1。结果数据存放于.../ChP3/Ex1/Result中。5.操作步骤:(1)创建地理数据库1)在ArcCatalog树中,右键单击Result文件夹,单击New,单击PersonalGeodatabase,输入所建的地理数据库名称:NewGeodatabase。如图1所示。在新建的地理数据库中创建要素数据集,如图2所示。第三章数据的采集与组织GIS软件应用实习教材2{_JChF3Fl-P^HesiiL+國Block:电Cop/国cente]@past,卜…關famou:卜netXDele':@1Farce;RenaiC£efr,图2创建要素数据集将数据集命名为:Topology。图1创建地理数据库2)打开NewFeatureDataset对话框,如图3所示。第三章数据的采集与组织GIS软件应用实习教材3图3NewFeatureDataset对话框图4SpatialReference属性对话框4)单击Import按钮,选择要与之具有相同坐标系统的数据集:Blocks.shp或Parcels.shp,如图5所示。5)单击Add按钮,返回SpatialReference属性对话框。这时要素数据集定义了坐标系统。单击确定按钮。(2)向数据集中导入数据1)在ArcCatalog树中,右键单击Result文件夹中的Topology数据集,单击Import,单击FeatureClass(multiple),如图6所示。图5匹配坐标系统图6向数据集中导入数据3)单击Edit按钮,打开SpatialReference属性对话框,如图4所示。第三章数据的采集与组织GIS软件应用实习教材42)打开FeatureClasstoGeodatabase(multiple)对话框,如图7所示。导入Blocks和第三章数据的采集与组织GIS软件应用实习教材5Parcels两个Shapefile,单击OK按钮。图7FeatureClasstoGeodatabase(multiple)对话框图8建立子类型(3)在要素类中建立子类型由于原数据Blocks和Parcels两个有子类型,把要素分为了居民区和非居民区,而数据导入到数据集后并没有子类型,所以在导入数据后为每个要素类建立两个子类型:Residential和Non-Residential。1)在Blocks要素类上单击右键,单击Properties,如图8所示。打开FeatureClassProperties对话框,如图9所示。2)打开FeatureClassProperties对话框(Subtypes选项卡)。在SubtypesField下拉框中选择一个子类型字段:Res,在DefaultSubtype窗口中出现所选字段的默认的新的子类型名称:NewSubtype。3)在Subtypes栏中的Code列下输入新的子类型代码及其描述,描述将自动更新DefaultSubtypes窗口中的内容。Properties.B0H^+J2SJJJJJ画OutputGeodatabase|E:\ChP3\Eesult\NewGeodatabase.mdbMopology%FeatureClasstoGeodatabase(suitiple)E:\ChF3VFarcels.shpE:\ChP3VBlocks.shpInputFeaturesOK第三章数据的采集与组织GIS软件应用实习教材6图9FeatureClassProperties对话框图10添加了两个子类型(4)创建拓扑1)在ArcCatalog树中,右键单击Topology要素数据集,单击New,单击Topology。如图11所示。打开NewTopology对话框,它是对创建拓扑的简单介绍,如图12所示。4)重复上述步骤,添加其他子类型。如图10所示,添加了两个子类型:Residential和Non-Residential。单击确定按钮。5)以相同的方法在Parcels要素类中建立两个子类型:Residential和Non-Residential。图11创建拓扑第三章数据的采集与组织GIS软件应用实习教材72)单击下一步按钮,打开确定名称和聚类误差(ClusterTolerance)对话框,如图13第三章数据的采集与组织GIS软件应用实习教材8所示。输入所创建拓扑的名称和聚类误差。聚类误差应该依据数据精度而尽量小,它决定着在多大范围内要素必须具有一致性。3)单击下一步按钮,打开选择参与创建拓扑的要素类对话框,如图14所示。4)单击下一步按钮,打开设置拓扑等级数目对话框,如图15所示。设置拓扑等级的数目及拓扑中每个要素类的等级。:上一步a)I下一步e)|取消图14选择参与创建拓扑的要素类对话框5)单击下一步按钮,打开指定拓扑规则对话框,如图16所示。6)单击AddRule按钮,打开AddRule对话框,如图17所示。在Featuresoffeatureclass下拉框中选择Parcels,在Rules下拉框中选择MustNotOverlap,表示一个区域不能与另一个区域重叠,可以连接在一起,也可以分开。若两个区域重叠,则违背所定义的拓扑规则,出现拓扑错误。在对话框的右侧面板,显示所选规则的示意图及简单介绍。图12NewTopology对话框图13确定名称和聚类误差对话框图15设置拓扑等级数目对话框丨evTopologyl^llBlIBlocks第三章数据的采集与组织GIS软件应用实习教材7)单击OK按钮,返回指定拓扑规则对话框,可以看到已经创建了一个规则,如图图16指定拓扑规则对话框图17AddRule对话框18所示。这个规则将控制同一个要素类中的要素的拓扑关系。单击AddRule按钮,创建另一个规则。如图19所示。在Featuresoffeatureclass下拉框中选择Parcels要素类中的Residential,在Rules下拉框中选择MustBeCoveredby,在Featureclass下拉框中选择Blocks要素类中的Residential。MustBeCoveredby表示一个图层中某个要素包括另一个图层中的一定要素。在本例中,Blocks中的居民区包括了Parcels中的居民区。单击OK按钮,返回指定拓扑规则对话框,可以看到已经创建了两个规则,如图20所示。单击下一步按钮,打开参数信息总结框,如图21所示。单击完成按钮,出现进程条,当进程结束时,拓扑创建完成。出现一对话框,询问是否立即使拓扑有效。如图22所示。单击否按钮,在以后的工作流程中使其生效,创建的拓扑出现在Catalog树中;单击是按钮,出现进程条,进程结束时,拓扑已经生效,创建的拓扑出现在Catalog树中。8)9)9)11)12)containedwithinafeaturefromanothei|Farcels:ResidentialRule:|MustBeCoveredByFeatureclass:||Blocks::ResidentialIIlayerthatisnot~Lp]containedwithina\—/featurefromthef?ShowErrorssecondlayerisan图18添加了一个规则图19添加第二个规则第三章数据的采集与组织GIS软件应用实习教材10(5)查找拓扑错误1)在ArcCatalog树中,右键单击新建的拓扑,单击Properties,如图23所示。2)打开TopologyProperties对话框,如图24所示。单击RemoveAll按钮,将已有的两个规贝_除。3)单击AddRule按钮,打开AddRule对话框,重新定义一个规则:MustNotOverlapWith,如图25所示,在Featuresoffeatureclass下拉框中选择Parcels中的Non-Residential,在Featureclass下拉框中选择Blocks中的Residential。这个拓扑规则表示Parcels中的非居住区必须与Blocks中的居住区不重叠。4)单击OK按钮,返回AddRule对话框,定义了一个新规则。如图26所示。单击确定按钮,完成拓扑的修改。5)在ArcMap中加载数据creatingTopology、Parcels和Blocks三层,如图27所示。先将某个图层设为可编辑状态。调入Topology工具栏,如图28所示。在Topology下拉框中选择要编辑的拓扑图层creatingTopology。6)拓扑修改(更改名字、修改规则等)后需要使拓扑生效,可以通过单击Topology霣evTopologyName:ceatingTopologyClusterTolerance:0.0000164841ZClusterTolerance:0FeatureBlocks^ParcelsClasses:Raitk:1Eank:1Rules:ParcelsParcels-MustHotOverlap:Residential_MustBeCoiferedBy_Blocts:Resi1:一步迈)|芫成|取消图20添加了两个规则图21信息总结对话框图22询问是否使拓扑生效图23创建拓扑第三章数据的采集与组织GIS软件应用实习教材11工具栏中的•■按钮,使图面上的指定区域拓扑生效、%按钮可以使当前可见图面的拓扑生效、&按钮可以使整个拓扑生效。生效的过程其实就是检验拓扑错误的过程,若拓扑规则有错误,则拓扑生效后,会把有错误的地方自动显示出来。在本例中,可在加载了数据后,单击%■按钮,使拓扑生效,这时视图中出现四个深色方块,即是拓扑错误的地方。如图29所示。确定取消应用⑷确定取消|应用㈤图26定义了一个新规则TopologyPropertiKemoveAll|LoadRules..■|SaveRules.■.|图25AddRule对话框AddDat图27加载数据图24TopologyProperties对话框TopologyProperties第三章数据的采集与组织GIS软件应用实习教材12Topology:|Landbase_Topology三]續饭壬頌紹1^^^^图28Topology工具栏图29显示拓扑错误的地方7)单击Topology工具栏中的@检测拓扑错误按钮,并单击SearchNow按钮,即可检查出拓扑错误,误的详细信息。如图30所示。打开ErrorInspector对话框,并在下方的表格中显示拓扑错图30ErrorInspector对话框MustHotOverlapWithParcels:Non-ResidentialBlocks:ResidentialPolygonMustNotOverlapWithParcels:Non~ResidentialBlocks:ResidentialPolygonMustHotOverlapWithParcels:Non-ResidentialBlocks:ResidentialPolygonMustHotOverlapWithParcels:Non-ResidentialBlocks:ResidentialPolygon0G0171182215sssSalalalalFFFF11058110561105611055第三章数据的采集与组织GIS软件应用实习教材13(6)修改