标注 | 说明 | 数据类型 |
输入要素 | 将转换为时空立方体的输入点或面要素类。 | Feature Layer |
输出时空立方体 | 将创建的输出 netCDF 数据立方体。 | File |
位置 ID | 包含每个唯一位置的 ID 编号的整型或文本字段。 | Field |
时间聚合 | 指定是否将对数据进行时间聚合。
| Boolean |
时间字段 |
包含数据集中每行的时间戳的字段。 此字段必须为日期类型。 | Field |
时间步长间隔 (可选) | 用来表示单个时间步长的秒数、分钟数、小时数、天数、周数或年数。 此参数的有效条目示例为 1 周、13 天或 1 个月。 如果未应用时间聚合(未选中时间聚合),请将此参数设置为数据的现有时间结构。 如果应用时间聚合(选中时间聚合),请将此参数设置为要创建的时间步长间隔。 将聚合相同时间步长间隔内的所有要素。 | Time Unit |
时间步长对齐 (可选) | 指定将基于给定时间步长间隔对齐立方体结构的方式。
| String |
参考时间 (可选) | 将用于对齐时间步长间隔的日期和时间。 例如,要按星期从星期一至星期天对数据进行归类,请将星期天的午夜设置为参考时间,以确保立方图格在星期天和星期一之间的午夜进行划分。 | Date |
变量 (可选) | 将在时空立方体中引入的包含属性值的数值字段。 可用填充类型如下:
注:任何变量记录中的空值都将导致产生空立方图格。 如果输入要素中出现空值,则建议您先运行填充缺失值工具。 | Value Table |
汇总字段 (可选) | 包含将用于在聚合到时空立方体时计算指定统计数据的属性值的数值字段。 可以指定多项统计和字段组合。 在任何指定字段中出现的空值都将导致从输出立方体中排除相应要素。 如果输入要素中出现空值,建议您在创建时空立方体前先运行填充缺失值工具。 可用统计类型如下:
可用填充类型如下:
注:任何汇总字段记录中的空值都将导致从输出立方体中排除这些要素。 如果输入要素中出现空值,则建议您先运行填充缺失值工具。 在运行填充缺失值工具后,如果仍存在空值,并且每个立方图格中的点数是分析策略的一部分,请考虑创建单独的立方体,针对计数(不含汇总字段)创建一个,并针对汇总字段创建一个。 如果每个汇总字段的空值集不相同,则可以为每个汇总字段创建一个单独的立方体。 | Value Table |
相关表 (可选) | 将关联到输入要素的表或表视图。 | Table View |
相关位置 ID (可选) | 相关表中包含基于关联的位置 ID 的整型或文本字段。 | Field |
摘要
通过创建时空立方图格将面板数据或站点数据(地理位置不会改变,但属性会随时间改变的已定义位置)构建为 netCDF 数据格式。 对于所有位置,评估变量或汇总字段趋势。
插图
使用情况
由此工具创建的数据结构可被视为由时空立方图格组成的一个 3D 立方体,其中 x 和 y 维度表示空间,t 维度表示时间。
每个立方图格在空间(如果输入点,则为 x,y 位置;如果输入面位置,则为一组固定的折点)和时间 (t) 中都有固定位置。 覆盖同一已定义位置区域(无论 x,y 还是折点)的立方图格将共用同一个位置 ID。 包含相同持续时间的立方图格共用相同的时间步长 ID。
时空立方体中的每个立方图格都具有 LOCATION_ID、time_step_ID 和 COUNT 值以及创建立方体后包括的变量或汇总字段参数值。 与同一物理位置相关的立方图格将共享同一位置 ID,这些立方图格组合起来可表示时间序列。 与同一时间步长间隔相关的立方图格将共享同一时间步长 ID,这些立方图格组合起来可构成时间片。
输入要素可以是点或面,并且应该表示具有随时间收集的关联属性的已定义或固定位置。 此类数据通常称为固定样本或站点数据。 包含事件时间戳的字段必须为日期类型。
输入要素可以是包含在同一要素类中的重复形状,也可以是一组要素,其相关表包含随时间记录的属性。
如果指定参数将导致立方体具有的立方图格数量超过 20 亿,则此工具将失败。
此工具需要使用投影数据来准确测量距离。
如果选中时间聚合参数,则生成的时空立方体将包含各个立方图格的计数值,可反映在相关时间步长间隔内出现在相关位置的事件的数量。
此工具的输出为输入要素的 netCDF 制图表达以及汇总了立方体特征的消息。 在工具处理过程中,消息将写入到地理处理窗格底部。 要访问消息,请将鼠标悬停在进度条上并单击弹出按钮 ,或者展开地理处理窗格中的消息部分。 您还可以通过地理处理历史记录访问之前运行工具的消息。 可将 netCDF 文件用作其他工具(例如新兴时空热点分析工具或局部异常值分析工具)的输入。 有关查看立方体内容的策略,请参阅可视化时空立方体。
为时间字段参数提供日期类型的字段。 如果输入为重复形状,则此字段应包含与各个要素相关联的时间戳。 如果提供了相关表参数值,则此字段将为与表中各个记录相关联的时间戳。 如果该字段为高精度(包含毫秒值),则每个时空立方图格的时间戳将仅包含秒,并且将忽略任何毫秒。
时间步长间隔参数用于定义对数据的时间范围进行分区的方式。 如果取消选中时间聚合参数,请将时间步长间隔参数设置为数据的现有结构。 例如,对于每五年收集一次的人口普查数据,输入应为 5 年。 要进行时间聚合,请选中时间聚合参数。 例如,对于每 5 分钟记录一次的传感器数据,可以使用一天间隔进行聚合。 时间步长间隔始终为固定持续时间,并且此工具最少需要 10 个时间步长。
注:
尽管时间步长间隔参数下拉列表中显示了许多时间单位,但是该工具仅支持年、月、周、日、小时、分钟和秒。
如果无法创建时空立方体,则工具可能无法将提供的输入数据构建为 10 个时间步长间隔。 如果您收到错误消息,请检查输入的时间戳,确保其包含值范围(至少为 10)。 值范围的跨度必须大于等于 10 秒,因为该工具将使用的最小时间增量为 10 秒。 Mann-Kendall 统计需要十个时间步长间隔。
参考时间参数可以是日期和时间值或仅为日期值,但不可仅为时间值。 预期格式由计算机的区域时间设置决定。
在聚合变量或汇总字段值上执行的趋势分析是以 Mann-Kendall 统计为基础的。
使用此工具可对属性聚合执行以下统计运算:总和、平均值、最小值、最大值、标准差和中值。
任何汇总字段记录中出现的空值都将导致从输出立方体中排除这些要素。 如果输入要素中出现空值,则建议您先运行填充缺失值工具。 在运行填充缺失值工具后,如果仍存在空值,并且每个立方图格中的点数是分析策略的一部分,请考虑创建单独的立方体,针对计数(不含汇总字段)创建一个,并针对汇总字段创建一个。 如果每个汇总字段的空值集不相同,您还可以为每个汇总字段创建一个单独的立方体。
当使用空间邻域填充空立方图格时,此工具会根据最邻近的 8 个最近相邻要素进行估算。 使用此选项填充空立方图格最少需要 4 个这样的空间相邻要素。
当使用时空邻域填充空立方图格时,此工具会根据最邻近的 8 个最近相邻要素进行估算。 此外,通过向前和向后移动 1 个时间步长,对发现为时间相邻要素的每个条柱,使用空间相邻要素。 使用此选项填充空立方图格最少需要 13 个时空相邻要素。
当使用时间趋势填充空立方图格时,给定位置的前两个时间段和后两个时间段在其立方图格中必须具有值,以便对该位置的其他时间段进行插值。
时间趋势填充类型将使用 SciPy 插值包中的一元样条插值方法。
该工具可利用具有多个 CPU(或多核 CPU)的系统来提高性能。 该工具将默认在使用 50% 可用处理器的情况下运行;但是,可以使用并行处理因子环境增大或减小使用的 CPU 数。 在创建较大的时空立方体时,处理速度的提高最为明显。
参数
arcpy.stpm.CreateSpaceTimeCubeDefinedLocations(in_features, output_cube, location_id, temporal_aggregation, time_field, {time_step_interval}, {time_step_alignment}, {reference_time}, {variables}, {summary_fields}, {in_related_table}, {related_location_id})
名称 | 说明 | 数据类型 |
in_features | 将转换为时空立方体的输入点或面要素类。 | Feature Layer |
output_cube | 将创建的输出 netCDF 数据立方体。 | File |
location_id | 包含每个唯一位置的 ID 编号的整型或文本字段。 | Field |
temporal_aggregation |
| Boolean |
time_field |
包含数据集中每行的时间戳的字段。 此字段必须为日期类型。 | Field |
time_step_interval (可选) | 用来表示单个时间步长的秒数、分钟数、小时数、天数、周数或年数。 此参数的有效条目示例为 1 周、13 天或 1 个月。 如果不应用时间聚合 (temporal_aggregation = "NO TEMPORAL_AGGREGATION"),请将此参数设置为数据的现有时间结构。 如果应用时间聚合 (temporal_aggregation = "APPLY TEMPORAL_AGGREGATION"),请将此参数设置为要创建的时间步长间隔。 将聚合相同时间步长间隔内的所有要素。 | Time Unit |
time_step_alignment (可选) | 指定将基于给定 time_step_interval 值对齐立方体结构的方式。
| String |
reference_time (可选) | 将用于对齐时间步长间隔的日期和时间。 例如,要按星期从星期一至星期天对数据进行归类,请将星期天的午夜设置为参考时间,以确保立方图格在星期天和星期一之间的午夜进行划分。 | Date |
variables [[Field, Fill Empty Bins with],...] (可选) | 将在时空立方体中引入的包含属性值的数值字段。 可用填充类型如下:
注:任何变量记录中的空值都将导致产生空立方图格。 如果输入要素中出现空值,则建议您先运行填充缺失值工具。 | Value Table |
summary_fields [[Field, Statistic, Fill Empty Bins with],...] (可选) | 包含将用于在聚合到时空立方体时计算指定统计数据的属性值的数值字段。 可以指定多项统计和字段组合。 在任何指定字段中出现的空值都将导致从输出立方体中排除相应要素。 如果输入要素中出现空值,建议您在创建时空立方体前先运行填充缺失值工具。 可用统计类型如下:
可用填充类型如下:
注:任何汇总字段记录中的空值都将导致从输出立方体中排除这些要素。 如果输入要素中出现空值,则建议您先运行填充缺失值工具。 在运行填充缺失值工具后,如果仍存在空值,并且每个立方图格中的点数是分析策略的一部分,请考虑创建单独的立方体,针对计数(不含汇总字段)创建一个,并针对汇总字段创建一个。 如果每个汇总字段的空值集不相同,则可以为每个汇总字段创建一个单独的立方体。 | Value Table |
in_related_table (可选) | 将关联到输入要素的表或表视图。 | Table View |
related_location_id (可选) | 相关表中包含基于关联的位置 ID 的整型或文本字段。 | Field |
代码示例
以下 Python 窗口脚本演示了如何使用 CreateSpaceTimeCubeDefinedLocations 函数。
import arcpy
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
arcpy.stpm.CreateSpaceTimeCubeDefinedLocations("Chicago_Data", r"C:\STPM\Chicago_Cube.nc", "MYID",
"NO_TEMPORAL_AGGREGATION", "TIME", "1 Months",
"END_TIME", "", "COUNT ZEROS")
以下独立 Python 脚本演示了如何使用 CreateSpaceTimeCubeDefinedLocations 函数。
# 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 overwriteOutput 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, fill them using the temporal trend method
arcpy.stpm.FillMissingValues("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.stpm.CreateSpaceTimeCubeDefinedLocations("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.stpm.EmergingHotSpotAnalysis(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.stpm.VisualizeSpaceTimeCube3D(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE", "HOT_AND_COLD_SPOT_RESULTS",
"Chicago_Cube_Visualize3d")
except arcpy.ExecuteError:
# If any error occurred when running the tool, print the messages
print(arcpy.GetMessages())