当前位置:网站首页>Arcgis小工具_实现重叠分析
Arcgis小工具_实现重叠分析
2022-08-11 05:33:00 【我是无名的我】
需求:两个矢量文件,当A与B有重叠(包括相交和包含)面积时,赋予B某些A的字段。
要点:用到了arcpy的几何模块。
坑点:
- 写arcgis脚本的编码方式最好为ASCII(因为编码问题,在代码中有中文时必须转换为ASCII,可使用notepad++转换)。
- 中文使用
XX.decode('utf-8')
转换。 - 使用
arcpy.da.UpdateCursor
、arcpy.da.InsertCursor
、arcpy.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, ['[email protected]', fields0]) as cursor0:
for row0 in cursor0:
temp = ''
with arcpy.da.SearchCursor(ds1, ['[email protected]', 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、2设定一致,字段1、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)
边栏推荐
猜你喜欢
SECURITY DAY04 (Prometheus server, Prometheus monitored terminal, Grafana, monitoring database)
Slurm基本使用
消息中间件
buildroot嵌入式文件系统中vi显示行号
slurm集群搭建
(1) Software testing theory (0 basic understanding of basic knowledge)
IP证书申请
vi display line number in buildroot embedded file system
MoreFileRename batch file renaming tool
web网络安全笔记
随机推荐
Threatless Technology-TVD Daily Vulnerability Intelligence-2022-8-6
vulnhub靶机--6Day_Lab-v1.0.1
CLUSTER DAY03( Ceph概述 、 部署Ceph集群 、 Ceph块存储)
ETCD集群故障应急恢复-本地数据可用
逐步揭示makop.mkp勒索病毒中毒防范恢复解密
Es common operations and classical case
无胁科技-TVD每日漏洞情报-2022-7-31
无胁科技-TVD每日漏洞情报-2022-8-4
CLUSTER DAY04 (Block Storage Use Cases, Distributed File Systems, Object Storage)
无胁科技-TVD每日漏洞情报-2022-8-8
解决8080端口被占用问题
ansible batch install zabbix-agent
中小微企业需要使用SSL证书吗?
AUTOMATION DAY06 (Ansible Advanced, Ansible Role)
ETCD容器化搭建集群
Threatless Technology-TVD Daily Vulnerability Intelligence-2022-8-1
SECURITY DAY03 (one-click deployment of zabbix)
Slurm基本使用
项目笔记——随记
Jmeter RMI 反序列化命令执行漏洞复现