Python ArcGIS 10.1 中的标注表达式

Python label expression in ArcGIS 10.1

A​​rcMap 10.1,Windows7 64 位专业版。

我无法正确标注氯化物值。问题出在 "if [Chloride] > 0:" 表达式上。标签呈现 "Chloride" 中的所有值。当 Chloride 字段的值为 -99 时,标签表达式应呈现 'Cl_txt' 字段而不是 'Chloride' 字段。

"Chloride" 具有 Long 数据类型。 "Cl_text" 是文本。我试过了"if long([Chloride]) > 0:"。使用 long,整个标签不会呈现氯化物值 > 0,但 -99 值呈现 Cl_txt 值 "NR"。我还尝试使用 float([Chloride]) 进行转换并获得与使用 float 相同的结果。

奇怪的是 DTW 渲染得很好。 DTW_ft 是 float 数据类型。

def FindLabel( [gisID], [DTW_ft], [dtw_txt], [feat_date], [aka_name], [Chloride], [Cl_txt]):
    L = "MISC-" + str( [gisID] ) + '\n'
    L += "DTW: "
    if  float([DTW_ft])  >  0:
        L += [DTW_ft]  + " ft"
    else:
        L += [dtw_txt]
    L += '\n'
    L += "Cl: "
    if [Chloride] > 0:
        L += [Chloride]
    else:
        L += [Cl_txt]
    L += '\n'
    L += [feat_date] 
    return L

简单地说,不要用 [Chloride] 标记所有 -99 值,而是用 [Cl_txt] 尝试下面- 我假设 [Chloride]long 并且 [Cl_txt]string 数据类型。

def FindLabel([Chloride], [Cl_txt]):
    if long([Chloride])==-99:
        L= [Cl_txt]
    else:
        L = str([Chloride])
    return L

见图-