子集时空立方体 (时空模式挖掘)

摘要

按空间范围、空间或时间为时空立方体进行子集化。

该工具输出满足所选子集方法标准的输入时空立方体的位置和图格。 该工具可以通过要素、范围或另一个时空立方体的位置对时空立方体进行空间子集化。 该工具还可以按时间跨度、另一个时空立方体的时间范围或从时空立方体的开头或结尾移除时间步长,对时空立方体进行时间子集化。 输出时空立方体将包括由时空立方体创建工具集中的工具创建的所有变量。

插图

子集化时空立方体工具图示

使用情况

  • 此工具接受由时空模式挖掘工具箱中的各种工具创建的 netCDF 文件。

    了解有关创建时空立方体的详细信息

  • 以下是此工具的潜在应用:

    • 使用非洲的要素类对包含全球数据的时空立方体进行空间子集化。
    • 使用包含加利福尼亚数据的时空立方体对包含整个美国数据的时空立方体进行空间子集化。
    • 应用时间子集以从时空立方体的开头或结尾移除任何时间步长,其中许多图格的计数为零。
    • 应用时间子集从时空立方体中移除预测结果。 然后在时空立方体上使用时间序列预测工具集中的工具。

  • 存储在输入时空立方体中的分析变量不会转移到子集输出时空立方体中。 输入时空立方体中的分析结果基于其时空结构。 如果时空立方体是子集,则分析结果可能无效。 要恢复分析变量,请在子集输出时空立方体上重新运行时空模式分析工具集时间序列预测工具集中使用的工具。在子集输出时空立方体上。

  • 该工具创建地理处理消息。 可将鼠标悬停在进度条上、单击弹出按钮或展开地理处理窗格中的消息部分来访问消息。 这些消息包含如下信息:

    • 将输入时空立方体的要素与子集输出时空立方体的要素进行比较的子集摘要部分。
    • 描述时空立方体的空间和时间属性的时空立方体特征部分。 在此部分中,输入要素时间范围值提供了用于创建原始时空立方体的要素的时间范围。 如果您对时空立方体进行子集化,则此值不会更改。 要素有关这些要素的更多信息,请参阅创建时空立方体的工作原理

    • 时空立方体内容部分,其中每一行对应于输入时空立方体中的一个变量。 每行包括变量的汇总统计信息、创建变量的工具(以及聚合和填充类型)以及在 2D 模式下显示时空立方体在 3D 模式下显示时空立方体工具中可用的显示主题选项。
    • 如果时空立方体是使用通过聚合点创建时空立方体工具创建的,则消息将在时空立方体位置和图格部分下包含一个或多个子部分。 计数子部分和每个可选的汇总字段子部分包含至少包含一个点的图格和位置的数量。 稀少(包含零计数的图格的百分比)也将在计数子部分中列出。
    • 如果时空立方体是使用时间序列预测工具集中的工具创建的,则消息将包括一个预测详细信息部分,该部分总结了所应用的预测方法。 在此部分中,在测试中使用的时间范围提供了用于创建原始时空立方体的要素的时间范围。 如果您对时空立方体进行子集化,则此值不会更改。
    • 消息将在时空立方体趋势下包含一个或多个部分。 这些部分包括时空立方体中每个变量的总体 Mann-Kendall 趋势统计数据
  • 如果空间子集方法参数设置为要素,请确保输入子集要素的坐标系与输入时空立方体的坐标系匹配。 使用投影工具修改输入子集要素的坐标系。 如果坐标系不匹配,则子集可能不可用,或者输出时空立方体中的位置可能位于意外位置。

  • 应用空间子集不会修改任何时空立方体位置的几何形状。 根据选择的空间子集标准,每个位置要么包含在输出时空立方体中,要么从输出时空立方体中排除。

  • 应用时间子集不会更改时空立方体中的时间步长间隔或图格的时间范围。 根据选择的时间子集标准,每个图格要么包含在输出时空立方体中,要么从输出时空立方体中排除。 如果时间子集方法参数设置为用户自定义时空立方体,并且指定的开始或结束时间落在一个图格内,则整个图格将包含在输出时空立方体中。 在这种情况下,输出时空立方体的时间范围可能与指定的开始或结束时间或时间子集立方体的时间间隔不匹配。 例如,如果一个时空立方体的时间步长间隔为一个月,并且它是时间间隔从 2020 年 1 月 24 日到 2020 年 12 月 24 日的时空立方体的时间子集,则输出时空立方体的间隔范围为 2020 年 1 月 1 日至 2020 年 12 月 31 日。

  • 时空立方体中的每个时间步长不包括条柱的开始时间,但包括条柱的结束时间。 例如,如果条柱的开始时间是 2020 年 1 月 1 日上午 12:00:00 时,结束时间是 2021 年 1 月 1 日上午 12:00:00 时,则条柱将包含 2020 年 1 月 1 日上午 12:00:00 时之后直至 2021 年 1 月 1 日上午 12:00:00 时当天或之前的数据。如果将子集时间跨度参数的开始时间列指定为 2021 年 1 月 1 日上午 12:00:00 时,则子集输出时空立方体将从 2020 年 1 月 1 日上午 12:00:00 时开始,从而在输出时空立方体中包含从 2021 年 1 月 1 日上午 12:00:00 时开始的数据。

  • 如果时空立方体是时间子集,则输出时空立方体必须包含至少 10 个时间步长才能运行工具。

  • 如果工具对定义的位置立方体进行子集化,则任何不满足子集标准的位置都将从输出时空立方体中移除。 但是,如果该工具对格网立方体进行子集化,则任何不符合子集标准的位置都只会在输出时空立方体中被掩蔽。 被掩蔽的位置将被保留在时空立方体中,但被排除在分析之外。

    了解有关时空立方体结构的详细信息

  • 如果时空立方体是使用通过聚合点创建时空立方体工具创建的,它包含的变量可能具有不同的掩膜位置。 这会影响子集时空立方体工具应用空间子集的方式。

    • 如果时空立方体设置为输入空间子集立方体参数值,则计数变量的位置将用于空间子集输入时空立方体。
    • 如果时空立方体是输入时空立方体并且工具应用了空间子集,则在子集输出时空立方体中每个变量必须存在于至少一个位置;否则,该工具将失败。
    • 通过仅使用感兴趣的变量重新创建时空立方体来控制时空立方体中确定空间子集的变量。 首先,使用在 3D 模式下显示时空立方体工具来可视化时空立方体的值。 然后应用从定义的位置创建时空立方体工具从输出要素创建一个新的时空立方体。 选择感兴趣的变量。
  • 如果您对预测立方体进行时间子集化并移除所有预测时间步长,则输出时空立方体不再是预测立方体。 生成的时空立方体可用作时间序列预测工具集中任何工具的输入。

