GIS在多维数据分析中的应用:时空立方体(Space Time Cube)构建
GIS在多维数据分析中的应用:时空立方体(Space Time Cube)构建,适合用来分析“某个现象在空间上在哪里聚集、在时间上何时增强或减弱、这种变化是否具有连续趋势”。如果你正在处理城市交通拥堵、犯罪事件、疫情病例、POI热度、环境监测或遥感指数时间序列,时空立方体可以把二维地图和时间序列结合起来,帮助你从“看一张图”升级到“看一个空间—时间过程”。
本文以 GIS 实务视角说明时空立方体是什么、什么时候适合构建、数据如何准备、在 ArcGIS Pro 中如何生成 Space Time Cube,以及如何检查结果是否可信。重点不是堆概念,而是帮助你完成一次可复现的时空立方体构建流程。
引言:为什么 GIS 多维数据分析需要时空立方体
传统 GIS 分析通常回答两个问题:对象在哪里,以及属性是多少。但在真实业务中,很多问题还必须回答“什么时候发生”。例如:
- 某类交通事故是否从市中心向外围扩散?
- 空气污染高值区是否只在冬季出现?
- 夜间人流热点是否在周末发生明显转移?
- 某区域新增病例是否形成持续性高值聚集?
这些问题只看静态地图很容易误判。某个区域在全年统计中可能是高值,但它也许只在少数月份异常;某个区域在某天看起来普通,却可能正在持续升高。时空立方体的价值就在于:把空间位置、时间片段和统计值放进统一的数据结构中,再进行趋势、热点和异常分析。

