这里所说的重复是指完成重复的,不是叠在一起的两个或多个要素,这种应该叫做“压盖”或“重叠”。重复往往是在合并多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. HDOJ5547 SudoKu

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5547 题目大意:填数独... 思路:爆搜 #include <stdio.h> #incl ...

  2. 【题解】 bzoj2982: combination (Lucas定理)

    题面戳我 Solution 板子题 Code //It is coded by ning_mew on 7.25 #include<bits/stdc++.h> #define LL lo ...

  3. js中的arguments用法

    //arguments对象并不是一个数组,但是访问单个参数的方式与访问数组元素的方式相同 function show(){ console.log(arguments); //arguments.pu ...

  4. PHP日志切割shell

    #!/bin/bash#此脚本用于自动分割php日志,error.log#每天00:01执行此脚本 将前一天的errors.log重命名为errors-xxxx-xx-xx.log格式,并重新打开日志 ...

  5. HDU 5950 Recursive sequence(矩阵快速幂)

    题目链接:Recursive sequence 题意:给出前两项和递推式,求第n项的值. 题解:递推式为:$F[i]=F[i-1]+2*f[i-2]+i^4$ 主要问题是$i^4$处理,容易想到用矩阵 ...

  6. Http协议常见状态码

    206 - 断点下载时用到,客户端请求了一部分内容,服务器成功把这部分内容返回给它,这时候就是用这个状态. 301 - 永久跳转,原地址不存在了,url被指向到另一个地址.这个主要是搜索引擎相关,影响 ...

  7. jQuery ajax读取本地json文件

    jQuery ajax读取本地json文件 json文件 { "first":[ {"name":"张三","sex": ...

  8. bzoj1398 Necklace

    关于最小表示法的模板题. 最小表示法:把一个字符串表示为它的的所有循环同构字符串中的字典序最小者. 直接参见代码中的函数getmin()获取精髓 #include <cstdio> #in ...

  9. Filter(过滤器)

    一.Filter过滤器(重要) Javaweb中的过滤器可以拦截所有访问web资源的请求或响应操作. 1.Filter快速入门 1.1.步骤: 1. 创建一个类实现Filter接口 2. 重写接口中方 ...

  10. 遍历List过程中同时修改

    public static void Main() { List<int> list = new List<int>(); ,,,,,,,,,}; list.AddRange( ...