解析ArcGis的字段计算器(二)——有玄机的要素Geometry属性,在属性表标记重复点线面
这里所说的重复是指完成重复的,不是叠在一起的两个或多个要素,这种应该叫做“压盖”或“重叠”。重复往往是在合并多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属性,在属性表标记重复点线面的更多相关文章
- 解析ArcGis的字段计算器(三)——文本型字段计算,编号那些事儿
		
实际操作中我们一般会将编号字段定义为文本型,因为编号不是序号,序号是一个递增数值,而编号往往是一个数字串代码. 本篇无说明的均使用VBScript语句1.怎么编号?最简单的编号—>直接在编号字段 ...
 - 解析ArcGis的字段计算器(一)——数值型数据计算,从“面积计算”开始
		
先来点儿背景知识铺垫: ArcMap的字段计算器提供了两种脚本语言的支持用以计算,两种脚本语言是VBScript与Python. 多数人选择使用前者,因为它的基本函数和Excel的函数貌似一样.注意我 ...
 - 解析ArcGis的标注(二)——认识ArcGis标注标签
		
该“标注”系列博文的标注引擎使用“标准标注引擎(standard label engine)”,这个概念如不知道,可不理会,ArcGis默认标注引擎就是它. 本篇的标注语句解析使用VBScript,注 ...
 - 解析ArcGis的标注(一)——先看看分数式、假分数式标注是怎样实现的
		
该“标注”系列博文的标注引擎使用“标准标注引擎(standard label engine)”,这个概念如不知道,可不理会,ArcGis默认标注引擎就是它. ArcGis的标注表达式支持VBScrip ...
 - ArcGis 字段计算器表达式(Field calculator expression).cal文件与标注表达式(label expression).lxp的实质及其编码方式、解析方法
		
ArcGis 字段计算器表达式可以保存为一个扩展名为.cal的文件,该文件的实质是一个文本文件,编码方式为 UTF-16-LE. 官方的说明是“ArcGIS 应用程序使用 UTF-16-LE 编码读写 ...
 - arcgis字段计算器
		
arcgis字段计算器 一.VB脚本 1.取某字段前几位或者后几位 ) ) 2.合并字段,中间加符号 Dim a if [ZDDM2] ="" Then a= [ZDDM1] el ...
 - ArcGIS字段计算器分割字段中的字符串
		
ArcGIS字段计算器分割字段中的字符串 实例:在一个字段中存有长宽高三个属性数据,以x分割.例如sss为字段名(字段属性为文本类型),数据格式为:100x200x300,利用字段计算器分别将三个数存 ...
 - ArcGIS 字段计算器 Python 坑
		
最近要处理个简单数据,一个字段中为文本类型,包含各种描述.要求是包含平方米的数值提取出来,变成数值,如果包含多个,则把各个值累加起来. 比如 字段值为 “非法占用100平方米” 处理后结果为 100 ...
 - 由ArcMap属性字段自增引出字段计算器使用Python的技巧
		
1.前言 前些日子有人问我ArcMap中要让某个字段的值实现自增有什么方法?我首先想到像SQL Server中对于数值型字段可以设置自增.所以我打开ArcCatalog查看发现只提供默认值 ...
 
随机推荐
- 后台CRUD管理jqGrid 插件下载、使用、demo演示
			
jqGrid:demo?version=5.2.1download src: http://www.trirand.com/blog/ github:https://github.com/tonyto ...
 - 【HDU - 4349】Xiao Ming's Hope
			
BUPT2017 wintertraining(15) #8H 题意 求组合数C(n,i),i从0到n,里面有几个奇数. 题解 直接打表的话可能就直接发现规律了. 规律是n的二进制里有几个1,答案就是 ...
 - python学习日记(编码再回顾)
			
当想从一种编码方式转换为另一种编码方式时,执行的就是以上步骤. 在python3里面,默认编码方式是unicode,所以无需解码(decode),直接编码(encode)成你想要的编码方式就可以了. ...
 - [bzoj2288][pojChallenge]生日礼物【贪心+堆+链表】
			
题目描述 ftiasch 18岁生日的时候,lqp18_31给她看了一个神奇的序列 A1, A2, -, AN. 她被允许选择不超过 M 个连续的部分作为自己的生日礼物. 自然地,ftiasch想要知 ...
 - 【原创】tyvj1038 忠诚   &    计蒜客 管家的忠诚  & 线段树(单点更新,区间查询)
			
最简单的线段树之一,中文题目,不翻译.... 注释讲的比较少,这已经是最简单的线段树,如果看不懂真的说明最基础的理论没明白 推荐一篇文章http://www.cnblogs.com/liwenchi/ ...
 - HDU-6370 Werewolf(杭电多校6I)
			
一群人在玩狼人杀,村民只会说真话,狼人会说真话和假话,要你求出那些人一定是村民或者那些人一定是狼人.想到了并查集不会用... 1,如果全部人都是狼人,一定可以所以一定是村民的人一定是0. 2, 加入是 ...
 - HDU6333 Harvest of Apples (杭电多校4B)
			
这莫队太强啦 先推公式S(n,m)表示从C(n, 0) 到 C(n, m)的总和 1.S(n, m) = S(n, m-1) + C(n, m) 这个直接可以转移得到 2.S(n, m) = ...
 - 【mysql】mysql  null值
			
在数据表我们有时候有些表字段会为null,表示空.其实在mysql中null值是占用空间的. mysql手册如下解释 NULL columns require additional space in ...
 - Lambda 表达式有何用处?如何使用?
			
强烈推荐!!! 作者:Sevenvidia链接:https://www.zhihu.com/question/20125256/answer/324121308来源:知乎著作权归作者所有.商业转载 ...
 - 将pandas的Dataframe对象读写Excel文件
			
Dataframe对象生成Excel文件 需要xlrd库 命令 pip install xlrd #导入pandas import pandas as pd import numpy as np ...