distinct去重多个字段_ArcGIS笔记(1):空间连接、字段去重

ba29876bf0cc87bb0eaed7dcb0976683.png

目的:

规划项目中,需获取目标地块的用地类型属性

详细需求:

一个目标地块可能跨不同类型地块,将所有类型都写入目标图层的“用地属性”字段,多个类型之间用逗号隔开。如有重复,需去重。

fb4f92bcd7d86f9e759705051e7d81d7.png

数据:

目标地块面图层,用地属性面图层(底图)

具体步骤:

1、spatial join(空间关联)

3ae3cecbed081a7c10f00d0ac7f2bef7.png

toolbox - analyst tools - spatial join

官方帮助:http://resources.arcgis.com/zh-cn/help/main/10.2/#/na/00080000000q000000/

94003f752d4b0564bb64971a531cf3ad.png

target feature:目标图层

join feature:本身具有用地类型的图层

field map:默认会把两个图层所有字段都带到新图层,此处可以删掉不需要的图层

注意:选择一对一关联时,此处默认只保留join feature中第一个匹配上的属性,而此处需要保留所有匹配的属性

de3b14ac7f31c180c9eaeadf0714d956.png

在field map中,选中目的字段“用地属性”,右键,在菜单中选择properties

97ba708d4b664538b2618636640a5b70.png

merge rule:选择如何保留匹配上的属性,此处都保留,选择join

delimiter:分隔符,自己设置空格或逗号等,否则多个属性都连在一起了

5e6d6b5c4c7abae30982d54ad8a8b6e0.png

match options:匹配规则,此处根据实际需求选择,目标地块和用地属性地块只要有相交,就算匹配,所以选择intersect。

search radius:如果连接要素与目标要素的距离在此范围内,则有可能进行空间连接。空间关系为 INTERSECT 时使用 100 米作为搜索半径表示:如果连接要素位于目标要素周围 100 米范围内,则认为该连接要素匹配。

默认search option为0。结果发现会把相邻共边的地块属性也匹配进来,就设置为-1m,可以解决这个问题。如果地块和地图有少许偏移的时候应该也可以用这个方法避免多余匹配。但是这数值设置不应太大,当我设置为-5m时,有些本身细小的目标地块就无法正确匹配了。

920cc46fa83c88c5bc549da4330c5ff3.png

其他match options意义,把比较常用的用红框圈起来了(来自官网):

214e38176dd3a3f67271ef967b811554.png

90d45bd42c34c3129478a26a8a1d240a.png

运行工具,得到用地类型属性。

发现有些会有重复,可能叠加了多个地块,其中有些地块的用地类型是一样的。spatial join工具只会能把所有匹配的保留,没有去重功能,用字段计算功能解决。

ec9b8dd99bddc485fce971c4e9fd063d.png

2、去重

在属性表中选择该字段,右键,选择字段计算器。

b6680ff31e3b39b13c948ef44c767cd8.png

去重需要写个小Python函数,进行以下红框设置。

代码如下:

def delRepeate(string1):

lst1 = string1.split(',')

set1 = set(lst1)

s = ','.join(set1)

return s

9b88ee6e52c581ba78fc220d2541f755.png

运行,得到所需结果,bingo~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值