0
我想創建和計算稱爲分數在屬性表中的字段。分數取決於其他兩個字段,寬度和類別。寬度包含整數值,類別包含文本。分數字段應根據這兩個字段的值分配多個點。Python的ArcGIS的 - 計算領域與文本字段作爲參數
我可以寫一個Python腳本賦值基於寬度的數值得分。但是,一旦我嘗試添加類別作爲參數,我不斷收到錯誤消息,說參數無效。
下面的代碼工作(寬只):
expression = "getClass(float(!Width!))"
codeblock = """def getClass(wd):
if wd<=450:
return 1
elif wd>450 and wd<900:
return 2
else:
return 3"""
arcpy.AddField_management("featurelayer", "Score", "SHORT")
,此代碼包含類別作爲參數並不起作用:
expression = "getClass(!Width!,!Category!)"
codeblock = """def getClass(wd,cat):
if wd<=35:
return 1
elif wd<90 and cat=='RED':
return 2
else:
return 3"""
arcpy.AddField_management("featurelayer", "Score", "SHORT")
謝謝!
***我曾嘗試在第二代碼轉換的兩個參數 - 我試過類別兩個浮動(),以及STR(),因爲它是一個文本字段。無論是一個工作,錯誤消息不是很具體:「未能執行的getClass()」
***類別字段是完全填充(無論是「紅」或「藍」)
我注意到表達原本轉換爲float()。是否將該功能添加到!寬度!和!類別!在新代碼中有什麼影響? –
是否填寫了所有類別記錄? – Hotpepper
感謝您的建議。所有類別記錄都被填充。我嘗試將float()添加到width和str()到類別(因爲它是文本)。那也沒用。 – Tessa