如何解决arcpy-使用外部表将参数迭代地更改为我的代码
我正在Jupyter笔记本环境下使用python 2.7和arcpy。 我想让我的代码迭代地适应参考表。
这是我的参考表,其中包含我在arpcy中运行的工具所使用的3个变量:
RegY HunCal CRY
1 1718 BL1
1 1112 JU1
1 1112 JU1
1 1213 JU1
这是一个简单的xls表,我将其导入到jupyter笔记本中。当需要在代码中更改这些变量时,我可以以此为参考。
一开始,我是手工完成的,因为它们需要进行一些更改。但是现在有150多种更改要适应,而且这个数量会随着时间而增加。因此,我想以这样的方式修改代码:每次引用表更改时,它都使用引用表来遍历每个功能。
这是我正在使用的代码:
# 2011
# Set geoprocessor object property to overwrite existing output
arcpy.gp.overwriteOutput = True
arcpy.env.workspace = r'C:\Users\GeoData\simsear\SBA_D.gdb'
# Process: Group Similar Features
SS.SimilaritySearch("redD_RegY_1_1112","blackD_CRY_JU1_1112","SS_JU1_1112","NO_COLLAPSE","MOST_SIMILAR","ATTRIBUTE_PROFILES","Temperatur;Precipitat",'DateFin')
- 从参考表中,
RegY
中的值将替换为redD_RegY_**1**_1112
。 -
CRY
中的值将替换为blackD_CRY_**JU1**_1112
和SS_**JU1**_1112
-
HunCal
中的值将替换为redD_RegY_1_**1112**
,blackD_CRY_JU1_**1112**
,SS_JU1_**1112**
任何提示或建议将不胜感激。
解决方法
您应该遍历表的每一行以获取参考表值,然后使用它们为输入,候选项和输出功能构建唯一的字符串。
for row in table:
regY = row[0]
hunCal = row[1]
cry = row[2]
input_features_to_match = 'redD_RegY_{}_{}'.format(regY,hunCal)
candidate_features = 'blackD_CRY_{}_{}'.format(cry,hunCal)
output_features = 'SS_{}_{}'.format(cry,hunCal)
SS.SimilaritySearch(
input_features_to_match,candidate_features,output_features,'NO_COLLAPSE','MOST_SIMILAR','ATTRIBUTE_PROFILES','Temperatur;Precipitat','DateFin')
或更紧凑:
for row in table:
SS.SimilaritySearch(
'redD_RegY_{}_{}'.format(row[0],row[1]),'blackD_CRY_{}_{}'.format(row[2],'SS_{}_{}'.format(row[2],'DateFin')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。