这里所说的重复是指完成重复的,不是叠在一起的两个或多个要素,这种应该叫做“压盖”或“重叠”。重复往往是在合并多Shpfile文件时不小心重复导入造成的。

这里提供一种可能的解决办法,数据无价,请备份!

本篇使用Python语句

暂不说如何处理,先获取要素的一些几何属性。下文中所有的语句使用Python解析。

!shape.type!
要素的类型,返回一个文本值,点线面(point,polyline,polygon)等。这个想不出有啥用来

对于面要素(polygon):
!shape.area!
计算要素几何面积,前面有讲,一个double数值。

此外,在字段标题上右键——计算几何(Calculate Geometry)——面积(area)也可以。

!shape.length!
计算要素长度,一个double数值。

此外,在字段标题上右键——计算几何(Calculate Geometry)——周长(perimeter)也可以。

!shape.centroid.x!

计算质心的X坐标值,一个double。

同样可以在字段标题右键

!shape.centroid.y!

计算质心的Y坐标值,一个double。

同样可以在字段标题右键

结果可以看下图:

选中的记录为重复的3个面要素,很明显,他们的上述各种值是一样的,那么我们做一个字符串拼接游戏,面积+周长+质心X坐标+质心Y坐标是不是应该可以确定一组重复了?

拼好后把属性表搞到Excel(不会请百度,也许有时间我会写一下),根据这个表识字段(这里命名用了unique)排一下序,使用一个简单的函数简单的Excel函数=COUNTIF(H$2:H2,H2)给相同项编个号,结果如下图。

上图已经很明晰,干掉所有编号为1的,挂接回ArcMap属性表,能挂接上值的就是应该删掉的,能想明白不?

多说一句,挂接也是有些道道儿的。挂接这个事儿需要写一下吗?好多……

今天就遇到一个根据FID挂接不上的,Object 类型能挂接才怪,如果依据它的值做连接,需要新建一个字段(最好文本),把FID值计算过来再挂接。

对于线要素:

计算一下起点、终点、长度啥的拼一下可以处理了

!shape.firstPoint.x! 是起点x

!shape.lastPoint.y!是终点y

对于点:

还有必要赘述吗?

解析ArcGis的字段计算器(二)——有玄机的要素Geometry属性,在属性表标记重复点线面的更多相关文章

  1. 解析ArcGis的字段计算器(三)——文本型字段计算,编号那些事儿

    实际操作中我们一般会将编号字段定义为文本型,因为编号不是序号,序号是一个递增数值,而编号往往是一个数字串代码. 本篇无说明的均使用VBScript语句1.怎么编号?最简单的编号—>直接在编号字段 ...

  2. 解析ArcGis的字段计算器(一)——数值型数据计算,从“面积计算”开始

    先来点儿背景知识铺垫: ArcMap的字段计算器提供了两种脚本语言的支持用以计算,两种脚本语言是VBScript与Python. 多数人选择使用前者,因为它的基本函数和Excel的函数貌似一样.注意我 ...

  3. 解析ArcGis的标注(二)——认识ArcGis标注标签

    该“标注”系列博文的标注引擎使用“标准标注引擎(standard label engine)”,这个概念如不知道,可不理会,ArcGis默认标注引擎就是它. 本篇的标注语句解析使用VBScript,注 ...

  4. 解析ArcGis的标注(一)——先看看分数式、假分数式标注是怎样实现的

    该“标注”系列博文的标注引擎使用“标准标注引擎(standard label engine)”,这个概念如不知道,可不理会,ArcGis默认标注引擎就是它. ArcGis的标注表达式支持VBScrip ...

  5. ArcGis 字段计算器表达式(Field calculator expression).cal文件与标注表达式(label expression).lxp的实质及其编码方式、解析方法

    ArcGis 字段计算器表达式可以保存为一个扩展名为.cal的文件,该文件的实质是一个文本文件,编码方式为 UTF-16-LE. 官方的说明是“ArcGIS 应用程序使用 UTF-16-LE 编码读写 ...

  6. arcgis字段计算器

    arcgis字段计算器 一.VB脚本 1.取某字段前几位或者后几位 ) ) 2.合并字段,中间加符号 Dim a if [ZDDM2] ="" Then a= [ZDDM1] el ...

  7. ArcGIS字段计算器分割字段中的字符串

    ArcGIS字段计算器分割字段中的字符串 实例:在一个字段中存有长宽高三个属性数据,以x分割.例如sss为字段名(字段属性为文本类型),数据格式为:100x200x300,利用字段计算器分别将三个数存 ...

  8. ArcGIS 字段计算器 Python 坑

    最近要处理个简单数据,一个字段中为文本类型,包含各种描述.要求是包含平方米的数值提取出来,变成数值,如果包含多个,则把各个值累加起来. 比如 字段值为 “非法占用100平方米” 处理后结果为 100 ...

  9. 由ArcMap属性字段自增引出字段计算器使用Python的技巧

    1.前言       前些日子有人问我ArcMap中要让某个字段的值实现自增有什么方法?我首先想到像SQL Server中对于数值型字段可以设置自增.所以我打开ArcCatalog查看发现只提供默认值 ...