背景:什么是时空立方体 Space Time Cube
时空立方体 Space Time Cube 是一种用于组织时空数据的分析结构。它把研究区域划分为空间网格,再把研究时间划分为连续时间步长,空间网格与时间步长相交后形成一个个三维单元。每个单元通常称为 bin,可以理解为“某个地点在某个时间段内的统计结果”。
一个简单例子:如果研究区域被划分成 500 米网格,时间被划分成每 1 天一个时间步,那么每个 bin 表示“某个 500 米网格在某一天内的事件数量、平均值、最大值或其他统计指标”。
在 ArcGIS Pro 中,Space Time Cube 通常会生成一个 NetCDF 文件。NetCDF 是一种适合存储多维数组数据的格式,常用于气象、海洋、遥感和时空分析。GIS 用户不需要手动编辑 NetCDF 文件,但需要理解它不是普通矢量图层,而是一个用于后续时空分析工具读取的多维数据容器。
原理:时空立方体构建的三个核心要素
1. 空间分箱:把研究区域切成可比较的单元
空间分箱是指把研究范围划分成规则网格,例如正方形网格或六边形网格。这样做的目的,是让不同位置可以使用统一空间尺度进行比较。
空间网格大小会直接影响结果。如果网格太大,局部热点会被平均掉;如果网格太小,很多格子没有数据,趋势分析会变得不稳定。因此,构建时空立方体时不要只追求“精细”,而要根据数据密度和业务问题选择合理尺度。
2. 时间分箱:把连续时间切成分析步长
时间分箱是把数据按照固定时间间隔进行汇总,例如 1 小时、1 天、1 周、1 月。时间步长应与现象变化节奏一致。
- 交通拥堵、共享单车订单:可考虑小时或天。
- 犯罪事件、投诉记录:可考虑天、周或月。
- 空气质量、气象观测:可考虑小时、天或月。
- 土地利用、遥感指数:可考虑月、季度或年。
时间步长过短会导致大量空 bin;时间步长过长会掩盖变化过程。一个实用原则是:每个时间片中应有足够数据支撑统计判断,同时又能保留业务所关心的变化节奏。
3. 属性汇总:为每个 bin 计算指标
时空立方体并不是简单堆叠地图,而是为每个空间—时间单元计算统计值。常见汇总方式包括:
- 事件计数:某网格某时间段内发生了多少次。
- 数值求和:某区域某时间段内总销量、总客流、总降雨量。
- 平均值:平均温度、平均 PM2.5、平均车速。
- 最大值或最小值:极端污染值、最高水位、最低植被指数。
- 存在或缺失:某类现象是否在该时段出现。
后续趋势分析、热点分析和异常检测都建立在这些 bin 统计值之上。因此,属性字段的含义、单位和统计方法必须在构建前确定清楚。
步骤:在 ArcGIS Pro 中构建时空立方体
步骤一:准备带时间字段的空间数据
构建 Space Time Cube 的输入数据通常是点要素、面要素或已汇总的时空数据。对初学者来说,最常见的是事件点数据,例如事故点、报警记录、订单点、病例点等。
数据至少应包含以下内容:
- 空间位置:点坐标,或可定位到空间单元的面要素。
- 时间字段:必须能表示事件发生时间或记录时间。
- 分析字段:如果不是做计数分析,需要有可汇总的数值字段。
- 唯一记录:避免重复导入造成事件数量虚高。
在 ArcGIS Pro 中,建议先检查时间字段类型。如果时间字段是文本,例如“2024/01/05 08:30”,应先转换为真正的 Date 类型。文本时间虽然看起来像日期,但在时空分析工具中经常导致识别失败或排序异常。
步骤二:统一坐标系,避免距离尺度错误
构建时空立方体时,空间网格大小通常以米、公里等线性单位设置。如果数据仍然是经纬度坐标系,例如 WGS 1984,直接设置 500 米网格可能出现尺度不准确或工具提示不适合计算距离的问题。
实际操作中建议:
- 确认数据当前坐标系。
- 根据研究区选择合适的投影坐标系。
- 使用投影工具生成新的投影数据,而不是只在图层属性中修改坐标系定义。
- 再基于投影后的数据构建 Space Time Cube。
例如,中国城市尺度研究通常应选择适合本地的高斯克吕格、CGCS2000 投影带,或其他符合项目规范的投影坐标系。这样空间网格大小才有明确的米制含义。
步骤三:选择合适的时空立方体创建工具
ArcGIS Pro 中常见的相关工具包括 Create Space Time Cube By Aggregating Points、Create Space Time Cube From Defined Locations 等。选择哪个工具,取决于你的输入数据形态。
| 数据类型 | 推荐工具思路 | 适用场景 |
|---|---|---|
| 事件点数据 | 按空间网格和时间步长聚合点 | 事故、案件、订单、投诉、病例 |
| 固定监测站点 | 按已定义位置构建时空序列 | 气象站、水质站、空气监测站 |
| 已有网格或行政区统计 | 按固定位置与时间字段组织数据 | 街道月报、网格化人口、分区销售 |
如果你的数据是大量独立事件点,通常优先考虑按点聚合创建时空立方体。如果你的数据本来就是固定站点的连续观测值,则不应再强行空间分网,而应保留站点作为分析位置。
步骤四:设置空间网格大小
空间网格大小是时空立方体构建中最容易影响结果的参数之一。建议不要随意输入一个整数,而是先做数据密度判断。
可以按以下方式估算:
- 在地图上查看事件点分布范围。
- 统计总点数和研究区面积。
- 尝试几个候选网格大小,例如 250 米、500 米、1000 米。
- 观察每个网格内平均事件数量是否过低或过高。
- 选择能够表达局部差异,同时不会产生大量空格的尺度。
如果研究对象是街区尺度的交通事故,500 米网格可能比 5 公里网格更有解释力;如果研究对象是省域尺度的疾病传播,过小网格反而可能产生噪声。
步骤五:设置时间步长
时间步长应与现象变化周期匹配。设置前先回答三个问题:
- 业务上关心小时变化、日变化、周变化还是月变化?
- 每个时间片内是否有足够数据?
- 研究总时长能否支持趋势分析?
例如,只有 10 天数据时,不适合用“月”为时间步长;只有两个月数据时,也很难判断长期趋势。对趋势分析而言,时间步数太少会降低统计意义。
步骤六:设置汇总字段和统计方式
如果你只关心事件发生频次,可以选择计数统计。如果你关心事件强度,则应选择对应的数值字段和统计方式。
常见设置如下:
- 事故分析:统计事故点数量。
- 降雨分析:按监测值求和或平均。
- 客流分析:按人数求和。
- 房价分析:按价格字段求平均或中位数。
- 空气质量分析:按污染物浓度求平均、最大值或超标次数。
需要注意的是,不同统计方式对应不同解释。平均 PM2.5 与最大 PM2.5 的含义完全不同,前者反映一般污染水平,后者反映极端污染风险。
步骤七:运行工具并检查输出 NetCDF
工具运行完成后,通常会生成一个 .nc 文件,也就是 Space Time Cube 的 NetCDF 输出。不要只看工具是否成功完成,还要检查消息窗口中的统计摘要。
重点关注:
- 创建了多少个空间位置。
- 创建了多少个时间步。
- 是否存在大量空 bin。
- 是否有时间范围被截断。
- 输入记录是否全部参与分析。
- 输出路径是否可读写,文件名是否包含特殊字符。
如果工具成功但结果解释困难,通常不是软件问题,而是空间尺度、时间步长或输入字段设置不合理。
步骤八:可视化和后续分析
时空立方体构建完成后,可以继续用于 Emerging Hot Spot Analysis、Local Outlier Analysis、Time Series Clustering 等时空模式挖掘工具。
常见后续分析包括:
- 新兴热点分析:识别持续热点、增强热点、减弱热点、偶发热点等。
- 局部异常分析:发现与周边时空邻域显著不同的异常单元。
- 时间序列聚类:按时间变化形态对区域进行分组。
- 趋势分析:判断某位置的数值是否随时间显著上升或下降。
这些分析的可靠性都依赖于前面的时空立方体构建质量。如果输入立方体尺度不合适,后续热点类型再漂亮,也可能没有业务解释价值。
常见坑:时空立方体构建失败或结果不可信的原因
时间字段不是 Date 类型
很多构建失败来自时间字段。Excel 或 CSV 导入后,日期可能被识别为文本。解决方法是在 ArcGIS Pro 中创建新的日期字段,并用字段计算器或数据处理工具转换为 Date 类型。
坐标系没有投影,空间网格尺度失真
经纬度坐标不是米制坐标。进行空间分箱前,应将数据投影到合适的投影坐标系。只修改图层坐标系定义不能完成真正投影转换。
空间网格太小导致大量空 bin
大量空 bin 会让结果变得稀疏,热点和趋势统计不稳定。可以适当增大网格,或降低时间分辨率,或先限定研究区。
时间步长太短导致每个时间片数据不足
例如用小时分析低频事件,很多小时没有任何记录。此时应考虑改为天、周或月,或者换成更高频的数据源。
研究范围过大掩盖局部问题
如果研究范围包含大量无关区域,网格会覆盖很多没有业务意义的位置。建议先裁剪到真实研究区,再构建时空立方体。
把行政区统计数据误当成事件点
如果数据已经是街道、区县或网格统计值,不应再当作事件点聚合,否则会改变数据含义。应根据固定位置或已有面单元构建时空序列。
方法比较:时空立方体与常规 GIS 分析怎么选
| 方法 | 适合回答的问题 | 优点 | 限制 |
|---|---|---|---|
| 普通专题图 | 某一时间或总量空间分布如何 | 直观、制作简单 | 难以表达动态变化 |
| 时间滑块动画 | 现象随时间如何移动或扩散 | 适合展示过程 | 偏可视化,统计判断较弱 |
| 热点分析 | 哪里存在显著空间聚集 | 能提供统计显著性 | 通常只处理单一时间切片或汇总数据 |
| 时空立方体 | 哪里、何时、以什么趋势发生变化 | 同时组织空间、时间和统计值 | 对数据质量、尺度参数和时间连续性要求较高 |
如果你的问题只是“今年哪个区总量最高”,普通统计图或专题图就足够。如果你的问题是“哪个区域连续升温、哪个热点正在减弱、哪个异常在最近几周突然出现”,时空立方体更合适。
检查清单:构建 Space Time Cube 前后必须确认的事项
构建前检查
- 数据是否有明确空间位置。
- 时间字段是否为 Date 类型。
- 研究时间范围是否连续且足够长。
- 坐标系是否为适合距离和面积计算的投影坐标系。
- 是否存在重复记录、异常时间或明显错误坐标。
- 空间网格大小是否符合数据密度和业务尺度。
- 时间步长是否符合现象变化周期。
- 统计字段和统计方法是否与研究问题一致。
构建后检查
- 工具运行消息中输入记录数量是否符合预期。
- 空间位置数量是否过多或过少。
- 时间步数是否与研究时间范围一致。
- 空 bin 比例是否过高。
- 输出 NetCDF 文件是否能被后续工具正常读取。
- 抽样检查某几个网格和时间段的统计值是否与原始数据一致。
- 后续热点或趋势结果是否能被业务逻辑解释。
实务建议:第一次构建时空立方体时,不要一次性追求最终参数。先用小范围数据测试空间网格、时间步长和统计字段,确认解释合理后再处理完整数据。
FAQ:时空立方体 Space Time Cube 常见问题
Q1:时空立方体一定要用 ArcGIS Pro 吗?
不一定。ArcGIS Pro 提供了较完整的 Space Time Cube 工具链,适合 GIS 用户快速完成构建和后续时空热点分析。如果使用 Python,也可以用 GeoPandas、xarray、pandas 等库手动组织空间网格和时间维度,但需要自己处理统计、存储和可视化流程。
Q2:点数据很少,可以构建时空立方体吗?
可以尝试,但结果未必可靠。点数据太少时,很多空间—时间单元会为空,趋势或热点结论容易受偶然值影响。可以考虑增大空间网格、延长时间步长,或降低分析目标,从显著性分析改为探索性可视化。
Q3:空间网格选正方形还是六边形?
两者都可以。正方形网格容易理解和实现,六边形网格邻接关系更均衡,常用于减少方向性影响。实际项目中,优先考虑业务解释和制图表达。如果团队或项目规范已有固定网格,应优先沿用。
Q4:时空立方体中的空值需要填补吗?
要看空值含义。如果某个 bin 没有事件发生,计数为 0 是合理的;如果是监测数据缺测,则不应简单当作 0。缺测值和真实零值在时空分析中的含义不同,混用会严重影响趋势判断。
Q5:Space Time Cube 输出的 NetCDF 可以直接制图吗?
NetCDF 本身是多维数据容器,通常需要通过 ArcGIS Pro 的相关可视化或分析工具读取。你也可以用支持 NetCDF 的 Python 库读取后再转为栅格、矢量或图表,但不建议把它当作普通 Shapefile 使用。
Q6:时空立方体适合做预测吗?
时空立方体主要用于组织时空数据、发现趋势、热点和异常。它可以作为预测建模的数据基础,但预测还需要额外的时间序列模型、机器学习模型或空间统计模型。不要把热点分析结果直接等同于未来预测。
结论:先把尺度和数据质量做好,再谈时空模式发现
GIS在多维数据分析中的应用:时空立方体(Space Time Cube)构建,核心不是生成一个 .nc 文件,而是把空间尺度、时间尺度和统计指标设计正确。只有输入数据可靠、时间字段规范、坐标系合适、分箱参数合理,后续的新兴热点分析、异常分析和趋势解释才有意义。
对于 GIS 学习者和初级工程师,建议从事件点数据开始练习:先选一个明确问题,准备带时间字段的点图层,设置合适投影,尝试不同空间网格和时间步长,再比较输出结果。这样你会更快理解时空立方体不是抽象概念,而是一套可落地的 GIS 多维数据分析工作流。