重分类字段 (数据管理)

摘要

根据手动定义的边界或使用重分类方法将数值字段或文本字段中的值重分类为多个类。

插图

重分类字段工具图示
连续变量重分类为具有相等间隔的离散类。

使用情况

  • 该工具接受要素类或表视图作为输入并修改输入数据。

  • 该工具支持以下八种重分类方法:

    • 定义间隔 - 每个类的跨度范围为间隔大小参数值,从字段中的最小值开始。 例如,如果间隔大小为 10,并且最小值为 244,则第一个类将包含介于 244 和 254 之间的值。 如果需要特定的间隔大小,建议使用此方法,例如使用 10 度范围重分类温度值。
    • 相等间隔 - 每个类具有相同的范围,范围大小由分类数量参数值定义。 例如,如果分类数量为 5,并且范围介于 0 到 100 之间,则第一个类将包含介于 0 到 20 之间的值。 与定义间隔相似,如果间隔有意义且需要特定数量的分类,则建议使用此方法。 例如,要将温度重分类为 5 个范围相等的类。
    • 几何间隔 - 每个类的范围根据定义的分类数量参数在几何上增加或减小(允许更改一次方向)。 此方法会尝试在数据中查找自然分组,同时保持类范围大致相等。
    • 手动间隔 - 每个类的上限和重分类值在重分类表参数中进行指定。 重分类值可以是数字或文本,并将创建相同类型的输出字段。 如果同时为重分类值提供了文本和数字,则输出字段将为文本。 如果其他方法中的分类间隔均不适用,或者要使用文本而非整数来标注类,此方法非常有用。
    • 自然间断点分级法 (Jenks) - 将使用由分类数量参数定义的 Jenks 自然间断点分级法算法根据数据中的自然分组创建分类间隔。 此方法将相似的值分为一组并尽可能差异化各个类。 如果数据中没有有意义的间隔并且要查找最佳分组,此方法非常有用。 例如,按城市的人口计数可能具有自然分组。
    • 分位数 - 类包含每个指定的分类数量参数值中相等数量的值。 例如,如果有 50 个值且分类数量为 5,则每个类将包含 10 条记录。 要了解每个值在等级值中的位置时,此方法非常有用。 例如,您想要了解平均年收入在前 10 个和后 10 个分位数中的位置。
    • 标准差 - 将使用高于和低于平均值几个标准差(在标准差数参数中指定)创建分类范围。 这对于了解值在分布中的位置非常有用。 例如,可以按一个标准差对降雨量进行重分类,以识别降雨量大于相对于平均值两个标准差的区域。
    • 唯一值 - 文本字段中的每个唯一值将变为一个类。 如果需要在需要数值字段的工具中使用文本字段中的类别,此项可能非常有用。 例如,您想要将字母数字县代码转换为整数。

  • 选择分类方法时,考虑数据类型以及如何使用重分类值。 并非所有方法都适用于所有应用程序。 例如,要对多个字段进行重分类并在分析工作流中一起使用它们,使用可保持数据之间一致的方法(例如分位数),而不是无法保持一致的方法(例如自然间断点分级法 (Jenks))。

  • 选中对值取反(降序)参数(在 Python 中为 reverse_values = "DESC")时,将反转整数类,以使具有最低值的类重分类为最高类。

  • 在分位数重分类方法创建的类中,所有类都包含相同数量的记录。 但是,如果分类数量参数值无法整除记录数,则余数将按升序划分到每个类中。

  • 对于手动间隔方法,指定的上限值中至少有一个必须大于要重分类的字段中的最小值。 字段中大于指定的最大上限的所有值将重分类为 -9999。

  • 对于定义间隔方法,间隔大小参数值必须足够小,至少可以创建三个类。

  • 所有重分类方法均不使用采样方案。 可以从使用采样的其他分类方法中获得每个类的范围,例如分级符号系统

  • 该工具会创建表示每个记录的类和范围的字段,并以输出字段名称参数值为前缀。 类字段是一个递增或递减的整数字段,范围字段用于显示每个字段的值范围。 如果要重分类的字段是文本字段,则将仅创建类字段。 如果重分类方法是手动的且未指定重分类值,仅会创建范围字段。

  • 重分类表将在地理处理消息中显示,其中包含每个类的上限和重分类值。

参数

标注说明数据类型
输入表

包含将重分类的字段的输入表或要素类。

Table View; Raster Layer; Mosaic Layer
要重分类的字段

将重分类的字段。 字段必须为数值或文本字段。

Field
重分类方法
(可选)

