填充缺失值 (时空模式挖掘)

摘要

用于将缺失值(空值)替换为基于空间邻域、时空邻域或时间序列值的估算值。

了解有关填充缺失值工作原理的详细信息

插图

填充缺失值工具示例

使用情况

  • 输入要素值可以是点或面。

  • 对于每个待填充字段参数,生成的输出中每个字段将包含三个字段。 第一个字段将包含原始值和填充值,第二个字段将包含指示已对值进行估算的指示符。 估算字段将保留其原始字段名称,但系统将使用以下命名约定创建字段别名:<field>_FILLED<field>_ESTIMATED。 第三个字段是用于计算每个估算值的邻域数量字段 <field>_ N_NEIGHBORS

  • 输出还将包含含有值的字段,这些值有助于理解用于目标缺失值计算的邻域数和邻域值范围。 如果填充方法参数设置为平均值选项,则报告在计算中使用的邻域标准差 (<field>_STD)。 针对最小值选项报告最大邻域值,而针对最大值选项报告最小邻域值。 如果填充方法参数设置为中位数选项,则会报告邻域的平均绝对差。 如果使用时间趋势选项填充缺失值,则字段将包含样条的残差平方和。 NNBRS 字段包含用于计算估算值的邻域计数。

  • 可以包含不含空值的字段。 系统会将这些字段复制到输出中,但输出中不包含与这些字段关联的附加字段(例如 <field>_FILLED<field>_ESTIMATED)。 或者,也可以为唯一 ID 参数提供值,该参数将添加到输出中,可用于将结果连接回输入要素类的值。

  • 字段 NUM_EST(如果使用相关表,则字段为 TOT_EST)为关联记录的估算变量的总数。 此字段可用于渲染输出地图。

  • 您可以使用将字段追加到输入要素参数将附加字段追加到输入要素类。 如果您追加这些字段,则不能提供相关表。

  • 此工具可用于处理存储为重复形状或随相关表存储的面板数据。 如果您指定了位置 ID 的值,此工具将识别到输入为面板数据,那么时间字段参数为必填字段。

  • 位置 ID 的值是一个整型字段,应表示唯一的静态位置。 位置 ID 的 X,Y 坐标不应随时间变化。

  • 如果选择固定距离仅邻接边邻接边拐角选项来设置空间关系的概念化参数,则可以通过选择距离范围时间邻域参数的值模拟空间时间窗。

  • 如果选择固定距离仅邻接边邻接边拐角选项来设置空间关系的概念化参数,则可以设置空间邻域数参数值以指定邻域的最小数量。

  • 仅当设置了位置 ID时间字段参数的值时,填充方法参数的时间趋势选项才可用。

  • 使用时间趋势选项填充值时,待填充空值的位置在时间序列开始处必须至少具有两个包含值的时间段,且在结束处必须至少具有两个包含值的时间段,才能进行填充。 由于这项要求,前两个或最后两个时间步长中存在的空值将始终无法使用时间趋势选项填充。

  • 时间趋势选项使用 SciPy 插值包中的一元样条插值方法。

  • 无法估算和填充的缺失值将会在输出中以空值的原始存在格式进行报告。

  • 当仅用空间邻域填充面板数据的缺失值时,将时间邻域参数设置为 0。

  • 如果数据为面板数据,则时间邻域参数可用于按时间过滤。 或者,时间邻域值 0 仅供您查看空间邻域。

  • 检查生成的填充值至关重要,这样可以确保这些值对于分析有意义。 例如,如果原始字段为整型,并且已将工具设置为用空间邻域的平均值进行填充,则结果将为小数,如果输入字段为计数,则结果可能没有意义。 此外,根据时间趋势参数所采用的方法,即使没有一个现有值为负数,也可能会得到负数。 如果填充的字段为人口字段,则结果没有意义。

  • N_NEIGHBORS 字段将报告包含在该要素计算中的邻域数量。 如果填充方法参数设置为时间趋势,则此数量为该位置 ID 值的时间序列中存在值的数量(例如,如果时间序列中仅缺少一个值,则将报告数据集中时间步长的数量为 -1)。 如果使用空间关系的概念化参数值 K 最近邻时间邻域值,则报告的邻域数量将包括落入指定时间窗范围内的要素的 k 个近邻。

  • 在工具执行期间,描述分析详细信息和已填充字段特征的消息会写在地理处理窗格底部。 可通过将鼠标悬停在进度条上、单击弹出按钮 弹出 或展开地理处理窗格中的消息部分来访问消息。 还可通过地理处理历史访问之前运行填充缺失值工具的消息。

