DatistEQ之台站观测数据预处理
台站观测各个方向上观察数据,每分钟记录一个数据,一天产生24*60 = 1440个数据点,数据库每天存一条数据记录。一周存7条记录,包含 24 *60 *7 = 10080个数据点。以每天一条记录的方式存储,方便了数据的查询与传输,然而给数据的分析应用,带了极大的不便。单个记录的数据处理还相对容易,但对连续多天的数据同时处理,会是一个庞大的数据量,这对数据处理的效率是一个严重的挑战。
![](https://img.haomeiwen.com/i23192136/925ead3dfdc25565.png)
面对低效率的数据处理工作,我们通常可以把数据预处理和数据应用分开,预先把数据处理成易于分析应用的数据格式,为应用节省时间。也就是说,将整个的数据分析过程中,划分成多个阶段,把耗时长的任务预先做好,以提升耗时短的在线及时任务的效率。
如何将台站的观测数据,整理成时间序列的数据,以便分析应用呢?
方案A:
把每一个分量的数据分别筛选出来,然而将每天的数据辟分成多条记录,再以时间序号为关键字,合并关联在一起。
![](https://img.haomeiwen.com/i23192136/ffd1b29a2f763b95.png)
数据流中,数据筛选、辟分、创建时间比较关键:
- 选测项,通过数据筛选节点,每一次选取一个方向上的观测数据;
- 行数据辟分节点,将一天的观测数据辟分成1440条记录;
- 创建预测时间,在数据流中增加了一列数据,使用 AddMinutes函数,为每一个观测数据点,添加一条观测时间信息。
![](https://img.haomeiwen.com/i23192136/37c2fc0d2aa38f02.png)
2321的处理结果:
![](https://img.haomeiwen.com/i23192136/7e11d7409fec0839.png)
2322的处理结果:
![](https://img.haomeiwen.com/i23192136/d0bd42d38f0f7ef4.png)
最终用合并节点将它们组合起来。以时间序号为关键字,输出时,需要剔除大量的重复的字段。
![](https://img.haomeiwen.com/i23192136/3bc3ad414181cac8.png)
产出结果如下:
![](https://img.haomeiwen.com/i23192136/ffb6daf1cd747a4c.png)
方案B:
第二个方案,先将多个观测项的数据转换到列中,然再行数据辟分与时间序列计算工作。
![](https://img.haomeiwen.com/i23192136/4acc01166c4833d8.png)
![](https://img.haomeiwen.com/i23192136/27fa254e7d6ad8eb.png)
关键步骤在于汇总转列节点,以预测日期为分类项,将观测项编号翻转成字段,汇总转列前后数据变化,如下图所示。可以把汇总转列过程,理解为针对部分数据的行列转换。
![](https://img.haomeiwen.com/i23192136/2dcbc5fdda5cf8f6.png)
最终数据处理结果,与方案A相当。
![](https://img.haomeiwen.com/i23192136/8659a8dd66d8ae6a.png)
台站观测数据的预处理工作,可以有多种解决方案。方案A,比较容易理解,但使用的节点较多,相对费事;方案B,简单,然而汇总转列节点不易理解,掌握并灵活应用系统中的节点,将会达到易想不到的功效。
数据处理与应用是一个系统的工程,在实践中,可以将整个数据处理过程划分成若干个时间片。数据预处理与准备工作,在大型的项目应用中,是一个非常必要的工作。可将一个任务划分成若干个流程,在不同时间段运行不同的流程,以提升整个任务的工作效率。