摘要
通过将一组点聚合到时空条柱的方法将其汇总到 netCDF 数据结构中。在每个条柱内计算点。对于所有条柱位置,评估随时间推移的计数趋势。
插图
用法
此工具将输入要素点聚合到时空条柱。所创建的数据结构可被视为由时空条柱组成的一个三维立方体,其中 x 和 y 维度表示空间,t 维度表示时间。
每个条柱在空间 (x,y) 和时间 (t) 中都有固定位置。覆盖同一个 (x, y) 区域的条柱共用同一个位置 ID。包含相同持续时间的条柱共用相同的时间步长 ID。由于即使点数据并非矩形,立方体始终为矩形,因此某些位置的所有时间步长的点计数也将为零。对于许多分析,只有带有数据的位置(至少一个时间步长的至少一个点计数大于 1)将包括在分析中。
输入要素应为表示事件数据(例如犯罪、火灾、疾病事件或交通事故)的点。每个点都应具有与其关联的日期。包含事件时间戳的字段必须为日期类型。此工具需要最少 60 个点和各种时间戳。如果指定的参数将导致立方体具有二十多亿条柱,此工具将无法执行操作。
此工具需要投影数据来准确测量距离。
此工具的输出为 netCDF,可表示输入点以及写到结果窗口中的、汇总了立方体特征的消息。可将创建的 netCDF 文件用作新兴时空热点分析工具的输入。要获取允许您查看立方体内容的策略,请参阅可视化时空立方体。
针对时间字段参数选择“日期”类型的字段。该字段应包含与每个点要素相关联的时间戳。
时间步长间隔用于定义要如何对某一时间范围内的聚合点进行分区。您可决定使用一天、一周或一年等间隔来聚合点。时间步长间隔始终为固定持续时间,并且此工具最少需要十个时间步长。如果未提供时间步长间隔值,此工具将为您计算一个值。有关默认时间步长间隔的计算方法的详细信息,请参阅了解有关“创建时空立方体”的工作原理的详细信息。有效的时间步长间隔单位为年、月、日、小时、分钟和秒。
以整数值和单位值形式键入时间步长间隔。时间步长间隔条目示例为 1 周、2 周、13 天或 1 个月。
应创建模板立方体以在您每次运行分析时(尤其是您想要针对一系列时间段比较数据时)进行使用。通过提供模板立方体,可确保分析、条柱大小、时间步长间隔、参考时间以及时间步长对齐的范围始终一致。
如果提供一个模板立方体,则落在该模板立方体范围外的输入点将被排除在分析外。同样,如果与输入点要素相关的空间参考不同于与模板立方体相关的空间参考,则此工具将投影输入要素以在开始聚合前匹配模板立方体。与模板立方体相关的空间参考还将覆盖输出坐标系设置。此外,不管您是否指定其他处理范围,模板立方体一经指定便将确定所用的处理范围。
参考时间可能是日期和时间值或仅为日期值,不可只是时间值。预期格式由计算机的区域时间设置确定。
距离间隔可指定时空条柱的大小。条柱可用于聚合点数据。例如,您可决定使每个条柱为 50 米乘 50 米。除非指定模板立方体,否则立方体左上角中的条柱将在输入要素空间范围的左上角居中显示。您将要选择一个对分析有意义的距离间隔。如果距离间隔过大,则会失去点数据中的基本模式;如果距离间隔过小,则最终得到充满零计数的立方体。您应在这两者之间找到平衡。如果未提供距离间隔值,此工具将为您计算一个值。有关默认距离间隔的计算方法的详细信息,请参阅了解有关“创建时空立方体”的工作原理的详细信息。支持的距离间隔单位为千米、米、英里和英尺。
在聚合计数数据上执行的趋势分析基于 Mann-Kendall 统计。
语法
CreateSpaceTimeCube_stpm (in_features, output_cube, time_field, {template_cube}, {time_step_interval}, {time_step_alignment}, {reference_time}, {distance_interval})
参数 | 说明 | 数据类型 |
in_features | 要聚合到时空条柱的输入点要素类。 | Feature Layer |
output_cube | 将创建输出 netCDF 数据立方体以包含输入要素点数据的计数和汇总。 | File |
time_field | 包含每个点的日期和时间(时间戳)的字段。此字段必须为日期类型。 | Field |
template_cube (可选) | 用于定义output_cube分析范围、条柱维度和条柱对齐的参考时空立方体。time_step_interval、distance_interval 和 reference_time 值还可从模板立方体获取。该模板立方体必须是已使用此工具创建的 netCDF (.nc) 文件。 | File |
time_step_interval (可选) | 用来表示单个时间步长的秒数、分钟数、小时数、天数、周数或年数。将聚合相同时间步长间隔和距离间隔中的所有点。(提供模板立方体时,将忽略此参数,并从该模板立方体获取时间步长间隔值)。此参数的有效条目示例为 1 周、13 天或 1 年。 | String |
time_step_alignment (可选) | 定义如何根据给定 time_step_interval 进行聚合。如果提供 template_cube,则与 template_cube 相关的 time_step_alignment 将覆盖此参数设置,并使用 template_cube 的 time_step_alignment。
| String |
reference_time (可选) | 用于对齐时间步长间隔的日期/时间。例如,如果想要按星期从星期一至星期天对数据进行归类,可以将星期天的午夜设置为参考时间,以确保条柱在星期天和星期一之间的午夜进行划分。(提供 template_cube 时,将忽略此参数,且 reference_time 取决于 template_cube。) | Date |
distance_interval (可选) | 用于聚合 in_features 的条柱空间范围。将对位于同一 distance_interval 和 time_step_interval 内的所有点进行聚合。(提供 template_cube 时,将忽略此参数,且距离间隔值将取决于 template_cube。) | Double |
代码实例
CreateSpaceTimeCube 示例 1(Python 窗口)
以下 Python 窗口脚本演示了如何使用 CreateSpaceTimeCube 工具。
arcpy.env.workspace = r"C:\STPM"
arcpy.CreateSpaceTimeCube_stpm("Homicides.shp", "Homicides.nc", "OccDate", "#", "3 Months",
"End time", "#", "3 Miles")
CreateSpaceTimeCube 示例 2(独立 Python 脚本)
以下独立 Python 脚本演示了如何使用 CreateSpaceTimeCube 工具。
# Create Space Time Cube of homicide incidents in a metropolitan area
# Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"C:\STPM"
try:
# Set the current workspace (to avoid having to specify the full path to the feature
# classes each time)
arcpy.env.workspace = workspace
# Create Space Time Cube of homicide incident data with 3 months and 3 miles settings
# Process: Create Space Time Cube
cube = arcpy.CreateSpaceTimeCube_stpm("Homicides.shp", "Homicides.nc", "MyDate", "#",
"3 Months", "End time", "#", "3 Miles")
# Create a polygon that defines where incidents are possible
# Process: Minimum Bounding Geometry of homicide incident data
arcpy.MinimumBoundingGeometry_management("Homicides.shp", "bounding.shp", "CONVEX_HULL",
"ALL", "#", "NO_MBG_FIELDS")
# Emerging Hot Spot Analysis of homicide incident cube using 5 Miles neighborhood
# distance and 2 neighborhood time step to detect hot spots
# Process: Emerging Hot Spot Analysis
cube = arcpy.EmergingHotSpotAnalysis_stpm("Homicides.nc", "COUNT", "EHS_Homicides.shp",
"5 Miles", 2, "bounding.shp")
except arcpy.ExecuteError:
# If any error occurred when running the tool, print the messages
print(arcpy.GetMessages())