在ArcGIS Pro 2.4中,我有一个相当简单的操作失败了,而且我一生也无法弄清原因。
如果字段“ assettype”包含搜索字符串的一部分,则将assettype_groupup的值设置为我返回的值。
例如,如果“ assetttype”包含字符串“ Building | Residential | Large”,并且我测试它是否包含术语“ Residential”,并且其值为true,则返回字符串“ Residential”。
当前代码似乎没有返回任何结果/没有任何效果,并且似乎运行得太快(3,000,000行需要2-3秒)。
如果我尝试三元声明,这意味着一次使用一个术语,这似乎就很好了。我宁愿不采用这种方法,因为if / elif可能性本质上会变得很广泛,并且我只想运行一次例程。
您能否看到下面的设置有任何明显的问题
#Target Field Name
assettype_groupup
#Expression
func(!assettype!)
# Code block
def func(input):
if 'Residential' in input:
return 'Residential'
elif 'Industrial/Utilities' in input:
return 'Industrial/Utilities'
elif 'Transport/Infrastructure' in input:
return 'Transport/Infrastructure'
elif 'Conservation/National Park' in input:
return 'Conservation/National Park'
elif 'Recreational/Open Space' in input:
return 'Recreational/Open Space'
elif 'Mixed Use' in input:
return 'Mixed Use'
elif 'Community Use' in input:
return 'Community Use'
elif 'Rural/Primary Production' in input:
return 'Rural/Primary Production'
elif 'Special Use' in input:
return 'Special Use'
elif 'Unknown' in input:
return 'Unknown'
else:
''