使用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 ...
随机推荐
- 三大框架知识点比较(Angular, Vue, React)
点击左键 => 拖拽图片 => 新标签页查看图片 => 放大拖拽查阅
- Ted:1 Vulnhub Walkthrough
主机层面端口扫描: ╰─ nmap -p1-65535 -sV -A 10.10.202.134 Starting Nmap 7.70 ( https://nmap.org ) at 2019-08- ...
- Rsync实现文件的同步
故事背景:我们公司是做新零售的,需要对发布的每台机器进行文件的同步更新,所以我这里做了一个小小的调研 技术调研:linux之间同步文件有两种方式rsync与scp. sync和scp在文件夹均不存在时 ...
- Hazelcast介绍
Hazelcast介绍 什么时侯需要用例 内存中分布式计算 场景分布式消息 特性 全景 Distributed Maps 一个结点中分区 Hazelcast中的分片也称为分区,Hazelcast默认2 ...
- WEB UI分布式自动化测试框架
Github地址: https://github.com/zhangweixu/Autotest.git
- 基于django的个人博客网站建立(七)
基于django的个人博客网站建立(七) 前言 网站效果可点击这里访问 这次在原来的基础上添加或修改一些小功能 具体内容 1.代码高亮 在原来的blog-details.html页面添加下面的代码: ...
- echarts 在 vue-awesome-swiper中无法点击
回退vue-awesome-swiper版本到2.6.7 即可npm install vue-awesome-swiper@2.6.7 --save
- 2019阿里天猫团队Java高级工程师面试题之第一面
2019阿里天猫团队Java高级工程师面试题之第二面 2019阿里天猫团队Java高级工程师面试题之第三面 1.五分钟自我介绍,说说自己的擅长及拿手的技术 自我介绍是为了考察面试者的语言表达和总结概括 ...
- typescript与nodejs(二)基于装饰器实现路由表
之前实现了一个简单的WebServer 但是这离实际使用还有一点距离 webserver 首先面对第一个问题是路由表 啥是路由表 路由表别看听起来神秘,但是其实就是 if else onhttp- { ...
- Vue 03
目录 组件 组件的分类 组件的特点 组件的使用 组件传参-父传子 组件传参-子传父 组件 组件就是html, css和js文件的集合体, 实现对代码的复用, 组件就是vue对象 组件的分类 根组件 & ...