在过去的3个选举周期中,我在ArcGIS的市长竞赛中建立选举地图,试图看看该镇的某个特定部分是否像镇上其他地方一样投票。
市长有多个候选人,示例表如下:
PRECINCT_NUMBER TOTAL_BALLOTSCAST CANDIDATE1 CANDIDATE2 CANDIDATE3
500 1000 500 300 200
501 2000 800 700 500
502 1000 400 500 100
我可以通过计算candidatex / total_ballotcast
以确定每个区域的百分比来显示特定候选人如何通过区域进行操作,并按候选人的百分比类别显示区域。
但是,我也试图通过百分比显示每个区域中最大的赢家,我不确定如何查询数据以反映这一点。
答案 0 :(得分:1)
要在ArcMap中完成此任务:
创建一个新字段(例如WINNER
)。使用field calculator比较三个字段中的值并输出最大值(最大赢家),如下所示:
选中“显示代码块”以在字段计算器工具中执行高级python表达式。
表达式应为:
find_winner(!CANDIDATE1!, !CANDIDATE2!, !CANDIDATE3!)
预逻辑脚本代码是您定义表达式调用的函数find_winner
的地方:
def find_winner(a, b, c):
if a > b and a > c: # if a got more votes than b and c
return "Candidate 1"
elif b > a and b > c: # if b got more votes than a and c
return "Candidate 2"
elif c > a and c > b: # if c got more votes than a and b
return "Candidate 3"
else:
return "TIE?"
使用值填充WINNER
后,可以直接根据该属性对多边形进行符号化。