- 1、本文档共53页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ArcGIS教程删除重复的要素之点
地理国情监测云平台
ArcGIS教程:删除重复的要素之---点
大家在用数据的时候,经常会碰到有重复的点。此文做了一个归总,提供给需要的人员。
1 使用ArcGIS工具,组合解决删除重复点
思路:buffer \ merge \ explodemulti-part feature \ feature to point \ spatial join
说明:
重复点,在某个精度下很相近而可以认为是同一个点的点。
这里所谓的删除重复点,其实是通过点做缓冲,构成面;然后把构成的面合并起来,这样,重复点 span=或者近距离点所形成的面的边界就会消融而形成一个面;然后打散,把不相邻的面分散成独立的要素;最后,生成这些面的质心点,即为所求。
1.1 Buffer对点层做缓冲,生成面
这里有个重要的参数,就是缓冲距离,怎么定呢?可以参考数据精度;还可以用 Analysis tools\ proximity\ point distince算一下各点距离,找到认为不重复的点之间的最近距离,设置的缓冲距离应该比这个距离的一半要小。
1.2 Merge
这里说的Merge是编辑下的合并功能。Editor \Starting editing \全选buffer后的面层,选择Merge,合并到一个空图班上。这一步的作用是将相邻过近,以至于重复的点形成的面的边界消掉,融合一起。
1.3 ExplodeMulti-part Feature
在Editor下拉菜单选择AdvancedEditing,调出高级编辑工具条。
点击一下Merge后的面层,选择ExplodeMulti-part Feature。这一步的作用是将上一步生成的不相邻不重合而被融合在一起的多部件面给炸开,打散。
1.4 Featureto point
Arctoolbox\ data management tools\features \Features to points,生成打散后面的质心点。这样生成的点层,就达到了消除重复点的目的。
1.5 SpatialJoin
这一步,主要是把原始点层含的属性给带过来。可以点击图层,右键\Join and Relates \Join\Joindata from another layer based on spatial location,也可以从工具箱里analysistools\overlay \spatial Join,位置关系匹配方式,可以选择closest。
2 完全通过field Calculate实现
思路:先将点的坐标按 x,y 的格式写入一个字段,然后对这个字段进行重复项检查。两步都是使用field Calculate,输入VBA的计算字符即可。
2.1 计算x,y的格式的坐标串
新建字段[coordinate] ,类型设置为text,长度默认50,右击该字段,选择field Calculate,点advanced,填入一下表达式:
Dim Output As string
Dim pPoint As IPoint
Set pPoint = [Shape]
Output = pPoint.X , pPoint.Y
2.2 找到重复的字符串
新建字段[Dup],类型设置为long integer,右键选field Calculate,在advanced的表达式框中填入:
Static d As Object
Static i As Long
Dim iDup As Integer
Dim sField
----------------------------------------
这里填写需要检查的字段名
sField = [coordinate]
----------------------------------------
If (i = 0) Then
Set d =CreateObject(Scripting.Dictionary)
End If
If(d.Exists(CStr(sField))) Then
iDup = 1
Else
d.Add CStr(sField), 1
iDup = 0
End If
i = i + 1
以下是原作者对上段代码的解释:
这段代码的思路,就是在第一行的时候,新建了一个Scripting.Dictionary 这算是一个容器(存放二维数组)。当VBA脚本在每一行执行的时候,都会把该条记录的[sField]字段值放到容器里比较一下。如果容器里没有,那么就添加进去,与此同时,把标识符 iDup赋
您可能关注的文档
- 丁文江与中国地质事业初创.doc
- 关于加快思茅区咖啡产业发展的调研报告.doc
- 二是建立两客一危运输车辆动态监控平台通过监控中心 GPS系统中心平台 企业级应用软件 网上车辆监控等建设,对注册车辆实施动态跟踪 监控 调度和管理,提升道路运.doc
- 清创术PPT课件图文.ppt
- 浅析脓毒症图文.ppt
- '茅以升铁道工程师奖'奖励办法.doc
- -人教A版高一数学上册第一章集合与函数概念测试题及答案解析.doc
- -企业现金流管理实务.ppt
- -境内企业IPO流程及要点分析.ppt
- -浙江科技学院电气学院青年志愿者协会年终活动总结.doc
- 第18讲 第17课 西晋的短暂统一和北方各族的内迁.docx
- 第15讲 第14课 沟通中外文明的“丝绸之路”.docx
- 第13课时 中东 欧洲西部.doc
- 第17讲 第16 课三国鼎立.docx
- 第17讲 第16课 三国鼎立 带解析.docx
- 2024_2025年新教材高中历史课时检测9近代西方的法律与教化含解析新人教版选择性必修1.doc
- 2024_2025学年高二数学下学期期末备考试卷文含解析.docx
- 山西版2024高考政治一轮复习第二单元生产劳动与经营第5课时企业与劳动者教案.docx
- 第16讲 第15课 两汉的科技和文化 带解析.docx
- 第13课 宋元时期的科技与中外交通.docx
最近下载
- 西北工业(大学)数学分析历年考研试题.pdf
- 《Unit 4 Fun with numbers》教学设计外研版(三起)(2024)小学英语三年级上册.docx VIP
- 135战法55种方法图解(宁俊明版).docx VIP
- 小学生主题教育班会 不挑食我最棒 课件(共27张PPT).pptx VIP
- 工贸企业重大事故隐患判断标准解读培训课件.pdf
- 上海市2023年高考语文模拟题汇编-阅读与鉴赏(现代文阅读).doc
- 中国居民膳食指南2022全文.pdf
- 2024年《消费者权益保护法实施条例》全文解读PPT课件.pptx
- 商业商户店铺装修手册.doc
- 新人教版英语七年级上册全册课件(2024年新教材).pptx
文档评论(0)