ArcGIS 10.1中的Python标签表达式

时间:2015-11-20 16:52:07

标签: python arcgis arcmap

ArcMap 10.1,Windows 7 64位专业版。

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

“Chloride”具有Long数据类型。 “Cl_text”是文本。我试过“if if long([Chloride])> 0:”。使用long,整个标签不会呈现Chloride值> 0,但-99值表示Cl_txt值为“NR”。我也试过用float([Chloride])转换并获得与使用float相同的结果。

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

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

1 个答案:

答案 0 :(得分:1)

简单地说,不要使用-99标记所有[Chloride]值,而使用[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

见图片 - enter image description here