参数

标注说明数据类型
输入时空立方体

要子集化的时空立方体。 时空立方体具有 .nc 文件扩展名,是使用时空模式挖掘工具箱中的各种工具创建的。

File
输出时空立方体

输入时空立方体的子集,满足空间子集方法时间子集方法参数指定的空间和时间标准。 存储在输入时空立方体中的分析变量将从输出时空立方体中排除。

File
空间子集方法

指定将用于对输入时空立方体进行空间子集化的方法。 输入时空立方体中满足此空间子集标准的任何位置都将包含在输出时空立方体中。

  • 要素具有面、点或线的要素类将用于对输入时空立方体进行子集化。 空间关系参数指定要素图层如何对时空立方体进行子集化。
  • 范围范围参数指定的范围将用于对输入时空立方体进行子集化。 输出时空立方体将包括输入时空立方体中与范围相交的所有位置。
  • 时空立方体输入空间子集立方体参数指定的时空立方体的位置将用于对时空立方体进行子集化。 空间关系参数指定此时空立方体如何将输入时空立方体子集化。
  • 空间子集不会应用于输入时空立方体。
  • 要素具有面、点或线的要素类将用于对输入时空立方体进行子集化。 spatial_relationship 参数指定要素图层如何对时空立方体进行子集化。
  • 范围spatial_extent 参数指定的范围将用于子集化输入时空立方体。 输出时空立方体将包括输入时空立方体中与范围相交的所有位置。
  • 时空立方体in_spatial_cube 参数指定的时空立方体的位置将用于子集化时空立方体。 spatial_relationship 参数指定此时空立方体如何将输入时空立方体子集化。
  • 空间子集不会应用于输入时空立方体。
String
时间子集方法

