Arcgis小工具_实现重叠分析

需求:两个矢量文件,当A与B有重叠(包括相交和包含)面积时,赋予B某些A的字段。
示例图

要点:用到了arcpy的几何模块。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

坑点:

  1. 写arcgis脚本的编码方式最好为ASCII(因为编码问题,在代码中有中文时必须转换为ASCII,可使用notepad++转换)。
  2. 中文使用XX.decode('utf-8')转换。
  3. 使用arcpy.da.UpdateCursorarcpy.da.InsertCursorarcpy.da.SearchCursor三个函数时,注意:许多次遍历时,注意重新使用arcpy.da.XXXXXCursor再次打开数据。
"""
Created on Fri Aug 14 17:34:37 2020

@author: zonggongban HGH
"""
import arcpy
"""
接收脚本输入
"""
ds0 = arcpy.GetParameterAsText(0)
ds0 = u'{}'.format(ds0)
fields0 = arcpy.GetParameterAsText(1)

ds1 = arcpy.GetParameterAsText(2)
ds1 = u'{}'.format(ds1)
fields1 = arcpy.GetParameterAsText(3)

with arcpy.da.UpdateCursor(ds0, ['SHAPE@', fields0]) as cursor0:
    for row0 in cursor0:
        temp = ''
        with arcpy.da.SearchCursor(ds1, ['SHAPE@', fields1]) as cursor1:
            for row1 in cursor1:
                if row0[0].contains(row1[0]):
                    temp += row1[1] + '、'.decode('utf-8')
                elif row0[0].overlaps(row1[0]):
                    temp += row1[1] + '、'.decode('utf-8')
                else:
                    pass
        row0[1] = temp[0:len(temp)-1]
        cursor0.updateRow(row0)
       

脚本设定:
在这里插入图片描述
在这里插入图片描述
备注:

  1. 要素类1、2设定一致,字段1、2设定一致。
  2. 在spyder里面使用arcpy
    import sys
    arcpy_path = [r'C:\Python27\ArcGIS10.6\Lib\site-packages',
                  r'C:\Program Files (x86)\ArcGIS\Desktop10.6\arcpy',
                  r'C:\Program Files (x86)\ArcGIS\Desktop10.6\bin',
                  r'C:\Program Files (x86)\ArcGIS\Desktop10.6\ArcToolbox\Scripts']
    sys.path.extend(arcpy_path)
    
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值