本节将介绍在ArcGIS中如何根据矢量的某个字段进行重分类
问题
问题
:现有多个区域的人口数据(矢量面数据),如何统计各个区域不同年龄阶段的人口分布情况?
细路
:实现某个字段的值(如下图中的value字段)大小的重分类:
解决步骤
法1_直接用字段计算器
- 新建class字段,然后在字段计算器中运行以下代码,具体如下
def Reclass(XH):
if XH <= 2:
return "1"
elif XH > 2 and XH <= 8:
return "2"
elif XH > 8:
return "3"
else:
return "NA"
- 通过输入
Reclass(!value!)
即可,结果如下图:
法2_调用ArcPy
此外,还能直接调用ArcPy直接生成新字段,并进行重分类运算,代码如下
#encoding: utf-8
import arcpy
mydata = r"E:\DATA_pro\公众号\GIS_01_字段重分类\test_01.shp"
arcpy.AddField_management(mydata, 'class_1', "TEXT")
fields = ["value", "class_1"]
with arcpy.da.UpdateCursor(mydata,fields) as cursor:
for row in cursor:
if row[0] <= 5:
row[1] = "A"
elif row[0] > 5 and row[0] <= 10:
row[1] = "B"
elif row[0] > 10:
row[1] = "C"
else:
row[1] = "NA"
cursor.updateRow(row)
print "完成"
下一节预告
本节通过实现矢量数据按字段的重分类。下一节,将在此基础上,介绍通过ArcGIS实现三调土地利用分类向土地管理中的三大类转换的方法。