解析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

对于点:

还有必要赘述吗?

转载于:https://www.cnblogs.com/yzhyingcool/p/10075906.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值