【问题标题】:Defining field values using an other fields values Esri Arcmap使用其他字段值定义字段值 Esri Arcmap
【发布时间】:2020-06-18 06:13:45
【问题描述】:
我正在使用 arcMap,Esri。我有一个折线层,其中包含需要将其转换为数值的文本信息。我想在字段计算器中使用 Python 编写脚本来完成此操作。
我的挑战:
在一个字段中使用字段值我想在另一个字段中定义值。
在我的情况下,我需要以数字定义道路的宽度,具体取决于另一个字段中文本中的字段值。
道路“widthNumber”将取决于另一个字段值“widthText”的值。
【问题讨论】:
标签:
python
polygon
esri
arcmap
data-management
【解决方案1】:
有很多方法可以做到这一点。我假设这两个字段都在同一个要素类/shapefile 中,而 widthNumber 字段是某种类型的 int。
理想的情况是使用 switch case (Java/C#),但这些在 python 中不存在。所以我们可以使用字典来重新创建开关,或者简单地加载 ifs'。我喜欢更简洁的代码,所以我已经包含了字典的逻辑。但是你总是可以在你认为有必要的时候把它变成一堆 ifs'。
您所要做的就是使用预逻辑脚本代码区域编写一个接受widthText并返回widthNumber的函数。
def calculateValue(text):
switcher ={
"Ones":1,
"Fivers":5,
"Threebs":3,
"Twotow":2,
"Four":4,
"Fivers":5
}
return switcher.get(text,"Invalid")`
然后在底部您只需调用该函数并传入属性..
计算值(!widthText!)
在此示例中,我没有编写任何错误处理来处理无效值,这取决于您的值的存储方式,确保所有内容都处于相同大小写(大写/小写)以确保一致性可能是明智的。