参数

标注说明数据类型
输入要素

包含要填充的空值的要素类。

Feature Layer
输出要素
(可选)

将包含已填充(估算)值的输出。

如果已指定相关表参数值,输出要素将包含每个位置的估算值数,而输出表将包含已填充(估算)值。

Feature Class
要填充的字段

包含缺失数据(空值)的数值字段。

Field
填充方法

指定将要应用的计算类型。 仅当位置 ID时间字段参数值已指定时,时间趋势选项才可用。

  • 平均值空值将替换为要素邻域的平均值。
  • 最小值空值将替换为要素邻域的最小值。
  • 最大值空值将替换为要素邻域的最大值。
  • 中值空值将替换为要素邻域的中位数(中值)。
  • 时间趋势空值将基于该唯一位置处的趋势进行替换。
String
空间关系的概念化
(可选)

指定要素空间关系的定义方式。

  • 固定距离每个要素的指定临界距离(距离范围参数值)内的邻域要素都将包含在计算中;临界距离以外的所有要素都将排除在外。
  • K - 最近邻最近的 k 个要素将包含在计算中;k 是指定的数字参数。
  • 仅邻接边只有共享边界或重叠的相邻面要素会影响目标面要素的计算。
  • 邻接边拐角共享边界、节点或重叠的面要素会影响目标面要素的计算。
  • 通过文件获取空间权重将由指定空间权重文件定义空间关系。 指向空间权重文件的路径由权重矩阵文件参数指定。
String
距离范围
(可选)

用于空间关系的概念化参数固定距离选项的中断距离。 将在针对目标要素的计算中忽略为该要素指定的中断之外的要素。 此参数不适用于仅邻接边邻接边拐角选项。

Linear Unit
时间邻域
(可选)

向前和向后的间隔时间,用于确定要在针对目标要素的计算中使用的要素。 不在此目标要素间隔内的要素将在针对该要素的计算中忽略。

Time Unit
时间字段
(可选)

包含数据集中每条记录的时间戳的字段。 此字段的类型必须是日期。

如果已提供位置 ID 参数值,则此参数为必填项。

Field
空间邻域数
(可选)

要包括在计算中的最近领域数。

如果选择空间关系的概念化参数的固定距离仅邻接边邻接边拐角选项,则此数量为要包括在计算中的最小邻域数。

Long
位置 ID
(可选)

包含每个位置的唯一 ID 编号的整型字段。

此参数用于将输入要素参数中的要素与相关表中的行进行匹配,或指定用于确定时间邻域的唯一位置 ID。

Field
相关表
(可选)

包含输入要素参数的每个要素时态数据的表或表视图。

Table View
相关位置 ID
(可选)

相关表参数中包含关联所依据的位置 ID 参数值的整型字段。

Field
空间权重矩阵文件
(可选)

包含权重(定义要素间的空间关系以及可能的时态关系)的文件的路径。

File
唯一 ID
(可选)

包含输入要素参数中每条记录的不同值的整型字段。 此字段可用于将结果连接回原始数据集。

如果没有 Unique ID 字段,则可以创建一个,方法是向输入要素属性表添加一个整型字段,然后将此字段的值计算为与 FIDOBJECTID 字段的值相等。

Field
空值
(可选)

表示空(缺失)值的值。 如果未指定任何值,则将地理数据库要素类假定为 <Null>。 对于 shapefile 输入,空占位符的数值为必填项。

Double
输出表
(可选)

包含已填充(估算)值的输出表。

