公众号原文配套,欢迎关注:
[ArcGIS Pro 时空模式挖掘工具] 时空立方体 第一弹https://mp.weixin.qq.com/s/e-l6o4CL98K5q5y_NQqKBw一点规划云盘资料群:
一点规划云盘资料群https://mp.weixin.qq.com/s/BmCbj1Iv0SF0Pxaygx1cdg这次分享的是与之前空间统计分析关联的内容,空间自相关—莫兰指数(这方面虾神的白话统计真的好啊)。做这些内容其实是一个很有意思的事情。本次案例是通过ArcGIS Pro提供的时空模式挖掘工具箱展示地理位置相关的事件,用芝加哥一个月份共享单车轨迹数据通过聚合点创建时空立方体,在空间和时间维度展示数据的热点信息。开始之前还是先捋一遍,大致了解一下这方面的内容(参照官方帮助文档)
最终结果以2D模式(左)3D模式(右)显示
【一】
闲话较多,可直接跳至【二】【三】看。
地理学第一定律,"任何事物都是与其他事物相关的,只不过相近的事物关联更紧密"。
一直以来,我们无限扩展“关联”的内涵与外延,却忽略了对距离本源的思考和拓展。当前大多从空间、时间两个维度进行探索分析,这一定程度上割裂了事物总体时空尺度上的特征与变化。
我看这部分的时候想起了《围城》里的一句话:“好比冬季每天的气候罢,你没法把今天的温度加在昨天的上面,好等明天积成个和暖的春日"。符不符合时间维度上的相关性。
这是前段时间Esri培训课上张海平老师的PPT,在b站有视频
而传统的莫兰指数只适用于空间的特性分析,大量数据不仅仅包含空间特征,还同时包含时间维度特征,因此对空间相关性分析方法进行时间维度的拓展是十分必要的。ArcGIS Pro支持四种时空数据模型:时空立方体,时空栅格、时空体素和时空流,对我来说当然是弄一下比较简单的时空立方体就好啦先。2.8版本的时空模式挖掘工具集还是更新了比较多(右2.5,左2.8)
按照最新的来讲整个时空模式挖掘工具包括时间序列预测、时空立方体创建、时空立方体可视化、时空模式分析。我要写的也是从时空立方体的创建-可视化-结果分析。
【二】
在操作开始之前我写下我做的时候报错的一个问题,为可能碰到过这个问题的同学做一个备忘。那就是"NoneType"这类报错,经常发生在路径错误的情况下,通常是因为路径(目录及文件名)包含非英文字符(包括但不限于中文)、特殊符号(指除了下划线之外的任何符号)、空格等,需要检查的地方至少有3个,输入数据所在路径、输出数据的路径、用户名称,最后一项比较容易忽略。我的电脑user名称设置的中文名,所以还是注意下。
正式开始,我使用的数据是芝加哥4月份的共享单车轨迹数据,地理坐标WGS_84。这里推荐一下厦门的轨迹数据,https://data.xm.gov.cn/contest-series/digit-china-2021/#/3/,官方比赛的公开数据,隔了有那么段时间了。
创建时空立方体需要数据表中的日期字段,确保CSV文件包含日期或时间字段
首先将这个表加载进来,通过XY表格转点工具转为点要素或者右键数据显示XY数据均可。
数据也不少啊
由于时空立方体需要计算距离,所以我们还需要对地理坐标系进行投影。凡是涉及空间分析的操作,势必会用到距离、长度、面积,所以都必须投影,将数据统一投影处理好总是没错的。
【三】
接下来开始创建时空立方体,创建立方体的方式有通过聚合点创建、通过已定义位置创建、通过多维栅格图层创建3种,本次用的是通过聚合点创建立方体,都是什么意思呢。
通过聚合点创建:通过将一组点聚合到空间时间立方图格的方法将其汇总到netCDF数据结构中。在每个立方图格内计算点计数并聚合指定属性。对于所有立方图格位置,评估计数趋势和汇总字段值。用我有限的词汇来说一下就是,首先把空间划分为一定的网格,将点输入要素聚合到网格中,所创建的数据结构可被视为由时空立方图格组成的一个三维立方体,其中x和y维度表示空间,t维度表示时间。比如这次用的共享单车轨迹数据,你解锁单车或者还车的地点并不是固定的,一直在发生变化,这种情况下就需要聚合点了。
通过已定义位置创建:获取面板数据或测点数据(地理位置不变但属性会随时间改变的已定义位置),并通过创建时空立方图格将其构建为netCDF数据格式。对于所有位置,评估变量或汇总字段趋势。比如,现在用的是厦门地铁站点闸机的流量数据,那就需要用这种,因为这个站点是固定的,不会乱跑。
通过多维栅格图层创建:根据多维栅格图层创建时空立方体,并将数据构造为时空立方图格,以进行有效的空间-时间分析和可视化。比如我有十几二十几个的降水量数据或者poi数据,我可以做核密度分析,得到多个栅格数据,这种情况下需要用这个方式。
极思客栈—多维数据及其应用研究—以PM2.5预测为例
多维数据表示在多个时间或多个深度或高度捕获的数据。例如,多维数据可包括2010 至2020年每个月的温度、湿度和风速数据,也可包括高程为0米、1米和10米的这些数据。这些数据类型通常用于大气、海洋和地球科学。
工具箱和创建立方体界面
1.输入要素是处理好的单车数据,输出立方体选择输出路径,结果输出为.nc文件,2.时间字段选择开始使用单车时间,模板立方体的意思就是有预先设置好这些参数的模板,这里没有。
3.时间步长间隔。用于定义要如何对某一时间范围内的聚合点进行分区,支持天、周或年等间隔来聚合点。也就是一个立方体的高度代表多长时间,将聚合相同时间步长间隔和距离间隔中的所有点。比如我现在数据是一个月(假设30天),时间间隔选的是1天,那一个条柱有30个立方体。后面结果有图,一看就明白了。
4.时间步长对齐。下图示表示了一个时间跨度从2015年9月3日到2015年9月12日的数据集,用这个官方的解释来看一下时间步长对齐方式。
结束时间:例如,如果将时间步长对齐的结束时间值设置为3天的时间步长间隔,则分组将使用最后的数据点启动并以3天的时间增量向后开始聚合,直到所有数据点落在同一时间步长中为止。
开始时间:如果将时间步长对齐的开始时间值设置为3天的时间步长间隔,则图格将使用第一个数据点启动并以3天的时间增量开始聚合,直到最后的数据点落在最后时间步长中为止。
只是这里又牵扯出一个问题,3天一个步长的话,比如结束时间图里9月1/2号这两天是没有数据点的,但还是被算进一个步长范围里,这就出现了时间偏差,偏差为2/3=66%,由于许多分析关注的是最近发生的事情,所以时间步长对齐的默认选项是结束时间,因此最好将此偏差放到立方体的开始位置(更详细的说明前往官方帮助文档,说多了更啰嗦)
5.聚合形状: 可以是渔网格也可以是六边形。
6.距离间隔:用于聚合输入要素的立方图格尺寸,将对相同距离间隔和时间步长间隔内的所有点进行聚合。例如,可决定使每个渔网立方图格为50米乘50米。如果聚合到六边形则距离间隔为每个六边形的高度,而所生成六边形的宽度为高度除以根号3再乘2。给大家直观的看一下500m间隔和1000m间隔的区别。
500m距离间隔 1000m距离间隔
其余的我们保持默认,不作设置,点击运行,输出.nc文件保存在输出路径中,需要将其进行可视化。
【四】
工具箱中有时空立方体可视化,分别以2D和3D模式显示。下图是在2D模式显示点数量(左)和趋势(右)时空立方体(距离间隔设置的都不一样= =不要在意)右图可以看到在这一个月内,哪些区域是单车使用是属于增加趋势的,哪些是属于下降趋势的。
打开在3D模式下显示时空立方体工具,然后将生成的.nc文件设置为输入时空立方体,随即在地图中显示时空立方体。
其实拉大后看,这些柱子都是一个一个的立方体组成的,也就是前面时间步长间隔提到的的一个条柱有30个立方体。
然后,在左侧还会给出图表可视化,表示这一个月内每天的趋势变化
右键3D图层,打开属性-时间,通过设置时间戳可以显示动画。
录了一点,GIF太大了传不上了,我电脑还是个核显..做这种还是有些卡。
这只是最初的描述性统计性质的可视化,真正有用的是对分析结果进行可视化,也就是时空模式分析,就跟空间自相关连上啦,下次。
练习数据请后台回复【芝加哥】转发获取。
云盘资料群:一点规划云盘资料群