基于属性值的字段计算器

field calculator based on attribute values

我正在使用 ArcGIS 10.2.2 基本许可,尝试根据以下参数在属性 table 中填充一列:

'If field1 is equal to field2, return field3, if not, return 'null'' 

字段 1 和 2 是文本,字段 3 是数字。

我在现场计算器中试过这段代码:

前置逻辑脚本代码块...

def calc(Score):
  if ( !Field1! == !Field2!):
    return !Field3!
  else:
    return 'null'

Score = calc(!Score!)

我真的是编码新手,所以我真的不确定这是否有意义(抱歉),但我们将不胜感激。另外,有人知道专门针对 ArcGIS 学习 python 是否是一个好的起点吗?

似乎有数百个教程,但我找不到任何专门用于编辑 tables 等的内容。

似乎对于Python代码块,你必须使用字段作为函数参数,例如:

def score(f1, f2, f3):
  if ( f1 == f2):
    return f3
  else:
    return None

表达式:score(!Field1!, !Field2!, !Field3!)

而对于 VB 脚本代码块,您可以这样做:

Dim score
  if ( [Field1]== [Field2]) then
    score = [Field3]
  else
    score = vbnull
  end if

表达式:得分

请注意,如果字段可为空,则该字段值只能设置为空。