如果提供了相关表,则输出表为必填项。

Table
将字段追加到输入要素
(可选)

指定是将已填充值的字段追加到输入要素还是使用已填充值的字段创建新的输出要素类。 如果您追加字段,则不能提供相关表,且将忽略输出坐标系环境。

  • 选中 - 包含已填充值的字段将被追加到输入要素。 此选项会修改输入数据。
  • 未选中 - 将创建包含已填充值的字段的输出要素类。 这是默认设置。

Boolean

派生输出

标注说明数据类型
更新后的输入要素

包含已填充值的字段的更新后的输入要素。

Feature Layer

arcpy.stpm.FillMissingValues(in_features, {out_features}, fields_to_fill, fill_method, {conceptualization_of_spatial_relationships}, {distance_band}, {temporal_neighborhood}, {time_field}, {number_of_spatial_neighbors}, {location_id}, {related_table}, {related_location_id}, {weights_matrix_file}, {unique_id}, {null_value}, {out_table}, {append_to_input})
名称说明数据类型
in_features

包含要填充的空值的要素类。

Feature Layer
out_features
(可选)

将包含已填充(估算)值的输出。

如果已指定 related_table 参数值,则 out_features 将包含每个位置的估算值数,而 out_table 将包含已填充(估算)值。

Feature Class
fields_to_fill
[fields_to_fill,...]

包含缺失数据(空值)的数值字段。

Field
fill_method

指定将要应用的计算类型。 仅当 location_idtime_field 参数值已指定时,TEMPORAL_TREND 选项才可用。

  • AVERAGE空值将替换为要素邻域的平均值。
  • MINIMUM空值将替换为要素邻域的最小值。
  • MAXIMUM空值将替换为要素邻域的最大值。
  • MEDIAN空值将替换为要素邻域的中位数(中值)。
  • TEMPORAL_TREND空值将基于该唯一位置处的趋势进行替换。
String
conceptualization_of_spatial_relationships
(可选)

指定要素空间关系的定义方式。

  • FIXED_DISTANCE每个要素的指定临界距离(distance_band 参数值)内的邻域要素都将包含在计算中;临界距离以外的所有要素都将排除在外。
  • K_NEAREST_NEIGHBORS最近的 k 个要素将包含在计算中;k 是指定的数字参数。
  • CONTIGUITY_EDGES_ONLY只有共享边界或重叠的相邻面要素会影响目标面要素的计算。
  • CONTIGUITY_EDGES_CORNERS共享边界、节点或重叠的面要素会影响目标面要素的计算。
  • GET_SPATIAL_WEIGHTS_FROM_FILE将由指定空间权重文件定义空间关系。 指向空间权重文件的路径由 Weights_Matrix_File 参数指定。
String
distance_band
(可选)

用于 conceptualization_of_spatial_relationships 参数 FIXED_DISTANCE 选项的中断距离。 将在针对目标要素的计算中忽略为该要素指定的中断之外的要素。 此参数不适用于 CONTIGUITY_EDGES_ONLYCONTIGUITY_EDGES_CORNERS 选项。

Linear Unit
temporal_neighborhood
(可选)

向前和向后的间隔时间,用于确定要在针对目标要素的计算中使用的要素。 不在此目标要素间隔内的要素将在针对该要素的计算中忽略。

Time Unit
time_field
(可选)

包含数据集中每条记录的时间戳的字段。 此字段的类型必须是日期。

如果已提供 location_id 参数值,则此参数为必填项。

Field
number_of_spatial_neighbors
(可选)

要包括在计算中的最近领域数。

如果选择 conceptualization_of_spatial_relationships 参数的 FIXED_DISTANCECONTIGUITY_EDGES_ONLYCONTIGUITY_EDGES_CORNERS 选项,则此数量为要包括在计算中的最小邻域数。

Long
location_id
(可选)

包含每个位置的唯一 ID 编号的整型字段。

此参数用于将 in_features 参数中的要素与 related_table 中的行进行匹配,或指定用于确定时间邻域的唯一位置 ID。

Field
related_table
(可选)

