通过多维栅格图层创建时空立方体 (时空模式挖掘)

摘要

根据多维栅格图层创建时空立方体,并将数据构造为时空立方图格,以进行有效的空间-时间分析和可视化。

了解有关在 ArcGIS AllSource 的地图中添加和可视化多维栅格图层的详细信息

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

插图

通过多维栅格图层创建时空立方体工具图示
根据多维栅格图层创建时空立方体。

使用情况

  • 可以使用时空模式挖掘工具箱中的工具来分析输出时空立方体参数值的空间和时间模式,其中包括新兴时空热点分析局部异常值分析时间序列聚类

  • 输出时空立方体值将使用输入多维栅格图层参数值的空间和时态分辨率进行创建。 输出立方体中的每个时空立方图格都将针对输入中的单个时间间隔参考单个栅格像元。 共享相同位置的立方图格将具有相同的 Location ID 属性,且共享相同时间间隔的立方图格将具有相同的 Time Step ID 属性。

  • 此工具类似于通过已定义位置创建时空立方体通过聚合点创建时空立方体工具,但此工具中未将空间或时间聚合用于转换。 时空立方体的位置与各个栅格像元的位置相同,且立方体的时间间隔与栅格的时间间隔相同。

  • 系统将使用 Mann-Kendall 统计来分析每个位置的时间趋势。 在工具处理期间,该信息以及时空立方体的其他属性都将以地理处理消息的形式写到地理处理窗格的底部。 还可以将鼠标悬停在进度条上、单击弹出按钮 弹出 或展开地理处理窗格中的消息部分,以使用地理处理历史来访问消息。

  • 您可以使用在 2D 模式下显示时空立方体在 3D 模式下显示时空立方体工具,或是通过下载时空立方体资源管理器加载项的方式,以 2D 或 3D 模式对时空立方体数据进行可视化

  • 此工具需要对输入多维栅格图层值进行投影,以便准确测量距离。 如果将其用于具有纬度和经度坐标的地理坐标系且未指定输出坐标系环境设置,则栅格图层将投影到 WGS 1984 世界等距圆柱投影 (WKID 4087)。

  • 输入多维栅格图层值必须至少有 10 个时间间隔,才能在此工具中使用。

  • 时空立方体最多可以存储 20 亿个立方图格。 如果栅格像元数乘以时间间隔数的结果超过 20 亿,则该工具将返回错误。

  • 每个时间间隔都具有 NoData 值的任何栅格像元都将从输出中排除,且不为其分配时空立方图格。

  • 如果多维栅格以云栅格格式 (*.crf) 存储,您可以浏览至或者为输入多维栅格图层参数指定栅格数据集的文件路径,而无需创建多维栅格图层。 如果栅格是多元栅格,则该工具将使用第一个变量。 要使用其他变量,必须使用从多维栅格导入变量选项添加变量作为多维栅格图层。

  • 当使用空间邻域填充空立方图格时,此工具会根据最邻近的 8 个最近相邻要素进行估算。 使用此选项填充空立方图格最少需要 4 个这样的空间相邻要素。

  • 当使用时空邻域填充空立方图格时,此工具会根据最邻近的 8 个最近相邻要素进行估算。 此外,通过向前和向后移动 1 个时间步长,对发现为时间相邻要素的每个条柱,使用空间相邻要素。 使用此选项填充空立方图格最少需要 13 个时空相邻要素。

  • 当使用时间趋势填充空立方图格时,给定位置的前两个时间段和后两个时间段在其立方图格中必须具有值,以便对该位置的其他时间段进行插值。

  • 时间趋势填充类型将使用 SciPy 插值包中的一元样条插值方法。

  • 如果输入多维栅格图层的 StdTime 值包含毫秒值,则每个时空立方图格的时间戳将仅包含秒,并且将忽略任何毫秒。

参数

标注说明数据类型
输入多维栅格图层

将转换为时空立方体的输入多维栅格图层。

Raster Layer
输出时空立方体

将创建的输出 netCDF 数据立方体。

File
填充空立方图格方法

指定如何填充输出时空立方体中的缺失值。 输出中的每个时空立方图格必须具有一个值,因此必须指定使用 NoData 值填充栅格像元的值的方式。

  • 空立方图格将使用零进行填充。 这是默认设置。
  • 空间邻域空立方图格将使用空间相邻要素的平均值进行填充。
  • 时空邻域空立方图格将使用时空相邻要素的平均值进行填充。
  • 时间趋势空立方图格将使用一元样条插值算法进行填充。
String

arcpy.stpm.CreateSpaceTimeCubeMDRasterLayer(in_md_raster, output_cube, fill_empty_bins)
名称说明数据类型
in_md_raster

将转换为时空立方体的输入多维栅格图层。

Raster Layer
output_cube

将创建的输出 netCDF 数据立方体。

File
fill_empty_bins

指定如何填充输出时空立方体中的缺失值。 输出中的每个时空立方图格必须具有一个值,因此必须指定使用 NoData 值填充栅格像元的值的方式。

  • ZEROS空立方图格将使用零进行填充。 这是默认设置。
  • SPATIAL_NEIGHBORS空立方图格将使用空间相邻要素的平均值进行填充。
  • SPACE_TIME_NEIGHBORS空立方图格将使用时空相邻要素的平均值进行填充。
  • TEMPORAL_TREND空立方图格将使用一元样条插值算法进行填充。
String

代码示例

CreateSpaceTimeCubeMDRasterLayer 示例 1(Python 窗口)

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

import arcpy
arcpy.env.workspace = r"C:\STPM\CSTCMDRL"
arcpy.stpm.CreateSpaceTimeCubeMDRasterLayer(r"Crime_Density", 
                  r"Chicago_STCube.nc", "SPACE_TIME_NEIGHBORS")
CreateSpaceTimeCubeMDRasterLayer 示例 2(独立脚本)

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

# Convert a multidimensional raster layer to a space-time cube
# Fill in missing values using space-time neighbors
# Run Emerging Hot Spot Analysis on the data
# Visualize the results in 3d

# Import system modules
import arcpy

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

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

try:

    # Create a space-time cube from the multidimensional raster layer
    arcpy.stpm.CreateSpaceTimeCubeMDRasterLayer(r"Precipitation_MDRLayer",
                                       r"SierraNevada_Precipitation.nc", 
                                       "SPACE_TIME_NEIGHBORS")

    # Run an emerging hot spot analysis on the space-time cube
    # using contiguity edges and corners so that neighbors are defined
    # by all bordering bins in space and time.
    arcpy.stpm.EmergingHotSpotAnalysis(r"SierraNevada_Precipitation.nc",
                                       "PRECIPITATION_SPACE_TIME_NEIGHBORS",
                                       "SierraNevada_Precipitation_EmergingHotSpot", 
                                       "", 1, "", "CONTIGUITY_EDGES_CORNERS")

    # Use Visualize Cube in 3d to see the hot spot results for each time slice
    arcpy.stpm.VisualizeSpaceTimeCube3D(r"SierraNevada_Precipitation.nc", 
                                        "PRECIPITATION_SPACE_TIME_NEIGHBORS",
                                        "HOT_AND_COLD_SPOT_RESULTS",
                                        "SierraNevada_Precipitation_Visualize3d")

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