随机推荐

  1. MT【304】反射路径长度比

    (高考压轴题改编)如图,长方体$ABCD-A_1B_1C_1D_1$中,$AB=11,AD=7,AA_1=12.$一质点从顶点$A$设向$E(4,3,12)$遇到长方体的面反射(服从光的反射原理),将 ...

  2. 纯CSS画的基本图形(圆形、三角形、多边形、爱心、八卦等)

    1.圆形 .circle { width: 100px; height: 100px; background: red; border-radius: 50px; } 2.椭圆 .oval { wid ...

  3. 觉得一篇讲SPFA还不错的文章

    我觉得他整理的有一些乱,我都改成插入代码了,看的顺眼一些 转载自http://blog.csdn.net/juststeps/article/details/8772755 下面的都是原文: 最短路径 ...

  4. RabbitMQ图解

    一.MQ对比 二.RabbitMQ模式 三.队列模式 四.公平分发 五.主题模式

  5. BZOJ2801/洛谷P3544 [POI2012]BEZ-Minimalist Security(题目性质发掘+图的遍历+解不等式组)

    题面戳这 化下题面给的式子: \(z_u+z_v=p_u+p_v-b_{u,v}\) 发现\(p_u+p_v-b_{u,v}\)是确定的,所以只要确定了一个点\(i\)的权值\(x_i\),和它在同一 ...

  6. C语言中的类型转换——将字符串s转换为整数型(int)类型

    在讲类型转换之前,我们先要理解下C语言中单引号和双引号的区别. 先讲双引号,双引号就是字符串,我们要证实我们的想法,我选择写一段代码看看开: #include <stdio.h> int ...

  7. 搭建简易的WebServer(基于pyhton实现简易Web框架 使用socket套接字)

    1. 使用web底层socket的方式实现简易服务器的搭建,用来理解学习 # 1.导入socket模块 import socket import re import gevent import sys ...

  8. ASP.NET MVC什么时候使用异步Action

    在没有使用异步Action之前,在Action内,比如有如下的写法: public ActionResult Index() CustomerHelper cHelper = new Customer ...

  9. bs4抓取糗事百科

    抓取糗事百科内容及评论,不包含图片信息.user-agent填入浏览器的即可.user-agent对应的value,360极速浏览器的话,可以在地址栏输入about:version,回车,用户代理后面 ...

  10. django的RestFramework模块的源码分析

    一.APIView源码分析 查看源码的前提要知道,找函数方法必须先在自己的类中找,没有再往父类找,一层一层网上找,不能直接按ctrl点击 在我们自己定义的类中没有as_view方法的函数,所以肯定是继 ...