指定将用于对时空立方体进行时间子集化的方法。 输入时空立方体中满足此时间子集标准的任何时间步长都将包含在输出时空立方体中。

  • 用户定义子集时间跨度参数中的开始时间结束时间值指定的时间范围将用于对输入时空立方体进行时间子集化。
  • 时间步长数量从起点开始和从终点开始的输入时空立方体的多个时间步长将用于在时间上对时空立方体进行子集化。 要移除的时间步数由要移除的时间步长数量参数中的从起点开始从终点开始值指定。
  • 时空立方体输入时间子集立方体参数指定的时空立方体的时间范围,将用于对输入时空立方体进行时间子集化。
  • 时间子集不会应用于输入时空立方体。
String
输入子集要素
(可选)

包含面、点或线以对时空立方体进行子集化的要素类。 输入子集要素与时空立方体之间的空间关系由空间关系参数指定。

Feature Layer
空间关系
(可选)

指定将在输入子集要素输入空间子集立方体参数值和输入时空立方体之间应用的空间关系,以对时空立方体进行空间子集化。 可用的空间关系选项将取决于输入时空立方体的几何形状和输入子集要素或输入空间子集立方体。

  • 相交输出时空立方体将包括输入时空立方体中与输入子集要素输入空间子集立方体参数值相交的位置。 这是默认设置。
  • 包含输出时空立方体将包括输入时空立方体中包含输入子集要素输入空间子集立方体参数值的位置。
  • 位于输出时空立方体将包括输入时空立方体中输入子集要素输入空间子集立方体参数值内的位置。
  • 中心在要素范围内输出时空立方体将包括输入时空立方体中以输入子集要素输入空间子集立方体参数值为中心的位置。
String
范围
(可选)

将对输入时空立方体进行空间子集化的空间范围。 输出时空立方体将包括输入时空立方体中与范围相交的位置。

Extent
输入空间子集立方体
(可选)

时空立方体将在空间上对输入时空立方体进行子集化。 输入空间子集立方体与时空立方体之间的空间关系由空间关系参数指定。

File
子集的时间跨度
(可选)

对输入时空立方体进行时间子集化的时间间隔。 在此时间间隔内或任何包含开始时间结束时间列值的时间步长都将包含在输出时空立方体中。

Value Table
要移除的时间步长数量
(可选)

从起点开始和从终点开始的输入时空立方体的时间步长数量,将从输出时空立方体中移除。

Value Table
输入时间子集立方体
(可选)

时空立方体将在时间上对输入时空立方体进行子集化。 时间子集立方体的时间范围定义了输出时空立方体的时间范围。 任何时间步长,只要在输入时间子集立方体的时间范围内或包含有时间子集立方体的开始或结束时间,则都将包含在输出时空立方体中。

File

arcpy.stpm.SubsetSpaceTimeCube(in_cube, out_cube, spatial_subset_method, temporal_subset_method, {in_subset_features}, {spatial_relationship}, {spatial_extent}, {in_spatial_cube}, {time_span_subset}, {remove_time_steps}, {in_temporal_cube})
名称说明数据类型
in_cube

要子集化的时空立方体。 时空立方体具有 .nc 文件扩展名,是使用时空模式挖掘工具箱中的各种工具创建的。

File
out_cube

输入时空立方体的子集,满足 spatial_subset_methodtemporal_subset_method 参数指定的空间和时间标准。 存储在输入时空立方体中的分析变量将从输出时空立方体中排除。

File
spatial_subset_method

指定将用于对输入时空立方体进行空间子集化的方法。 输入时空立方体中满足此空间子集标准的任何位置都将包含在输出时空立方体中。

  • FEATURES具有面、点或线的要素类将用于对输入时空立方体进行子集化。 spatial_relationship 参数指定要素图层如何对时空立方体进行子集化。
  • EXTENTspatial_extent 参数指定的范围将用于子集化输入时空立方体。 输出时空立方体将包括输入时空立方体中与范围相交的所有位置。
  • SPACE_TIME_CUBEin_spatial_cube 参数指定的时空立方体的位置将用于子集化时空立方体。 spatial_relationship 参数指定此时空立方体如何将输入时空立方体子集化。
  • NONE空间子集不会应用于输入时空立方体。
String
temporal_subset_method

