DatistEQ之拆分仪器状态数据

作者: 了无_数据科学 | 来源:发表于2021-01-31 23:06 被阅读0次

    在前文《DatistEQ之批量抽取仪器状态数据》中,介绍了如何从Excel的多个表单中批量提取仪器的状态数据。本文在此基础上,讲述拆分每一台仪器状态数据的方法。

    原始数据Excel文件,由多个表单构成,表单以天为单位保存了全省所有台站的仪器状态数据。

    原始数据表

    流程目标是将每台仪器的状态数据,以单个文件保存。

    输出结果

    难点:
    1、批量数据抽取,从多个表单中提取数据;
    2、构造多个变量组合循环体,涉及流程变量定义,ForEach、文件收集器节点应用等。
    3、按行保存文件流数据,需指定每个数据体的文件名称及路径。

    一、编制流程

    流程由读取数据、数据准备、构造循环和保存数据共四步构成。
    读取数据,使用Excel智能解析节点,抽取所有多个表单页中的数据,具体操作见前文,这里不再赘述。
    数据准备,创建Cid字段,为循环体构造循环数据;
    构造循环,通过ForEach循环,将数据分拆成以仪器为单位的数据,并生成Excel文件;
    保存数据,使用按行保存节点,批量将仪器运行状态Excel文件保存到磁盘中。

    数据流程

    二、数据准备

    数据准备,创建Cid字段,由台站、仪器、型号和分量共同构成,全省每一台的仪器的唯一编号。这里使用到了F函数,一个常用的字符串合并函数。与||连接符相比,F函数,通过{}引字段名称,可大幅度减少表达式中的代码工作量。

    ##创建仪器的唯一编号
    F("{台站名称}_{仪器名称}_{仪器型号}_{测项分量代码}")
    
    创建Cid字段 运行结果

    三、构造循环

    数据流中循环体构成,由ForEach节点和文件收集器节点共同完成,ForEach为循环的开始,指定循环变量及循环的内容;文件收集器表示循环体的结束,需在运行方式页中定义循环开始ForEach节点(若不指定,ForEach将无法构成循环,可参考《DatistEQ之数据流向解析》)。

    循环体

    ForEach节点编辑器中,意为:ForEach item In Cid,即从CId中取每个分组数据,分别运行循环体,运行结果由文件收集器节点合并后向后流转。

    定义变量

    在文件收集器的规则页中,定义生成的文件流Name字段的内容,这里以$Item与ForEach节点相互呼应。运行时ForEach节点,取一个仪器的编号,赋值给Item流程变量,文件收集器读取Item变量值,给文件数据体命名,如此重复...


    输出名称

    四、按行保存

    按行保存节点可将文件流保存为本地文件。需要注意的是存储路径栏,需要指定保存文件名称。可以使用公式编辑器右键菜单中的保存文件路径功能,快速创建路径字符串。

    创建路径

    该功能在创建文件路径过程中,会根据流程运行转义参数设置,自动生成不同的路径字符串。

    image.png

    文件流中有多个数据项,因而我们需要借助于F函数,创建每个保存文件的路径。


    按行保存

    运行流程,自动创建省内所有仪器的状态文件,单个文件运行状态见下图。


    仪器状态

    换一角度重新组织数据,在日常的研究过程中,最为常见。本文,以全省的仪器运行状态数据为例,给大家介绍的数据重新组织的数据读取、预处理、循环与保存的基本步骤,你Get到了嘛?

    相关文章

      网友评论

        本文标题:DatistEQ之拆分仪器状态数据

        本文链接:https://www.haomeiwen.com/subject/pitrtltx.html