一种基于XML的遥感产品生产流程定制开发系统
技术领域
本发明涉及遥感产品技术领域,具体为一种基于XML的遥感产品生产流程定制开发系统。
背景技术
遥感影像在各行各业应用的比重逐年增长,用户量也随之增长,同时针对遥感产品生产的处理算法也逐年增多,算法复杂度也越来越高,随着国内遥感卫星行业的迅速发展,遥感影像形成的各类遥感产品也得到了广泛的应用,气象、环保、水利和国土等行业都离不开遥感产品的支撑;
现有技术中,为了实现各行业对遥感产品的不同需求,针对性的算法应运而生,现有技术存在部分缺陷:首先,由于算法的复杂性普遍较高,使用算法的人员技术能力参差不齐,对于一整套遥感产品的生产流程来说,传统使用C/S模型的生产模式效率不高,存在使用门槛高、灵活性差、局限性高等问题;其次,遥感影像生产过程中,很多处理算法都具有可复用性,只是输入数据存在差异,很多遥感数据处理流程中都由多个算法要素组成,无法解决同一个算法如何高效地被多次使用的问题。
所以,人们需要一种基于XML的遥感产品生产流程定制开发系统来解决上述问题。
发明内容
本发明的目的在于提供一种基于XML的遥感产品生产流程定制开发系统,以解决上述背景技术中提出的问题。
为了解决上述技术问题,本发明提供如下技术方案:一种基于XML的遥感产品生产流程定制开发系统,所述系统包括:基本组件模块、算法要素模块、产品流程模块、XML文件模块、XML更新模块、进度监控模块和定制方式调整模块;
在用户构造原子算法并对原子算法的所有参数进行配置时,通过所述基本组件模块集成不同类型的组件,用户通过操作对应类型的组件对算法的每个输入和输出参数进行配置;通过所述算法要素模块对遥感产品进行封装;通过所述产品流程模块匹配算法之间的输入或输出类型,并绘制连接线,生成产品生产流程;通过所述XML文件模块保存和解析XML结构,通过所述XML更新模块在用户修改界面上组件内容的同时更新XML结构;当用户构造完正确的遥感产品生产流程后,提交后台处理,通过所述进度监控模块实时获取后台处理进度;通过所述定制方式调整模块调整基本组件的放置方式,解决了现有技术中复杂算法无法进行逐个参数配置,以及产品生产流程执行进度无法实时获取的问题,提供了改进的XML结构,高效构造了生产流程,适应了多生产环境。
进一步的,所述基本组件模块集成的组件类型包括输入、输出、处理和控制组件,所述输入组件和输出组件包括数值组件、栅格组件、矢量组件、文件目录组件、文件路径组件和区域组件;所述处理组件包括算法组件和人机交互组件;所述控制组件指的是逻辑控制组件,用户通过操作对应组件对算法的每个输入和输出参数进行配置,并将配置的参数展示在可视化界面上,在绘制产品生产流程时,实时判断配置的参数,当上个算法的输出与下个算法的输入类型完全匹配时,完成正确生产流程的绘制,对原子算法的输入输出逐个自定义配置详细参数,并在各组件连接时进行实时判断和匹配,无论是数量还是组件类型都能够用对应算法动态构造,解决了现有技术中只有统一输入和输出的局限性问题。
进一步的,在绘制流程图时,判断所述输入组件是否连接到所述处理组件的上方,同时判断所述输出组件是否连接到所述处理组件的下方,若所述输入组件和所述输出组件未分别连接到所述处理组件的上方和下方,禁止连接对应组件,在拖动所述处理组件时,弹框显示算法或人机交互参数数量,用户在弹框中选择对应数量后点击确定,完成处理组件的操作,基本组件严格按照组件定义进行绘制,在连接节点不符合规则时会禁止连接,提高了平台上产品生产流程定制的规范性。
进一步的,通过所述算法要素模块将原子算法与原子算法组件图形进行对应,每个组件图形代表一个算法,所述组件图形的输入端口和输出端口由每个算法的XML信息构成,通过所述基本组件模块配置每个输入端口和输出端口,所述算法要素包括生产线算法和用户算法,所述生产线算法指的是遥感产品生产线提供的已完成参数配置的算法,所述用户算法指的是用户提供组件构造的原子算法。
进一步的,通过在输入框中输入关键字检索对应算法,通过点击算法后的加号将对应算法绘制到画布中,所述画布指的是绘制产品生产流程的主要操作区域,对应算法的参数详情配置在详情面板中进行。
进一步的,在用户修改界面上的组件内容时,通过所述XML更新模块更新XML结构,在用户完成界面操作时,通过所述XML文件模块保存XML结构,在用户需要查看XML结构时,通过所述XML文件模块将XML结构解析为可视化组件,在XML结构中预先存储所有原子算法信息和流程信息,用户通过手动添加标签信息和删除已添加的信息,用户对预先存储的信息没有修改和删除的权限,XML能够生成原子算法的信息,以及提取组件间的有向图拓扑关系,实现了自定义流程信息的可视化构造,XML模块采用了动态构造的方法,确保了开发人员在不同的生产环境下都能够使用XML文件。
进一步的,所述手动添加标签信息的方式为:在添加标签时,用户在预存储信息中选择要添加的信息,所述预存储信息包括流程信息、环境要求、适应数据和算法信息,用户自行设计标签项添加流程信息、环境要求和适应数据,当用户选择添加算法信息时,将算法信息分为:算法描述、算法输入和算法输出作为新的标签项供用户选择添加,由用户自行配置XML结构,实现了对各种环境的自适应性,解决了现有技术一套生产流程只能匹配单一生产系统的局限性问题。
进一步的,通过所述进度监控模块实时获取后台处理进度:进度分为:已提交、待处理、生产中和已完成状态,根据处理的情况实时更新状态,将生产中状态量化为百分比数值形式。
进一步的,通过所述定制方式调整模块调整基本组件的放置方式:在流程定制时,对流程定制页面进行建模:以流程定制页面为中心建立二维坐标系,对基本组件进行定位,获取到用户第一个已放置的组件的位置坐标为(X,Y),确认用户第二个放置的组件必须放置在第一个已放置的组件上方,以第一个已放置的组件为中心划分一个上半圆区域,上半圆的半径为r,获取到放置第二个组件的位置坐标为(X’,Y’),根据下列公式判断放置的第二个组件是否在第一个组件的上方:
其中,α表示第一个已放置的组件和第二个放置的组件组成的向量与垂直正方向的夹角,向量方向为:第一个已放置的组件指向第二个放置的组件,根据α的值判断放置的第二个组件是否在第一个组件的上方:若0°≤α<90°,判断放置的第二个组件在第一个组件的上方;否则,判断放置的第二个组件不在第一个组件的上方,当判断出放置的第二个组件不在第一个组件的上方时,提醒用户基本组件位置放置错误,基本组件有严格的绘制规则:输入组件只能连接到处理组件上方、输出组件只能连接到处理组件下方,在用户放置组件后,判断组件的位置是否符合连接规则,有利于及时提醒用户基本组件是否放置错误,帮助用户及时地调整组件放置位置。
进一步的,在用户放置基本组件前,获取到基本组件在流程定制页面上的默认位置坐标集合为(x,y)={(x1,y1),(x2,y2),…,(xn,yn)},其中,n表示基本组件数量,获取到对应用户以往在进行相同的流程定制时,习惯性放置对应组件的位置坐标集合为(x’,y’)={(x1’,y1’),(x2’,y2’),…,(xn’,yn’)},根据下列公式判断随机一个组件的放置位置与默认位置的映射关系:
其中,di表示用户习惯性放置的随机一个组件位置到默认位置的距离,βi表示用户习惯性放置的随机一个组件位置与默认位置的连线与水平正方向的夹角,得到用户习惯性放置的基本组件位置到默认位置的距离集合为d={d1,d2,…,dn},用户习惯性放置的基本组件位置到默认位置的连线与水平正方向的夹角集合为β={β1,β2,…,βn},在用户进行相同的流程定制时,在默认位置处点击基本组件时,控制基本组件自动移动到与默认位置有映射关系的位置处,当用户在默认位置处点击已放置的基本组件时,提醒用户核对是否需要重复放置相同的组件,若需要,控制基本组件移动到与已放置的相同组件的同一水平线上,组件与已放置的相同组件的距离为D,默认位置指的是基本组件放置前的位置,用户点击基本组件时,根据映射关系控制组件自动移动到映射的位置上,用户无需自行拖动基本组件,加快了流程定制的速度。
与现有技术相比,本发明所达到的有益效果是:
本发明通过基本组件模块对原子算法的输入输出逐个自定义配置详细参数,并在各组件连接时进行实时判断和匹配,由用户自行配置XML结构,解决了现有技术中只有统一输入和输出的局限性问题;通过动态构造XML文件的方式确保了开发人员在不同的生产环境下都能使用XML文件,提供了高效集成流程的能适应多生产环境的XML结构模式;通过进度监控模块实时获取流程处理的进度,保证用户能够随时查看到生产进度,解决了现有技术中产品生产流程执行进度无法及时获取的问题,同时,通过定制方式调整模块调整了基本组件的放置方式,分析用户在定制相同的流程时的行为数据,判断放置前后的对应组件的映射关系和相对位置,在定制相同流程、点击基本组件时,根据映射关系控制组件自动移动到映射的位置上,用户无需自行拖动基本组件,加快了流程定制的速度。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明一种基于XML的遥感产品生产流程定制开发系统的操作流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
请参阅图1,本发明提供技术方案:一种基于XML的遥感产品生产流程定制开发系统,系统包括:基本组件模块、算法要素模块、产品流程模块、XML文件模块、XML更新模块、进度监控模块和定制方式调整模块;
在用户构造原子算法并对原子算法的所有参数进行配置时,通过基本组件模块集成不同类型的组件,用户通过操作对应类型的组件对算法的每个输入和输出参数进行配置;通过算法要素模块对遥感产品进行封装;通过产品流程模块匹配算法之间的输入或输出类型,并绘制连接线,生成产品生产流程;通过XML文件模块保存和解析XML结构,通过XML更新模块在用户修改界面上组件内容的同时更新XML结构;当用户构造完正确的遥感产品生产流程后,提交后台处理,通过进度监控模块实时获取后台处理进度;通过定制方式调整模块调整基本组件的放置方式,原子算法指的是用户自定义输入输出个数以及各种参数的算法,能够根据用户配置的参数有针对性地处理各种遥感图像,用户直接通过使用浏览器来生成原子算法,或者直接利用已有算法来可视化创建产品生产流程。
基本组件模块集成的组件类型包括输入、输出、处理和控制组件,输入组件和输出组件包括数值组件、栅格组件、矢量组件、文件目录组件、文件路径组件和区域组件;处理组件包括算法组件和人机交互组件;控制组件指的是逻辑控制组件,用户通过操作对应组件对算法的每个输入和输出参数进行配置,并将配置的参数展示在可视化界面上,在绘制产品生产流程时,实时判断配置的参数,当上个算法的输出与下个算法的输入类型完全匹配时,完成正确生产流程的绘制。
在绘制流程图时,判断输入组件是否连接到处理组件的上方,同时判断输出组件是否连接到处理组件的下方,若输入组件和输出组件未分别连接到处理组件的上方和下方,禁止连接对应组件,在拖动处理组件时,弹框显示算法或人机交互参数数量,用户在弹框中选择对应数量后点击确定,完成处理组件的操作。
通过算法要素模块将原子算法与原子算法组件图形进行对应,每个组件图形代表一个算法,组件图形的输入端口和输出端口由每个算法的XML信息构成,通过基本组件模块配置每个输入端口和输出端口,算法要素包括生产线算法和用户算法,生产线算法指的是遥感产品生产线提供的已完成参数配置的算法,用户算法指的是用户提供组件构造的原子算法。
通过在输入框中输入关键字检索对应算法,通过点击算法后的加号将对应算法绘制到画布中,画布指的是绘制产品生产流程的主要操作区域,对应算法的参数详情配置在详情面板中进行。
在用户修改界面上的组件内容时,通过XML更新模块更新XML结构,在用户完成界面操作时,通过XML文件模块保存XML结构,在用户需要查看XML结构时,通过XML文件模块将XML结构解析为可视化组件,在XML结构中预先存储所有原子算法信息和流程信息,用户通过手动添加标签信息和删除已添加的信息,用户对预先存储的信息没有修改和删除的权限,传统的XML文件更新过程中,后端进行逐一解析然后再存到数据库中,更新速度得不到提高,在用户自行配置的字段越来越多时,XML文件结构会越来越复杂,加载的时间也会逐渐增长,XML更新模块采用微服务架构的技术搭建了标准化轻量级的微服务封装模型,形成了微服务封装框架,在框架中,对XML文件涉及到的服务进行封装,形成了标准化的接口规范,提高了XML在前后端交互的效率,满足了系统界面对于复杂XML文件解析的实时性,提高了系统更新XML的速度。
手动添加标签信息的方式为:在添加标签时,用户在预存储信息中选择要添加的信息,预存储信息包括流程信息、环境要求、适应数据和算法信息,用户自行设计标签项添加流程信息、环境要求和适应数据,当用户选择添加算法信息时,将算法信息分为:算法描述、算法输入和算法输出作为新的标签项供用户选择添加,新标签项的内容与原子算法的详细参数息息相关,在选择添加算法输入时,新标签的内容对应的是预先设计的输入参数名称、类型和数据类型中的一项,不同的生产系统对于流程XML处理的方式不尽相同,如果参数不足或者不准确,即使流程正确也无法驱动算法进行产品生产,由用户自行配置XML结构,实现了对各种环境的自适应性,能够有效解决现有技术中一套生产流程只能匹配单一生产系统的局限性问题。
通过进度监控模块实时获取后台处理进度:进度分为:已提交、待处理、生产中和已完成状态,根据处理的情况实时更新状态,将生产中状态量化为百分比数值形式,帮助用户详细了解产品生产中的具体进度。
通过定制方式调整模块调整基本组件的放置方式:在流程定制时,对流程定制页面进行建模:以流程定制页面为中心建立二维坐标系,对基本组件进行定位,获取到用户第一个已放置的组件的位置坐标为(X,Y),确认用户第二个放置的组件必须放置在第一个已放置的组件上方,以第一个已放置的组件为中心划分一个上半圆区域,上半圆的半径为r,获取到放置第二个组件的位置坐标为(X’,Y’),根据下列公式判断放置的第二个组件是否在第一个组件的上方:
其中,α表示第一个已放置的组件和第二个放置的组件组成的向量与垂直正方向的夹角,向量方向为:第一个已放置的组件指向第二个放置的组件,根据α的值判断放置的第二个组件是否在第一个组件的上方:若0°≤α<90°,判断放置的第二个组件在第一个组件的上方;否则,判断放置的第二个组件不在第一个组件的上方,当判断出放置的第二个组件不在第一个组件的上方时,提醒用户基本组件位置放置错误。
在用户放置基本组件前,获取到基本组件在流程定制页面上的默认位置坐标集合为(x,y)={(x1,y1),(x2,y2),…,(xn,yn)},其中,n表示基本组件数量,获取到对应用户以往在进行相同的流程定制时,习惯性放置对应组件的位置坐标集合为(x’,y’)={(x1’,y1’),(x2’,y2’),…,(xn’,yn’)},根据下列公式判断随机一个组件的放置位置与默认位置的映射关系:
其中,di表示用户习惯性放置的随机一个组件位置到默认位置的距离,βi表示用户习惯性放置的随机一个组件位置与默认位置的连线与水平正方向的夹角,得到用户习惯性放置的基本组件位置到默认位置的距离集合为d={d1,d2,…,dn},用户习惯性放置的基本组件位置到默认位置的连线与水平正方向的夹角集合为β={β1,β2,…,βn},在用户进行相同的流程定制时,在默认位置处点击基本组件时,控制基本组件自动移动到与默认位置有映射关系的位置处,当用户在默认位置处点击已放置的基本组件时,提醒用户核对是否需要重复放置相同的组件,若需要,控制基本组件移动到与已放置的相同组件的同一水平线上,组件与已放置的相同组件的距离为D。
实施例一:在流程定制时,对流程定制页面进行建模,以流程定制页面为中心建立二维坐标系,对基本组件进行定位,获取到用户第一个已放置的组件的位置坐标为(X,Y)=(6,8),确认用户第二个放置的组件必须放置在第一个已放置的组件上方,以第一个已放置的组件为中心划分一个上半圆区域,上半圆的半径为r=10,获取到放置第二个组件的位置坐标为(X’,Y’)=(10,10),根据公式
判断放置的第二个组件是否在第一个组件的上方:α=63°,0°≤α<90°,判断放置的第二个组件在第一个组件的上方,在用户放置基本组件前,获取到基本组件在流程定制页面上的默认位置坐标集合为(x,y)={(x1,y1),(x2,y2)}={(0,0),(1,1)},其中,n表示基本组件数量,获取到对应用户以往在进行相同的流程定制时,习惯性放置对应组件的位置坐标集合为(x’,y’)={(x1’,y1’),(x2’,y2’)}={(5,5),(10,10)},根据公式
和
判断随机一个组件的放置位置与默认位置的映射关系:d1=5√2,d2=9√2,β1=45°,β2=45°,在用户进行相同的流程定制时,在默认位置处点击基本组件时,控制基本组件自动移动到与默认位置有映射关系的位置处。
最后应说明的是:以上所述仅为本发明的优选实例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。