使用ArcPy拓扑检查的基本步骤
拓扑检查是GIS的特性,在ArcGIS可使用多种方法进行检查,包括:
1、在数据集上右键按向导建立;
2、使用拓扑工具箱的一系列工具分步建立;
3、创建模型工具,制作专门的拓扑工具;
4、利用ArcPy灵活定制拓扑检查脚本;
5、使用ITopologyContainer等接口二次开发。
基本步骤
无论使用哪种方式,拓扑检查都离不开以下的步骤:
创建拓扑:在数据集上新建一个用于拓扑的容器;
添加要素类:必须将需要参与拓扑检查的要素类添加到同一数据集的拓扑容器中;
设置容差:一般可以不设置,默认地理坐标是0.000000008983153度,投影坐标是0.0002米;
添加规则:根据检查要素添加点、线、面的拓扑规则;
验证拓扑:如果前面步骤没有报错,表示创建拓扑完成,可以开始验证了;
查看结果:可能通过拓扑工具条查看拓扑结果,也可以导出为错误要素记录;
修改错误:拓扑检查的目的是修改拓扑错误,不同的错误有相应的修改方式。
使用示例
下面是一个拓扑检查的示例,先由模型工具制作后,直接导出ArcPy脚本稍作修改(ESRI是不是很强大)。
# -*- coding: utf-8 -*-
# ---------------------------------------------------------------------------
# Fun : NcTopology
# Author: gisweis
# Date : 2019.10.8
# Email :
# Notes :
# --------------------------------------------------------------------------- # Set the necessary product code
import arceditor
import arcpy
import os # Script arguments
db = arcpy.GetParameterAsText(0) arcpy.env.workspace = db
arcpy.env.overwriteOutput = True # Local variables:
StrDataset = "StrDataset"
TraDataset = "TraDataset"
GQ_HOUA="GQ_HOUA"
GQ_BUIA="GQ_BUIA"
GQ_LRDA="GQ_LRDA"
GQ_LRRA="GQ_LRRA" StrDataset_TP1 = "StrDataset_TP1"
StrDataset_TP1_PATH = StrDataset + os.sep + StrDataset_TP1 Not_Overlap = "Must Not Overlap (Area)"
Not_Gaps="Must Not Have Gaps (Area)"
BeCovered="Must Be Covered By Feature Class Of (Area-Area)"
Not_OverlapWith="Must Not Overlap With (Area-Area)" # Process1: Create Topology
arcpy.CreateTopology_management(StrDataset, StrDataset_TP1, "") # Process2: Add FeatureClass
arcpy.AddFeatureClassToTopology_management(StrDataset_TP1_PATH, GQ_HOUA, "1", "1")
arcpy.AddFeatureClassToTopology_management(StrDataset_TP1_PATH, GQ_BUIA, "1", "1") arcpy.Copy_management(TraDataset + os.sep +GQ_LRDA, StrDataset + os.sep + GQ_LRDA+"_1", "")
arcpy.AddFeatureClassToTopology_management(StrDataset_TP1_PATH, GQ_LRDA+"_1", "1", "1") arcpy.Copy_management(TraDataset + os.sep +GQ_LRRA, StrDataset + os.sep + GQ_LRRA+"_1", "")
arcpy.AddFeatureClassToTopology_management(StrDataset_TP1_PATH, GQ_LRRA+"_1", "1", "1") # Process3: Set Tolerance
arcpy.SetClusterTolerance_management(StrDataset_TP1_PATH, "8.98315284119521E-09") # Process4: Add Rule
arcpy.AddRuleToTopology_management(StrDataset_TP1_PATH, Not_Overlap, GQ_HOUA, "", "", "")
arcpy.AddRuleToTopology_management(StrDataset_TP1_PATH, Not_Overlap, GQ_BUIA, "", "", "")
arcpy.AddRuleToTopology_management(StrDataset_TP1_PATH, BeCovered, GQ_BUIA, "", GQ_HOUA, "")
arcpy.AddRuleToTopology_management(StrDataset_TP1_PATH, Not_OverlapWith, GQ_HOUA, "", GQ_LRDA+"_1", "")
arcpy.AddRuleToTopology_management(StrDataset_TP1_PATH, Not_OverlapWith, GQ_HOUA, "", GQ_LRRA+"_1", "")
# arcpy.AddRuleToTopology_management(StrDataset_TP1_PATH, Not_Gaps, GQ_HOUA, "", "", "")
# arcpy.AddRuleToTopology_management(StrDataset_TP1_PATH, Not_Gaps, GQ_BUIA, "", "", "") # Process5: Validate Topology
arcpy.ValidateTopology_management(StrDataset_TP1_PATH) # Process6: Delete
#
# arcpy.Delete_management( StrDataset + os.sep +GQ_LRDA+"_1")
# arcpy.Delete_management( StrDataset + os.sep +GQ_LRRA+"_1")
使用ArcPy拓扑检查的基本步骤的更多相关文章
- 解析ArcGis拓扑——检查的流程,以面重叠检查为例
最简单的面重叠错误检查是使用“地理处理”——“面相交”进行检查,其结果是重叠部分提取而成的新面要素类.本例不讲述此种方法. step1 准备待拓扑检查数据 名词: 数据库 DataBase→顾名思义, ...
- ArcGIS拓扑检查
对于拓扑检查中的等级参数一直不理解,经过参考资料才明白过来: 注:如果有两个要素参与到拓扑,在修复拓扑错误时会优先移动拓扑级别低的要素来满足匹配拓扑规则要求. 参考资料: https://wenku. ...
- ArcGIS案例学习笔记-CAD数据自动拓扑检查
ArcGIS案例学习笔记-CAD数据自动拓扑检查 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 功能:针对CAD数据,自动进行拓扑检查 优点:类别:地理建模项目实例 ...
- ArcGis 拓扑检查——缺顶点、悬挂检查代码 C#
看了些源码,效率挺垃圾的,折腾了一个垃圾得不太彻底的代码,还是慢. 不会折腾底层直接怼COM的悲伤…… 实现思路是这样的: 1.把面层的点都塞进List,去重,取坐标4位,后边的检查使用容差0.001 ...
- ArcGis 拓扑检查——狭长角锐角代码C#
中学的时候醉心于研究怎么“逃课”,大学的时候豁然开悟——最牛逼的逃课是准时准地儿去上每一课,却不知到老师讲的啥,“大隐隐于市”大概就是这境界吧. 用到才听说有“余弦定理”这么一个东西,遂感叹“白上了大 ...
- java图片上传,通过MultipartFile方式,如果后台获取null检查是否缺少步骤
本方法基于springMvc 1.首先需要在webap下创建images 2.在springmvc.xml上引入 <bean id="multipartResolver" c ...
- Dynamics 365检查工作流、SDK插件步骤是否选中运行成功后自动删除系统作业记录
本人微信公众号:微软动态CRM专家罗勇 ,回复298或者20190120可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . 系统 ...
- ArcGIS对进行数据拓扑修改
空间数据处理--题目1 土地利用数据每年都在发生变化,故每年都要根据去年的数据进行修改.请根据以下要求,修改A区域的数据并对B区域已做好的数据进行拓扑检查. 一. 数据说明(见"题目1&qu ...
- Oracle 11g数据库详细安装步骤图解
1.先到Oracle官网上下载11g oracle Database 11g 第 2 版 (11.2.0.1.0) 标准版.标准版 1 以及企业版 适用于 Microsoft Windows (x64 ...
随机推荐
- javascript中常见的几种循环遍历
项目开发中,不管是建立在哪个框架基础上,对数据的处理都是必须的,而处理数据离不开各种遍历循环.javascript中循环遍历有很多种方式,记录下几种常见的js循环遍历. 一.for循环 for循环应该 ...
- Android Studio 第一个Android项目
创建步骤 Start a new Android Studio project 选择 Empty Activity 设置Android项目的名称.位置,开发语言 打开初始界面 初步认识Androi ...
- IDEA SVN消失
问题:idea 的 svn消失 1.右键项目文件时无subversion选项 2.启动选项栏无图标 解决办法: 方法1:菜单栏>CVS>Enabled Version Control In ...
- [Go] 轻量服务器框架tcp的粘包问题 封包与拆包
tcp传输的数据是以流的形式传输的,因此就没有办法判断到哪里结束算是自己的一个消息,这样就会出现粘包问题,多个包粘在一起了 可以使用这样一个自定义的形式来解决,一个消息分为 head+body he ...
- excel文字随单元格大小变化
对于不想因为伸缩等,造成部分文字看不见 或者 格式变形等,可以采用缩小字体或适应文字: 1.excel中可以选择缩小字体填充,这样,缩小excel就不怕了: 2.word中,excel表设置适应文字 ...
- SpringMVC 简单限流方案设计
一.概念 限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务.排队或等待.降级等处理. 常用的限流算法有两种:漏桶算法和令牌桶算法: ...
- 第一个月.day1
1. 编辑器下载 推荐的是hbulider 开发环境 2. 浏览器 推荐chrome 谷歌浏览器学习 3. 建立技术笔记 推荐博客园 Web 本月任务 搭建静态网页. 静态页面:不需要网络请求 ...
- Java向上下转型中的陷阱{详细}
1: 多态 多态时继承下面的产物,之所以存在向上向下转型的目的,就是解决参数传递的不变形,体现面向接口编程的重要性, 1.1 方法的多态性 ①. 方法的重载:同一个方法名称可以根据参数的类型或 ...
- 读后感:数据结构与算法JavaScript描述
本书看完,对常见的数据结构与算法从概念上有了更深入的理解. 书中关于数组.栈和队列.链表.字典.散列.集合.二叉树.图.排序.检索.动态规划.贪心算法都有详细的介绍.算是一本不错的学习书籍. 栈和队列 ...
- (五十九)c#Winform自定义控件-池子(工业)-HZHControls
官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...