ArcGIS空间连接(二):如何将要素的属性连接给与其相交的要素

实践数据:房屋面状要素、房屋结构注记点点状要素

实践目的:将房屋结构注记点的房屋结构属性连接给与其相交的房屋要素(此案例针对一个要素相交两个或多个要素,一个要素与一个要素相交的情况请关注上一篇)

 

1.打开分析工具——》叠加分析——》空间连接工具。

 

2.目标要素选房屋,连接要素选房屋结构注记点,连接操作选择JOIN_ONE_TO_ONE(一对一),其他默认设置,输出房屋1,完成第一次连接。

3.再次打开空间连接工具,对已经进行一对一空间连接的结果数据房屋1再次连接。目标要素选房屋1,连接要素选房屋结构注记点,连接操作选择JOIN_ONE_TO_MANY(一对多),其他默认设置,输出房屋2,完成第二次连接。

4.打开房屋2属性表,其中有两个字段为房屋结构和房屋结构_1,分别是两次空间连接产生的。并且房屋数量在第二次一对多空间连接后从5个变成了9个,是因为存在一个房屋相交多个房屋结构注记点的情况。Join_Count字段为第一次空间连接产生的,其中数值代表该要素连接房屋结构注记点的数量。在房屋2属性表中添加字段命名为备注,用于存放房屋真实结构。

5.使用字段计算器计算备注,解析程序选择Python,勾选显示代码块,编写逻辑代码:

def getValue(a,b,c):
    if(c==1):
        return a
    elif(c==0):
        return "空"
    elif(a==b):
        return "删除重复"
    else:
        return a+b

如下图所示:

最终获得以下效果:

 

 6.双击备注字段排序,选中备注字段值为删除重复的要素并将其删除,剩余的5个要素则为完成一对多属性连接的房屋。

 

注:以上内容如若有误欢迎评论指正,谢谢!

  • 15
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
以下是一个简单的ArcGIS工具箱脚本,可以根据用户输入的参数值来连接要素与目标要素,导出连接后的成果。 ```python import arcpy # 定义输入参数 source_features = arcpy.GetParameterAsText(0) # 要素连接源图层 target_features = arcpy.GetParameterAsText(1) # 目标图层 output_features = arcpy.GetParameterAsText(2) # 输出图层 overlap_area = arcpy.GetParameterAsText(3) # 重叠面积阈值参数 # 创建空间查询对象 source_query = arcpy.SelectLayerByLocation_management(target_features, "INTERSECT", source_features, overlap_area) # 连接要素与目标要素 arcpy.SpatialJoin_analysis(target_features, source_features, output_features, "JOIN_ONE_TO_ONE", "KEEP_ALL", "", "INTERSECT") # 导出连接后的结果 arcpy.CopyFeatures_management(output_features, output_features) # 完成工具箱的执行 arcpy.SetParameterAsText(4, output_features) ``` 在此脚本中,我们使用了 `SelectLayerByLocation` 函数来创建一个空间查询对象,该对象可以选择与要素连接源图层重叠面积大于指定阈值的目标要素。然后,我们使用 `SpatialJoin_analysis` 函数将要素连接源图层与目标要素进行连接,并在连接后的图层上进行空间查询。最后,我们使用 `CopyFeatures_management` 函数将连接后的结果导出到输出图层中。 在 ArcGIS 工具箱中,我们可以将该脚本作为工具箱脚本添加到工具箱中,然后在工具箱界面中设置输入参数和输出参数。用户可以根据需要修改代码,并添加更多的输入参数和输出参数。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PpjBiubiubiu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值