指定将用于对时空立方体进行时间子集化的方法。 输入时空立方体中满足此时间子集标准的任何时间步长都将包含在输出时空立方体中。

  • USER_DEFINEDtime_span_subset 参数中的开始时间或结束时间值指定的时间范围将用于对输入时空立方体进行时间子集化。
  • NUMBER_OF_TIME_STEPS从起点开始和从终点开始的输入时空立方体的多个时间步长将用于在时间上对时空立方体进行子集化。 要移除的时间步数由 remove_time_steps 参数中的从起点开始和从终点开始的值指定。
  • SPACE_TIME_CUBEin_temporal_cube 参数指定的时空立方体的时间范围将用于对输入时空立方体进行时间子集化。
  • NONE时间子集不会应用于输入时空立方体。
String
in_subset_features
(可选)

包含面、点或线以对时空立方体进行子集化的要素类。 输入子集要素与时空立方体之间的空间关系由 spatial_relationship 参数指定。

Feature Layer
spatial_relationship
(可选)

将在 in_subset_featuresin_spatial_cube 参数值和输入时空立方体之间应用的空间关系,以在空间上子集化时空立方体。 可用的空间关系选项将取决于输入时空立方体的几何形状和输入子集要素或输入空间子集立方体。

  • INTERSECT输出时空立方体将包括输入时空立方体中与 in_subset_featuresin_spatial_cube 参数值相交的位置。 这是默认设置。
  • CONTAINS输出时空立方体将包括输入时空立方体中包含 in_subset_featuresin_spatial_cube 参数值的位置。
  • WITHIN输出时空立方体将包括输入时空立方体中与 in_subset_featuresin_spatial_cube 参数值相交的位置。
  • HAVE_THEIR_CENTER_IN输出时空立方体将包括那些中心位于 in_subset_featuresin_spatial_cube 参数值位置的输入时空立方体。
String
spatial_extent
(可选)

将对输入时空立方体进行空间子集化的空间范围。 输出时空立方体将包括输入时空立方体中与范围相交的位置。

Extent
in_spatial_cube
(可选)

时空立方体将在空间上对输入时空立方体进行子集化。 输入空间子集立方体与时空立方体之间的空间关系由 spatial_relationship 参数指定。

File
time_span_subset
[time_span_subset,...]
(可选)

对输入时空立方体进行时间子集化的时间间隔。 在此时间间隔内或任何包含开始时间或结束时间值的时间步长都将包含在输出时空立方体中。

Value Table
remove_time_steps
[remove_time_steps,...]
(可选)

从起点开始和从终点开始的输入时空立方体的时间步长数量,将从输出时空立方体中移除。

Value Table
in_temporal_cube
(可选)

时空立方体将在时间上对输入时空立方体进行子集化。 时间子集立方体的时间范围定义了输出时空立方体的时间范围。 任何时间步长,只要在输入时间子集立方体的时间范围内或包含有时间子集立方体的开始或结束时间,则都将包含在输出时空立方体中。

File

代码示例

SubsetSpaceTimeCube 示例 1(Python 窗口)

以下 Python 脚本演示了如何使用 SubsetSpaceTimeCube 函数。


import arcpy
arcpy.env.workspace = "C:\STPM"
arcpy.stpm.SubsetSpaceTimeCube("input_cube.nc", "subset_cube.nc", 
                               "SPACE_TIME_CUBE", "NONE", None, None, None, 
                               "spatial_subset_cube.nc")
SubsetSpaceTimeCube 示例 2(独立脚本)

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


# Use the Subset Space Time Cube tool to subset a space-time cube by time 
# and space.

# Import system modules
import arcpy
import os

# Set workspace
arcpy.env.workspace = r"C:\Analysis"
gdb = os.path.join(arcpy.env.workspace, "continents.gdb")
arcpy.env.overwriteOutput = True

# Temporally subset a space-time cube
temperature_stc = "Temperature_STC.nc"
temporal_subset_stc = "Temperature_STC_temporal_subset.nc"

arcpy.stpm.SubsetSpaceTimeCube(temperature_stc, temporal_subset_stc, "NONE", 
                               "USER_DEFINED", None, "", "DEFAULT", None, 
                               "1/1/2012 1/1/2022")

# Spatially subset the data for every continent in the space-time cube
continents = ["Africa", "North_America", "Antarctica", "South_America", "Asia", 
              "Europe", "Australia"]
for continent in continents:
    feature = os.path.join(gdb, c)
    arcpy.stpm.SubsetSpaceTimeCube(temporal_subset_stc, 
                                   continent + "_temperature_subset.nc", 
                                   "FEATURES", "NONE", feature, "INTERSECT")