描述
根据手动定义的边界或使用重分类方法将数值字段或文本字段中的值重分类为多个类。
插图
使用方法
该工具接受要素类或表视图作为输入并修改输入数据。
该工具支持以下八种重分类方法:
- 定义间隔 - 每个类的跨度范围为间隔大小参数值,从字段中的最小值开始。例如,如果间隔大小为 10,并且最小值为 244,则第一个类将包含介于 244 和 254 之间的值。如果需要特定的间隔大小,建议使用此方法,例如使用 10 度范围重分类温度值。
- 相等间隔 - 每个类具有相同的范围,范围大小由分类数量参数值定义。例如,如果分类数量为 5,并且范围介于 0 到 100 之间,则第一个类将包含介于 0 到 20 之间的值。与“定义间隔”相似,如果间隔有意义且需要特定数量的分类,则建议使用此方法。例如,要将温度重分类为 5 个范围相等的类。
- 几何间隔 - 每个类的范围根据定义的分类数量参数在几何上增加或减小(允许更改一次方向)。此方法会尝试在数据中查找自然分组,同时保持类范围大致相等。
- 手动间隔 - 每个类的上限和重分类值在重分类表参数中进行指定。重分类值可以是数字或文本,并将创建相同类型的输出字段。如果同时为重分类值提供了文本和数字,则输出字段将为文本。如果其他方法中的分类间隔均不适用,或者要使用文本而非整数来标注类,此方法非常有用。
- 自然间断点分级法 (Jenks) - 将使用由分类数量参数定义的 Jenks 自然间断点分级法算法根据数据中的自然分组创建分类间隔。此方法将相似的值分为一组并尽可能差异化各个类。如果数据中没有有意义的间隔并且要查找最佳分组,此方法非常有用。例如,按城市的人口计数可能具有自然分组。
- Reference: Jenks, G., Caspall, F. C. (1971). “Error on choroplethic maps: Definition, measurement, reduction." Annals of American Geographers, 61, 217-44
- 分位数 - 类包含每个指定的分类数量参数值中 相等数量的值。例如,如果有 50 个值且分类数量为 5,则每个类将包含 10 条记录。要了解每个值在等级值中的位置时,此方法非常有用。例如,您想要了解平均年收入在前 10 个和后 10 个分位数中的位置。
- 标准差 - 将使用高于和低于平均值几个标准差(在标准差数参数中指定)创建分类范围。这对于了解值在分布中的位置非常有用。例如,可以按一个标准差对降雨量进行重分类,以识别降雨量大于相对于平均值两个标准差的区域。
- 唯一值 - 文本字段中的每个唯一值将变为一个类。如果需要在需要数值字段的工具中使用文本字段中的类别,此项可能非常有用。例如,您想要将字母数字县代码转换为整数。
选择分类方法时,考虑数据类型以及如何使用重分类值。并非所有方法都适用于所有应用程序。例如,要对多个字段进行重分类并在分析工作流中一起使用它们,使用可保持数据之间一致的方法(例如分位数),而不是无法保持一致的方法(例如自然间断点分级法 (Jenks))。
选中对值取反(降序)参数(在 Python 中为 reverse_values = "DESC")时,将反转整数类,以使具有最低值的类重分类为最高类。
在分位数重分类方法创建的类中,所有类都包含相同数量的记录。但是,如果分类数量参数值无法整除记录数,则余数将按升序划分到每个类中。
对于手动间隔方法,指定的上限值中至少有一个必须大于要重分类的字段中的最小值。字段中大于指定的最大上限的所有值将重分类为 -9999。
对于定义间隔方法,间隔大小参数值必须足够小,至少可以创建三个类。
所有重分类方法均不使用采样方案。可以从使用采样的其他分类方法中获得每个类的范围,例如分级符号系统。
这些工具会创建表示每个记录的类和范围的字段,并以输出字段名称参数值为前缀。类字段是一个递增或递减的整数字段,范围字段用于显示每个字段的值范围。如果要重分类的字段是文本字段,则将仅创建类字段。如果重分类方法是手动的且未指定重分类值,仅会创建范围字段。
重分类表将在地理处理消息中显示,其中包含每个类的上限和重分类值。
语法
arcpy.management.ReclassifyField(in_table, field, {method}, {classes}, {interval}, {standard_deviations}, {reclass_table}, {reverse_values}, {output_field_name})
参数 | 说明 | 数据类型 |
in_table | 包含要重分类的字段的输入表或要素类。 | Table View; Raster Layer; Mosaic Layer |
field | 要重分类的字段。字段必须为数值或文本字段。 | Field |
method (可选) | 指定在要重分类的字段参数中指定的字段中包含值的方式。
| String |
classes (可选) | 重分类字段中的目标分类数量。类的最大数量为 256。 | Long |
interval (可选) | 重分类字段的类间隔大小。提供的值必须生成至少 3 个类,并且不超过 1000 个类。 | Double |
standard_deviations (可选) | 指定重分类字段的标准差数。分类间隔和类别以相等间隔范围创建,这些间隔范围与相对于平均值的标准差成比例。
| String |
reclass_table [reclass_table,...] (可选) | 手动重分类方法的上限和重分类值。 | Value Table |
reverse_values (可选) | 指定重分类值的顺序。
| Boolean |
output_field_name (可选) | 输出字段的名称或前缀。如果要重分类的字段是数值字段,则将创建两个字段,并且将以该名称作为字段名称的前缀。如果要重分类的字段是文本字段,则将使用此名称创建一个新字段。 | String |
派生输出
名称 | 说明 | 数据类型 |
updated_table | 包含重分类字段的更新表。 | 表视图 |
代码示例
以下 Python 窗口脚本演示了如何使用 ReclassifyField 工具。
arcpy.management.ReclassifyField("Demographics", "Population",
"EQUAL_INTERVAL", 10, None, "", None, None, "Population_EQUAL_INTERVAL")
以下独立 Python 脚本演示了如何使用 ReclassifyField 工具。
# Import system modules.
import arcpy
try:
# Set the workspace and input features.
arcpy.env.workspace = r"C:\\Reclassify\\MyData.gdb"
in_table = "Demographics"
# Set the input field that will be reclassified
field = "Population"
# Set the reclassification method
method = "MANUAL"
# Set the reclassification table
reclass_table = "10000 Village;100000 Town;1000000 City"
# Set the output field name
output_field_name = "SettlementType"
# Run the Reclassify Field tool
arcpy.management.ReclassifyField(in_table, field, method, "",
None, "", reclass_Table, None, output_field_name)
except arcpy.ExecuteError:
# If an error occurred when running the tool, print the error message.
print(arcpy.GetMessages())
许可信息
- Basic: 是
- Standard: 是
- Advanced: 是