我在用arcMap,Esri。我有一个包含文本信息的polyline图层,我需要将其转换为数字值。我希望在字段计算器中使用Python脚本来完成此任务。
我的挑战:在一个字段中使用字段值,我想在另一个字段中定义值。在我的例子中,我需要用数字来定义道路的宽度,这取决于来自另一个字段的文本中的字段值。道路"widthNumber“将取决于另一个字段值"widthText”的值。
发布于 2020-03-09 16:34:32
有许多方法可以做到这一点。我假设这两个字段位于相同的要素类/shapefile中,并且widthNumber字段是某种类型的整型。
理想的情况是使用切换用例(Java/C#),但是python中不存在这种情况。因此,我们可以使用字典来重新创建开关,也可以简单地加载ifs。我喜欢更干净的代码,所以我把字典的逻辑也包括进来了。但是如果你认为有必要的话,你可以随时把它放到一堆if中。
您所要做的就是使用逻辑前脚本代码区编写一个函数,该函数接受widthText并返回widthNumber。
def calculateValue(text):
switcher ={
"Ones":1,
"Fivers":5,
"Threebs":3,
"Twotow":2,
"Four":4,
"Fivers":5
}
return switcher.get(text,"Invalid")`
然后在底部,您只需调用该函数并传入属性..calculateValue(!widthText!)
在本例中,我没有编写任何错误处理来处理无效值,这取决于您的值是如何存储的。确保所有内容都使用相同的大小写(上/下)以确保一致性可能是明智之举。
https://stackoverflow.com/questions/60548317
复制相似问题