包含 in_features 参数的每个要素时态数据的表或表视图。

Table View
related_location_id
(可选)

related_table 参数中包含关联所依据的 location_id 参数值的整型字段。

Field
weights_matrix_file
(可选)

包含权重(定义要素间的空间关系以及可能的时态关系)的文件的路径。

File
unique_id
(可选)

包含 in_features 参数中每条记录的不同值的整型字段。 此字段可用于将结果连接回原始数据集。

如果没有 unique_id 字段,则可以创建一个,方法是向要素类表添加一个整型字段,然后将此字段的值计算为与 FIDOBJECTID 字段的值相等。

Field
null_value
(可选)

表示空(缺失)值的值。 如果未指定任何值,则将地理数据库要素类假定为 <Null>。 对于 shapefile 输入,空占位符的数值为必填项。

Double
out_table
(可选)

包含已填充(估算)值的输出表。

如果提供了相关表,则输出表为必填项。

Table
append_to_input
(可选)

指定是将已填充值的字段追加到输入要素还是使用已填充值的字段创建新的输出要素类。 如果您追加字段,则不能提供相关表,且将忽略输出坐标系环境。

  • APPEND_TO_INPUT包含填充值的字段将被追加到输入要素。 此选项会修改输入数据。
  • NEW_FEATURES将创建包含已填充值的字段的输出要素类。 这是默认设置。
Boolean

派生输出

名称说明数据类型
updated_features

包含已填充值的字段的更新后的输入要素。

Feature Layer

代码示例

FillMissingValues 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
arcpy.FillMissingValues_stpm("Chicago_Data", "Chicago_Filled", "COUNT", "AVERAGE",
                             "K_NEAREST_NEIGHBORS", "", "", "", 8)
FillMissingValues 示例 2(独立脚本)

以下独立 Python 脚本演示了如何使用 FillMissingValues 函数。

# Fill missing values using a feature set and related table
# Use the results to create a space-time cube from defined locations
# Run Emerging Hot Spot Analysis on the data
# Visualize the results in 3d

# Import system modules
import arcpy

# Set property to overwrite existing output, by default
arcpy.env.overwriteOutput = True

# Local variables ...
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"

try:
    # Fill missing values in a feature class containing block group polygon shapes and a related table containing the incidents
    # Since some of the values are missing, you will fill them using the temporal trend method.
    arcpy.FillMissingValues_stpm("Chicago_Feature", "Chicago_FilledFeature", "COUNT", "TEMPORAL_TREND", "", "", NoneNone,
                                 "TIME", "", "MYID", "Chicago_Table", "MYID", "", "", "", "Chicago_FilledTable")

    # Create a defined location space-time cube using a related table
    # Using a reference time at the start of the month to force binning fall on month breaks
    # Using temporal aggregation to sum multiple entries into one month
    # Using the method drop location if missing values since you already filled using Fill Missing Values
    arcpy.CreateSpaceTimeCubeDefinedLocations_stpm("Chicago_FilledFeature", r"C:\STPM\Chicago_Cube.nc", "MYID",
                                                   "APPLY_TEMPORAL_AGGREGATION", "TIME", "1 Months", "REFERENCE_TIME",
                                                   "10/1/2015", "", "COUNT SUM DROP_LOCATIONS", "Chicago_FilledTable",
                                                   "MYID")

    # Run an emerging hot spot analysis on the defined locations cube
    # Using contiguity edges so only block groups that bound each other are considered neighbors
    arcpy.EmergingHotSpotAnalysis_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE",
                                       "Chicago_Cube_EmergingHotSpot", "", 1, "",
                                       "CONTIGUITY_EDGES_ONLY")

    # Use Visualize Cube in 3d to see the hot spot results for each time slice
    arcpy.VisualizeSpaceTimeCube3D_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE", "HOT_AND_COLD_SPOT_RESULTS",
                                        "Chicago_Cube_Visualize3d")

except arcpy.ExecuteError:
    # If an error occurred when running the tool, print the messages
    print(arcpy.GetMessages())

环境

特殊情况

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题