作者简介:谭旭(1983-),女,助理研究员,博士研究生.研究方向:行星数据处理技术.E-mail:tanxu@nao.cas.cn
为了改善算法研究过度依赖软件开发的现状,在月球探测数据处理工作中引入了科学工作流技术。首先,提出了一个改进的工作流元模型。该模型基于数据流建立处理过程,扩展了数据模型和过程模型。然后,对扩展后的数据模型和过程模型进行了设计:引入数据产品生成树,建立了数据之间的联系;对数据进行了封装和分层,便利了建模工作;基于有向无环图建立过程模型,特别是对于数学公式的描述,用语义建模替代图形化建模,降低了数学公式在有向无环图中建模的复杂性。最后,以嫦娥三号的数据预处理案例对模型进行了验证,结果表明该模型可以很好地解决探月工程数据预处理的灵活性问题。根据该模型研制的原型软件已在月球探测工程中得到了应用。
In order to adapt the characters in the data process of Lunar Exploration, the workflow technology is proposed to deal with the situation that research excessively depends on software development. Yet the data process of Lunar Exploration can not be represented by the current workflow process definition meta-models. An innovative extended workflow process definition meta-model is proposed with the data model and the process model. Base on that, the extended data model and process model are studied. The data relationship is established through product tree that data are encapsulated and layered in order to facilitate the modeling. To reduce the modeling complexity of the mathematical formulas using DAG, semantic modeling based on MathML is approached. The Data Processing on Chang'E-3 is used to verify the model. Results show that the flexibility in data pre-processing system of Lunar Exploration Project can be solved. Prototype software has already been used in Lunar Exploration.
由于月表特征的未知性和独特性, 其数据预处理具有一定的难度。现有数据预处理系统的开发主要是研究人员提供算法设计, 然后由软件开发人员根据其设计建立相应的处理程序。这种方式的弊端主要表现在:①科研人员作为算法的设计者和数据产品的使用者, 由于受限于软件开发语言或工具无法直接参与算法的实现, 对算法的更改依赖于软件开发人员, 降低了科研的效率; ②系统的灵活性差, 无法显示中间结果并进行后续的人工干预。
通过引入科学工作流技术[1, 2, 3]可以极大地改变这种效率低下的运行模式。文献[4, 5]利用科学工作流技术建立了Pegasus和Taverna工作流系统, 但是基于脚本编辑的工作流建模方式使得建模过程十分复杂, 而且不直观。文献[6, 7]建立的Kepler和Triana系统利用了图形化的建模方法, 这种方法可以表征具有较少任务组成的小型工作流, 对于含有大量数学公式的表述能力较差。由于目前工作流在模型和建模语言方面尚未形成统一标准, 因此人们目前更倾向于针对特定领域的需求研究开发相应的工作流模型和系统。例如面向虚拟天文台开发的C-SWF[8], 面向高分辨雷达卫星TerraSAR-X开发的地面数据处理系统[9], 另外该技术在对地观测系统中也得到了应用[10, 11]。
本文针对月球数据预处理的特点, 引入了科学工作流技术, 改进了传统的工作流过程定义元模型, 详细设计了数据模型和过程模型, 最后实现了一个原型系统, 并以嫦娥三号数据预处理为例验证了模型的合理性。
工作流元模型[12]是用来描述工作流模型内在联系及其属性的模型, 其核心是过程定义。工作流管理联盟(Workflow management coalition, WfMC)定义了一个工作流过程, 定义元模型通过活动、转换条件、角色、工作流相关数据、被调应用5类元素描述工作流的组成及逻辑关系[13]。该模型主要用于表达各活动之间的逻辑关系, 如顺序、并行、循环等, 适于描述具有稳定输入、输出的企业活动, 不适于表达由数据驱动的科学数据处理过程。
数学公式和处理算法是数据处理过程的两项主体, 不同于企业活动, 它们与数据产品之间存在对应关系, 并且其输入输出具有动态性。如何有效地对处理算法和数据间依赖关系进行组合, 使其直观地描述数学过程是科学工作流建模重点考虑的问题。本文在WfMC定义的5类元素基础上增加了数据产品生成树和数据产品两类元素, 用来建立产品和处理过程的对应关系, 另外细化了活动并将其扩展为过程模型, 如图1所示。
(1)数据模型包括数据产品、数据产品生成树和工作流相关数据3个元素。数据产品是数据处理的结果及其相关的辅助信息, 研究人员依赖数据产品获得科学发现。数据产品生成树用于表达数据产品之间的依赖关系, 该依赖关系反映了数据的处理过程, 因此, 通过数据产品生成树可以建立数据模型到过程模型的映射。工作流相关数据定义了数据处理过程用到的所有变量, 数据产品需要转换为工作流相关数据后才能被应用程序调用。
(2)过程模型即为产品从某一输入到输出的处理模型, 它包括控制逻辑(即顺序、循环、分支等)、数学公式以及由控制逻辑和数学公式组合得到的复杂的处理算法, 处理算法可调用相应的应用程序。过程模型包括输入端口和输出端口, 用于将输入的数据产品转换为工作流相关数据。
(1)数据产品生成树
目前多数工作流模型是基于过程活动建立的, 对于数据流的表示一般通过隐式(见图2中W1)或显式(见图2中W2)建立数据流图。其中A1~A3为过程活动。这两种模型适应于表达数据流与控制流一致或者非嵌套的工作流模型, 对复杂的工作流表达较弱。针对这一弱点, 本文引入了数据产品生成树概念, 基于数据流表达数据产品之间的关系。引入数据产品生成树后的工作流如W3, 具体定义如下:
式中:D为数据节点的集合, D={D1, D2, …, Dn}, Dn为数据产品节点和辅助数据节点; R为数据关系的集合, R={R1, R2, …, Rn}, 其中Rn=(Dj, Dk, Pn)为数据节点Dj指向数据节点Dk的连接弧, Dj为Dk的父节点; Pn为从Dj到Dk的处理过程模型; Pn=(Input, Output, Fp), Input为输入端口, Output为输出端口, Fp为输入到输出的数据处理过程。
(2)数据的封装
数据处理后获得的数据产品除了探测数据之外, 仪器本身的信息、目标点的信息以及所采用的处理模型的信息等也需要与探测数据一起呈现给用户, 这些信息的内容复杂多样, 要表达这类数据一个有效的解决方式是对其进行封装。
本文采用在国际深空探测领域内广泛推广的PDS4.0(Planetary data system)[14, 15]技术对数据进行封装, 其典型结构如图3所示。经过封装后的数据产品的内容主要包括观测数据、对观测数据的描述以及辅助信息3大类。
(3)数据的层次化设计
对数据分层有利于拆分复杂的工作流, 从而降低建模的难度。本文按照处理步骤将数据产品分为3级:0级数据是原始数据按照国际空间数据系统咨询委员会(CCSDS)标准进行信道方面的处理以及一些解包处理后生成的低级数据产品; 1级数据是在0级数据的基础上经物理量转换, 添加必要辅助信息、并以探测周期为单位进行组织的数据; 2级数据是对1级数据进行了系统校正、几何校正, 从而纠正了仪器造成的亮度误差和畸变, 是满足一定定位精度要求的高级数据产品, 由于2级数据处理复杂, 根据具体处理内容还可细分为2A级数据、2B级数据等。
过程模型主要包括数据处理算法和数学公式2类元素, 数学公式既可作为数据处理算法的子过程, 经过组合和封装后形成数据处理算法, 又可作为独立的过程进行表达。
为了与相关数据模型对应, 根据产品生成树的定义, 设计了两层结构的过程模型, 包括逻辑层和物理层(见图4)。逻辑层包括模型的输入输出端口, 用于处理数据产品和辅助数据到工作流操作数据的转换, 该层封装了物理层的处理过程, 处理过程的具体细节在该层是透明的; 物理层包括一些简单的工作流, 它们是对数学公式和处理算法的逻辑组合, 以及在简单工作流基础上建立的组合工作流, 产品数据在转换成工作流相关数据后通过变量在该层进行传递。
为了实现工作流的组合和封装, 更直观地表述数据处理流程, 对于数据处理逻辑, 本文基于有向无环图(Directed acycline graph, DAG)定义了3类基本的逻辑结构, 分别是顺序、循环和分支。
在传统的工作流技术中, 数学运算一般通过对基础算法打包成算法库的形式实现, 这种方式灵活性差, 且需要提供大量的算法库接口。本文用数学置标语言(Mathematical markup language, MathML)[16]实现了数学公式的语义表达。MathML是一种书写数学符号和公式的标记语言, 由于它本身是一种基于XML的语言, 可以与工作流过程模型很好地结合并嵌套, 并且得到了一些办公软件的支持, 如Microsoft office。本文通过使用MathML的表示型标记(Presentation markup)和内容型标记(Content markup)并行编码的方式(Parallel markup)表达数学公式, 使用户不必亲自书写编程语言的数学公式, 而用自然表达式代替。
嫦娥三号共搭载了8台载荷进行可见光波段探测。用于月表地形、地貌研究的载荷有全景相机(The panoramic camera, PCAM)、地形地貌相机(Terrain camera, TCAM)和降落相机(Landing camera, LCAM), 其数据预处理过程大致相似, 主要包括信道处理、提取有效载荷源包数据、暗电流校正、相对定标、绝对定标、几何定位、彩色复原等。根据处理内容的不同将数据产品分为0A级(信道处理)、0B级(提取有效载荷源包数据)、1级(物理量转换)、2A级(暗电流校正、相对定标、绝对定标)、2B级(几何定位)、2C级(彩色复原)数据产品。
传统的数据处理技术是将每个载荷每个级别的数据处理过程打包成为一个软件模块, 然后通过调度管理软件调用各软件模块, 以生产线的方式从原始数据开始逐级别处理并生成产品。该方式生产流程固定, 如果需要对某一算法进行改进, 需要重新编译软件替换原有模块, 且该工作只能由软件开发人员完成, 对软件开发工具和开发语言的熟悉程度直接影响了科研人员对算法的探索性研究。另外对于具有相似处理流程的载荷, 例如对上述的全景相机、地形地貌相机、降落相机, 其暗电流校正、相对定标处理算法相同, 只是输入输出数据的结构存在差异, 对这些载荷的数据处理如果分别开发其相应的软件模块也将大大增加开发的工作量。
本文以全景相机、地形地貌相机和降落相机为例, 建立了这三台载荷数据处理的工作流模型, 如图5所示。其中, D-MODEL是这3个载荷的数据产品生成树, 每个结点代表该载荷处理得到的产品数据, 划分为7层(含原始数据层)。在每一层建立父数据和子数据之间的处理模型P-MODELn。以2A级处理为例, 地形地貌相机和全景相机处理步骤相同, 只是数据格式存在差别, 因此只需建立一个处理模型即P-MODEL-2A。P-MODEL-2A包括3个部分:暗电流校正、相对定标和绝对定标。其中暗电流校正采用数学公式直接描述, Img_L2_S1(i, j)为经过暗电流扣除后的图像; Img_L1(i, j)为原始图像; DC(i, j)为暗电流数据。降落相机的处理过程不包括绝对定标, 因此降落相机的过程模型只需在P-MODEL-2A的基础上删除绝对定标步骤即可。
为了验证上述示例中各模块的功能, 本文实现了一个原型软件, 以嫦娥三号地形地貌相机于2013年12月15日拍摄的巡视器的图像数据处理为例, 应用该软件对P-MODEL-2A进行建模的过程如下:
(1)拖入流程图组件Flowchart作为过程模型P-MODEL-2A的容器, 如图6(a)所示, 在此组件内定义该过程模型的处理逻辑。
(2)读PDS标签作为模型的输入端口, 将输入的PDS数据的每一个数据项存储在变量中, 如图6(b)所示。
(3)暗电流的计算方法是根据地面定标的结果, 将星上采集到的图像DN值减去对应像元的暗电流值, 因此首先通过二进制矩阵输入组件加载地面定标的暗电流矩阵, 在属性栏中设置该矩阵的属性(见图6(c)), 将该矩阵存储在dark变量中。然后通过矩阵计算器计算出两矩阵相减后得到结果(见图6(d)), 在属性栏定义变量dark2a存储该结果。
(4)拖拽相对定标和绝对定标组件, 在属性栏中定义输入数据以及相对定标和绝对定标参数, 根据相对定标和绝对定标算法计算输出结果, 并存放在cal2a中。
(5)通过写PDS标签实现输出数据的封装, 定义需输出的信息(见图6(e))。
用同样的方法可实现地形地貌相机2B级和2C级的处理过程模型P-MODEL-2B和P-MODEL-2C。
图7显示了运行TCAM数据流后, 2级的处理结果以及中间结果, 其中图7(a)为未经任何校正的原始图像; 图7(b)为经过P-MODEL-2A中暗电流校正后的结果; 图7(c)为P-MODEL-2A全部运行后的结果; 图7(d)为经过2C级处理(将贝叶斯格式的图像复原为彩色图像)后的数据。从实际验证的结果可以看出, 建模示例中的各模块可完成预期的处理功能, 各模块的处理结果可便捷地进行输出和显示。
根据上述示例, 基于科学工作流技术建立的数据处理过程优点如下:①各算法组件可灵活地进行添加、删除, 并且处理过程可直接保存为基于XML的脚本, 下次使用时可直接载入, 例如, 降落相机的处理过程可直接在P-MODEL-2A基础上删除绝对定标步骤后另存为新模型, 这样既节省了资源, 又提高了开发效率。②便捷的系数的配置方式避免了重复修改程序。例如, 绝对定标是将图像归一化到设定的曝光时间和增益等条件下的过程, 而随着需求的变化, 曝光时间和增益的设置会发生变化, 传统的方式是直接在程序中定义设定的时间或通过配置文件定义, 通常需要重新编译程序或重新部署配置文件。通过该软件可以直接在属性栏设定参数, 设置过程直观且提高了工作效率。③可随时查看中间处理结果, 模型执行前可在某一步骤处设置断点, 并在断点前增加写PDS标签来输出PDS数据, 无需修改程序便可得到中间处理结果, 而传统的处理方式如果需要查看处理结果只能通过程序调试的方式输出中间数据。
针对月球数据预处理的特点, 对工作流管理联盟建立的工作流参考元模型进行了改进, 详细设计了数据模型和过程模型:①引入数据产品生成树, 建立了数据之间的联系; ②对数据进行了封装和分层, 便利了建模工作; ③基于有向无环图建立过程模型, 特别是对于数学公式的描述, 用语义建模替代图形化建模, 降低了数学公式在有向无环图中建模的复杂性。使该模型由原来的面向企业应用过程转变成为可以适用于月球探测数据处理过程的模型, 为实现一个灵活的工作流管理系统奠定了基础。为了验证模型的合理性和可行性, 本文实现了一个原型软件, 通过该原型软件可以对数据进行封装, 并且实现过程模型的建立。以嫦娥三号地形地貌相机、全景相机和降落相机数据预处理为例对软件的性能进行了验证, 结果表明, 研制的软件很好地解决了嫦娥三号数据预处理中流程的灵活配置、中间结果的可视化显示等问题, 使科研人员可以通过该软件方便地进行算法的设计和更改。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|