指定将用于要重分类的字段参数值中的字段值的重分类方法。

  • 定义的间隔将创建基于要重分类的字段值的跨度分类范围相同的类。
  • 相等间隔将创建类范围整除指定分类数量的类。 这是默认设置。
  • 几何间隔将创建在几何上将分类范围增加或减小为指定数量的分类的类。
  • 手动间隔将手动指定分类间隔和重分类值。
  • 自然间断点分级法 (Jenks)将创建使用 Jenks 自然间断点分级法算法在数据中自然分组的类。
  • 分位数将创建每个类包含相等数量的值的类。
  • 标准差将通过加减高于和低于平均值一定比例的标准差创建类。
  • 唯一值将创建字段的每个唯一值变为一个类的类。
String
类数目
(可选)

重分类字段中的目标分类数量。 类的最大数量为 256。

Long
间隔大小
(可选)

重分类字段的类间隔大小。 提供的值必须生成至少 3 个类,并且不超过 1000 个类。

Double
标准差数
(可选)

指定将用于重分类字段的标准差数。 将以相等间隔范围创建分类间隔和类别,这些间隔范围与相对于平均值的标准差成比例。

  • 一个标准差将使用一个标准差创建间隔。 这是默认设置。
  • 二分之一标准差将使用二分之一标准差创建间隔。
  • 三分之一标准差将使用三分之一标准差创建间隔。
  • 四分之一标准差将使用四分之一标准差创建间隔。
String
重分类表
(可选)

手动重分类方法的上限和重分类值。

Value Table
对值取反(降序)
(可选)

指定将对重分类值进行排序的方式。

  • 选中 - 将按降序向类分配值;值最高的类将分配 1,下一个最高类将分配 2,依此类推。
  • 未选中 - 将按升序向类分配值;值最低的类将分配 1,下一个最低类将分配 2,依此类推。 这是默认设置。

Boolean
输出字段名称
(可选)

输出字段的名称或前缀。 如果要重分类的字段是数值字段,则将创建两个字段,并且将以该名称作为字段名称的前缀。 如果要重分类的字段是文本字段,则将使用此名称创建一个新字段。

String

派生输出

标注说明数据类型
更新的输入表

包含重分类字段的更新表。

Table View

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
(可选)

指定将用于 field 参数值中的字段值的重分类方法。

  • DEFINED_INTERVAL将创建基于要重分类的字段值的跨度分类范围相同的类。
  • EQUAL_INTERVAL将创建类范围整除指定分类数量的类。 这是默认设置。
  • GEOMETRIC_INTERVAL将创建在几何上将分类范围增加或减小为指定数量的分类的类。
  • MANUAL将手动指定分类间隔和重分类值。
  • NATURAL_BREAKS将创建使用 Jenks 自然间断点分级法算法在数据中自然分组的类。
  • QUANTILE将创建每个类包含相等数量的值的类。
  • STANDARD_DEVIATION将通过加减高于和低于平均值一定比例的标准差创建类。
  • UNIQUE_VALUES将创建字段的每个唯一值变为一个类的类。
String
classes
(可选)

重分类字段中的目标分类数量。 类的最大数量为 256。

Long
interval
(可选)

重分类字段的类间隔大小。 提供的值必须生成至少 3 个类,并且不超过 1000 个类。

Double
standard_deviations
(可选)

指定将用于重分类字段的标准差数。 将以相等间隔范围创建分类间隔和类别,这些间隔范围与相对于平均值的标准差成比例。

  • ONE将使用一个标准差创建间隔。 这是默认设置。
  • HALF将使用二分之一标准差创建间隔。
  • THIRD将使用三分之一标准差创建间隔。
  • QUARTER将使用四分之一标准差创建间隔。
String
reclass_table
[reclass_table,...]
(可选)

手动重分类方法的上限和重分类值。

Value Table
reverse_values
(可选)

指定重分类值的顺序。

  • DESC将按降序向类分配值;值最高的类将分配 1,下一个最高类将分配 2,依此类推。
  • ASC将按升序向类分配值;值最低的类将分配 1,下一个最低类将分配 2,依此类推。 这是默认设置。
Boolean
output_field_name
(可选)

输出字段的名称或前缀。 如果要重分类的字段是数值字段,则将创建两个字段,并且将以该名称作为字段名称的前缀。 如果要重分类的字段是文本字段,则将使用此名称创建一个新字段。

String

派生输出

名称说明数据类型
updated_table

包含重分类字段的更新表。

Table View

代码示例

ReclassifyField 示例 1(Python 窗口)

以下 Python 窗口脚本演示了如何使用 ReclassifyField 函数。


arcpy.management.ReclassifyField("Demographics", "Population", 
      "EQUAL_INTERVAL", 10, None, "", None, None, "Population_EQUAL_INTERVAL")
ReclassifyField 示例 2(独立脚本)

以下独立 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())

环境