前面文章提出关于字段计算的相关问题,经过这几天摸索,发现并没有困难到非写vba的程度。只要建立好相关表格及其之间连接关系,就可以轻松完成字段计算的目的。
大概过程如下:
1、在arcCatalog下建立数据表
建立原始数据表:data
data
OBJECTID f1 f2 f1_score f2_score total_score
1 r1 r1
2 r1 r2
3 r2 r1
4 r2 r2
5 r3 r1
6 r3 r2
建立打分规则表:f1_rule、f2_rule
f1_rule
OBJECTID factor_name rule_name rule_score factor_weight
1 f1 r1 100 .25
2 f1 r2 80 .25
3 f1 r3 60 .25
f2_rule
OBJECTID factor_name rule_name rule_score factor_weight
1 f2 r1 100 .75
2 f2 r2 50 .75
2、在arcMap下建立表关联(join)
1)用data表f1字段与f1_rule表rule_name字段建立关联
2)用data表f2字段与f2_rule表rule_name字段建立关联
3、用arcToolbox的calculate value工具计算字段
1)单个因素计算:f1_score = rule_score x factor_weight;f2_score = rule_score x factor_weight
2)因素总分计算:total_score = f1_score + f2_score
整个过程很简单,如果再把第2步和第3步用model封装一下,基本上就完成“办公自动化”啦!
大概过程如下:
1、在arcCatalog下建立数据表
建立原始数据表:data
data
OBJECTID f1 f2 f1_score f2_score total_score
1 r1 r1
2 r1 r2
3 r2 r1
4 r2 r2
5 r3 r1
6 r3 r2
建立打分规则表:f1_rule、f2_rule
f1_rule
OBJECTID factor_name rule_name rule_score factor_weight
1 f1 r1 100 .25
2 f1 r2 80 .25
3 f1 r3 60 .25
f2_rule
OBJECTID factor_name rule_name rule_score factor_weight
1 f2 r1 100 .75
2 f2 r2 50 .75
2、在arcMap下建立表关联(join)
1)用data表f1字段与f1_rule表rule_name字段建立关联
2)用data表f2字段与f2_rule表rule_name字段建立关联
3、用arcToolbox的calculate value工具计算字段
1)单个因素计算:f1_score = rule_score x factor_weight;f2_score = rule_score x factor_weight
2)因素总分计算:total_score = f1_score + f2_score
整个过程很简单,如果再把第2步和第3步用model封装一下,基本上就完成“办公自动化”啦!