CN111666157B - 一种面向地理空间影像数据的快速处理方法及系统 - Google Patents
一种面向地理空间影像数据的快速处理方法及系统 Download PDFInfo
- Publication number
- CN111666157B CN111666157B CN202010508819.4A CN202010508819A CN111666157B CN 111666157 B CN111666157 B CN 111666157B CN 202010508819 A CN202010508819 A CN 202010508819A CN 111666157 B CN111666157 B CN 111666157B
- Authority
- CN
- China
- Prior art keywords
- data
- module
- memory
- data processing
- service
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Processing (AREA)
Abstract
本发明公开了一种面向地理空间影像数据的快速处理系统,包括:数据工作流引擎构建模块,用于将数据的处理过程按照业务流程进行划分,封装成相互独立的业务模块,并按照影像数据处理的流程将业务模块进行组装,形成影像数据处理工作流引擎;数据处理任务模型构建模块,用于将各业务模块以可独立部署、运行的方式封装成任务,并引入容器编排技术,以可视化组装和在线发布的形式完成数据处理流水线的系统级实现;基于内存的数据处理加速模块,用于实现数据处理流程中的内存资源控制。本发明还提出了与系统对应的处理方法。本发明简化了数据处理操作,降低了数据处理系统的复杂度,提高了系统的灵活性和可复用性。
Description
技术领域
本发明涉及地理信息技术领域,具体涉及一种面向地理空间影像数据的快速处理方法及系统。
背景技术
传统的地理信息系统中,数据访问过程是根据客户端发起的请求实时生成目标区域的一张图片返回给客户端。但由于地理空间影像数据具有数据量大、结构复杂、处理成本高等特点,这种处理方式在实际应用中很快会面临性能瓶颈。此外,在低分辨率模式下访问某区域数据的过程中,提供更高分辨率的数据无法在视觉效果上带来有效的改善,相反地,会因为数据量过大而增加网络传输压力,进而带来较长的客户端响应延迟。因此,根据用户的不同需求提供不同分辨率的数据,才能在保证系统具有良好的视觉效果的前提下提高系统效率,降低响应延迟。
结合地理空间影像数据的海量、多源、异构等特点,业界提出一种影像瓦片化金字塔模型,即在服务端实现大规模的数据处理工作,包括数据校正、金字塔构建、图片压缩、结构化存储等,基于统一的时空基准,建立影像数据分辨率由低到高,数据量由小到大的统一影像尺寸的金字塔模型数据模型。在该金字塔模型中,瓦片为数据划分的最细粒度,随着层级增加,单张瓦片表示的地理范围逐渐减小,显示精度逐渐增加。在统一金字塔模型下,影像数据可按照一定的切分规则,生成分辨率由低到高的瓦片数据,并按照一定的组织规则进行存储。该组织规则可以在处理过程中屏蔽数据之间的结构差异,以统一的存储组织模型进行数据的持久化操作,并完成数据之间的相互融合。当用户进行数据访问时,根据用户请求的数据范围,选择与其相匹配的分辨率下的影像数据,并通过流式传输技术发送至客户端,从而在满足用户需求的前提下减轻网络传输压力。然而在大数据时代,新的问题也随之出现。由于地理信息产业的快速发展,现有的地理空间影像数据具有来源广泛、分类众多的特点。按照数据来源,可分为卫星影像、实景影像、无人机影像等,其中,卫星影像可分为光学影像、雷达影像、高光谱影像等,无人机影像又包括倾斜摄影影像、垂直摄影影像等。此外一部分商业数据,如谷歌影像、高德影像数据等,也是重要的数据来源之一。上述各类数据虽然在生产过程中已经进行了平差、校正、匹配等处理,但离通过信息系统进行大规模应用还具有较大的距离。同时伴随日益增加的地理空间影像数据的海量更新需求,数据更新缓慢、处理流程单一、灵活性较差等问题逐渐彰显,如何将多源异构的影像数据快速、灵活、有效地转化成标准的组织方式,减少数据装载到发布过程中的等待时间,已经成为地理信息平台服务端亟待解决的问题。
综上所述,目前在相关领域内缺少一种面向地理空间影像数据的通用处理工具和规范,各类处理系统仅面向本业务领域数据特点,无法满足种类繁多,体量巨大的地理空间影像数据通用化处理需求,系统可变更性和复用性极低。
发明内容
本发明的目的在于提供一种面向地理空间影像数据的快速处理方法及系统。
实现本发明目的的技术解决方案为:一种面向地理空间影像数据的快速处理系统,包括:
数据工作流引擎构建模块,用于将数据的处理过程按照业务流程进行划分,封装成相互独立的业务模块,并按照影像数据处理的流程将业务模块进行组装,形成影像数据处理工作流引擎;
数据处理任务模型构建模块,用于将各业务模块以可独立部署、运行的方式封装成任务,并引入容器编排技术,以可视化组装和在线发布的形式完成数据处理流水线的系统级实现;
基于内存的数据处理加速模块,用于实现数据处理流程中的内存资源控制,减少内存碎片的产生,提高内存使用效率,在资源层加快数据处理速度。
进一步的,所述数据工作流引擎构建模块包括业务模块划分模块、工作流引擎的构建模块、工作流引擎的数据交换模块和工作流引擎的数据协同模块四部分,其中:
业务模块划分模块,用于将影像数据按照处理流程进行拆分成多个功能完整、互相之间功能解耦的业务逻辑,并按照统一的输入、输出要求封装成独立的业务模块,包括数据标准化处理模块、瓦片化切分模块、瓦片图像压缩模块、异步批量存储模块;
工作流引擎的构建模块,用于将封装的业务模块按照影像数据处理的流程进行结构化组装,封装成影像数据处理工作流引擎,影像数据在影像数据处理工作流引擎中,依次经过数据标准化处理模块、瓦片化切分模块、瓦片图像压缩模块的处理生成瓦片图像,最终经过异步存储模块的处理将瓦片图像存放在分布式存储中;
工作流引擎的数据交换模块,用于影像数据的数据流在各模块中的流转,即使用内存缓冲区作为工作流引擎的中各业务模块进行数据交换的载体,各业务模块从中读取数据进行处理,并将处理后的数据重新放入;
工作流引擎的数据协同模块,用于对各功能模块的数据读写过程进行控制,即在业务模块对环形数组的读写前进行协同条件判断,当业务模块对环形数组的读写地址满足数据协同条件时,业务模块可以正常进行数据读写,否则需要等待,直至符合条件,以保证数据可以全部得到处理且不会重复。
更进一步的,所述引擎构建模块采用单线程写入模式以及内存屏障实现无锁状态下各业务模块的线程安全,输入的数据能够在业务模块的多个实例中进行并行处理。
更进一步的,所述数据协同模块的协同条件包括:读取地址必须小于写入地址,即只能读取已写入的数据;读取地址必须小于在工作流中位于其前端的业务模块的读取地址,即只能读取上游的业务模块处理过的数据;写入地址必须小于读取的地址,即只能在已读取过的位置写入,从而避免写入速度过快,使得数据还未读取就被覆盖。
进一步的,所述数据处理任务模型构建模块包括业务模块的任务模型创建模块、数据处理流水线组装模块、数据处理流水线部署模块和数据处理流水线资源回收模块四个部分,其中:
业务模块的任务模型创建模块,用于对数据工作流引擎构建模块划分的各业务模块进行进一步拆分,将各业务模块之间的逻辑调用方式设置为远程调用的方式,并将业务模块封装成可独立运行的软件;然后制作服务启动脚本,配置脚本启动参数,利用容器技术制作服务镜像;将业务服务之间、服务与数据资源之间的依赖关系进行抽象化处理,形成依赖拓扑;最后将依赖拓扑、资源配置、服务镜像在可视化的容器管理平台中组装为平台可部署运行的任务模型;
数据处理流水线组装模块,用于将各业务对应的任务模型添加至可视化的容器管理平台中的工作流组装工作空间,通过点击依次连接数据标准化处理任务模型、瓦片化切分任务模型、图像压缩任务模型和异步存储任务模型,形成数据处理流水线;
数据处理流水线部署模块,用于配置流水线上的各个任务模型的运行参数,包括任务名称、并行数、CPU、内存;设置工作流模型部署方式,并按照工作流方向依次启、停任务模型,从而完成数据处理流水线的启停。
数据处理流水线资源回收模块,用于在数据处理过程结束后进行资源回收,删除任务模型节点,释放业务模型占用的数据库连接、CPU、内存。
进一步的,所述基于内存的数据处理加速模块包括中间数据存储模块、内存管理模块、缓存数据管理模块三个部分,其中:
中间数据存储模块,用于使用直接内存对处理过程中产生的瓦片数据及中间数据进行存储,以减少直接内存与堆内存之间的数据拷贝,加快数据访问速度,在直接内存缓存对象使用结束时,手动释放该缓存;
内存管理模块,用于使用内存池对直接内存进行创建、复用和销毁管理,即根据内存池的配置预先创建一定数量的直接内存缓存对象,并根据数据处理过程中产生的中间数据的大小分配统一内存尺寸,在需要存储数据时从内存池中获取内存对象,数据使用结束后向内存池中归还内存对象,以达到资源复用、减少对象创建和销毁过程开销的目的;
缓存数据管理模块,用于使用环形数组对存储了数据的内存对象进行管理,即在初始化过程中确定环形数组的大小,并以此为依据预先分配内存并初始化对应元素,以避免在节点添加和删除过程中进行频繁的垃圾回收;在环形数组中存储对缓存数据的引用,通过获取读取、写入地址来实现对数组中缓存数据的读写访问;对环形数组读、写过程中,需要依照协同规则对各模块的数据读写过程进行控制,保证缓存数据可以全部被读取且不会重复。
一种面向地理空间影像数据的快速处理方法,包括如下步骤:
构建数据工作流引擎:将数据的处理过程按照业务流程进行划分,封装成相互独立的业务模块,并按照影像数据处理的流程将业务模块进行组装,形成影像数据处理工作流引擎;
构建数据处理任务模型:将各业务模块以可独立部署、运行的方式封装成任务,并引入容器编排技术,以可视化组装和在线发布的形式完成数据处理流水线的系统级实现;
基于内存的数据处理加速:通过内存优化技术,实现数据处理流程中的内存资源控制,以减少内存碎片的产生,提高内存使用效率,在资源层加快数据处理速度。
进一步的,所述构建数据工作流引擎包括业务模块划分、工作流引擎的构建、工作流引擎的数据交换和工作流引擎的数据协同四部,具体实施步骤如下:
(1)业务模块划分
将影像数据按照处理流程进行拆分成多个功能完整、互相之间功能解耦的业务逻辑,并按照统一的输入、输出要求封装成独立的业务功能模块,包括:数据标准化处理模块、瓦片化切分模块、瓦片图像压缩模块、异步批量存储模块;
(2)工作流引擎的构建
将(1)中封装的业务模块按照影像数据处理的流程进行结构化组装,封装成影像数据处理工作流引擎,影像数据在影像数据处理工作流引擎中,依次经过数据标准化处理模块、瓦片化切分模块、图像压缩模块的处理生成瓦片图像,最终经过异步存储模块的处理将瓦片图像存放在分布式存储中;
(3)工作流引擎的数据交换
对按照(2)中方法进行组装的业务模块,使用内存缓冲区作为工作流引擎的中各业务模块进行数据交换的载体,各业务模块从中读取数据进行处理,并将处理后的数据重新放入;
工作流引擎的数据协同
对(3)中各业务模块在内存缓冲区的数据读写过程进行控制,在业务模块对环形数组的读写前进行协同条件判断,当业务模块对环形数组的读写地址满足数据协同条件时,业务模块可以正常进行数据读写,否则需要等待,直至符合条件,以保证数据能够全部得到处理且不会重复。
进一步的,所述构建数据处理任务模型包括业务模块的任务模型创建、数据处理流水线组装、数据处理流水线部署和数据处理流水线资源回收等四个部分,具体实施步骤如下:
(1)业务模块的任务模型创建
先将各业务模块进一步拆分,将各业务模块之间的逻辑调用方式设置为远程调用的方式,并将业务模块封装成可独立运行的软件;然后制作服务启动脚本,配置脚本启动参数,利用容器技术制作服务镜像;将业务服务之间、服务与数据资源之间的依赖关系进行抽象化处理,形成依赖拓扑;最后将依赖拓扑、资源配置、服务镜像在可视化的容器管理平台中组装为平台可部署运行的任务模型;
(2)数据处理流水线组装
先将各业务对应的任务模型添加至可视化的容器管理平台中的工作流组装工作空间;按各业务模块的组装次序,在容器管理平台中的工作流组装工作空间中,通过点击依次连接数据标准化处理任务模型、瓦片化切分任务模型、图像压缩任务模型和异步存储任务模型,完成系统级的工作流引擎组装,形成数据处理流水线;
(3)数据处理流水线部署
配置(2)中流水线上的各个任务模型的运行参数,包括任务名称、并行数、CPU、内存;设置工作流模型部署方式,并按照工作流方向依次启、停任务模型,从而完成数据处理流水线的启停;
(4)数据处理流水线资源回收
在数据处理过程结束后进行资源回收,包括删除任务模型节点,释放业务模型占用的数据库连接、CPU、内存。
进一步的,所述基于内存的数据处理加速包括使用直接内存进行中间数据存储、使用内存池进行内存管理和使用环形数组进行缓存数据管理三个部分,具体实施步骤如下:
(1)使用直接内存进行中间数据存储
对于处理过程中产生的瓦片数据及中间数据,使用直接内存缓存进行存储,以减少直接内存与堆内存之间的数据拷贝,加快数据访问速度,在直接内存缓存对象使用结束时,释放该缓存;
(2)使用内存池进行内存管理
利用池化技术对(1)中描述的直接内存进行创建、复用和销毁等管理,以达到资源复用、减少对象创建和销毁过程开销的目的,即根据内存池的配置预先创建一定数量的直接内存缓存对象,并根据数据处理过程中产生的中间数据的大小分配统一内存尺寸;在需要存储数据时从内存池中获取内存对象,数据使用结束后向内存池中归还内存对象,使之可以被重复使用;
(3)使用环形数组进行缓存数据管理
对(1)中存储了数据的内存对象进行管理,即在环形数组中存储对缓存数据的引用,通过获取读取、写入地址来实现对数组中缓存数据的读写访问;在初始化过程中确定环形数组的大小,并以此为依据预先分配内存并初始化对应元素,以避免在节点添加和删除过程中进行频繁的垃圾回收;对环形数组读、写过程中,依照协同规则对各模块的数据读写过程进行控制,以保证缓存数据可以全部被读取且不会重复。
本发明与现有技术相比,其显著优点为:1)提出了全流程的地理空间影像数据的高效处理机制,通过对数据处理流程的标准化抽取,简化了数据处理操作,降低数据处理系统的复杂度;2)提出了规范化的任务模型,实现了对不同数据的差异化处理方法的规范化封装,提高系统的灵活性和可复用性。
附图说明
图1为本发明地理空间影像数据的快速处理系统的整体结构图。
图2是数据处理工作流引擎结构图。
图3是数据处理任务模型结构图。
图4是数据处理流水线组装流程图。
图5是基于内存的数据处理加速技术结构图。
图6是影像数据在使用GeoServer和本发明提出的系统中处理后的显示效果对比。
具体实施方式
下面结合附图和具体实施例,对本发明方案作进一步详细描述。
一种地理空间影像数据的快速处理系统的结构如图1所示,包括3个主要技术,分别是数据工作流引擎技术,数据处理任务模型技术和基于内存的数据处理加速技术。
A数据工作流引擎技术,是面向地理空间影像数据处理流程所建立的抽象模型的构建方法。将数据的处理过程按照业务流程进行划分,封装成相互独立的业务模块,并按照影像数据处理的流程将业务模块进行结构化组装,形成影像数据处理工作流引擎。数据工作流引擎模块包括业务模块划分、工作流引擎的构建、工作流引擎的数据交换和工作流引擎的数据协同四部分。结构如图2所示,具体实施步骤如下:
(1)业务模块划分
将影像数据按照处理流程进行拆分成多个功能完整、互相之间功能解耦的业务逻辑,并按照统一的输入、输出要求封装成独立的业务功能模块。主要包括:数据标准化处理模块、瓦片化切分模块、瓦片图像压缩模块、异步批量存储模块,其中:
数据标准化处理模块的功能是基于统一时空基准等要求对数据进行检测和校正。在此模块中,使用影像处理工具库进行数据标准化检测,对于不符合空间基准要求的数据进行坐标系转换,并对存在无效值的像素进行透明化处理,最终生成具有统一时空基准的、有效的影像数据。
瓦片化切分模块的功能是通过读取数据分辨率和覆盖范围,基于统一瓦片存储模型计算生成数据的瓦片金字塔。在此模块中,瓦片存储模型按照四叉树结构进行组织,采用经纬网作为瓦片划分划分标准,覆盖的经度范围为西经180°至东经180°,纬度范围为北纬90°至南纬90°,层级从0到n,其中0级有2张瓦片,可以认为是2个根节点。通过建立影像数据的地理范围和影像数据的像素坐标的映射关系,按照瓦片金字塔的迭代顺序,依次读取与瓦片位置对应的影像数据,并进行重采样,生成具有统一尺寸的瓦片数据。
图像压缩模块的功能是对瓦片数据进行透明度检测,并将瓦片数据压缩成JPEG或者PNG格式的瓦片图像。在图像压缩模块中,使用图像处理工具库对瓦片数据的四条边线、两条对角线以及两条中线上像素的值进行判断来确定图像的透明度,并以此作为依据将瓦片数据压缩成瓦片图像。不透明、半透明的瓦片数据将分别压缩为JPEG和PNG格式图像,从而减轻存储数据量和网络带宽。
异步存储模块的功能是从缓存中批量读取压缩后的瓦片图像数据,并将其存储到分布式存储中。在异步存储模块中,通过监听的形式对内存中的瓦片数量进行检测,当满足入库要求时,将瓦片从缓存中读取,并调用分布式存储的异步批量存储接口,实现瓦片数据的异步批量存储。
(2)工作流引擎的构建
工作流引擎的构建,是将(1)中封装的业务模块按照影像数据处理的流程进行结构化组装,封装成影像数据处理工作流引擎。
工作流引擎中,不同的业务模块按照数据流的方向依次处理数据。一幅影像数据在影像数据处理工作流引擎中,依次经过数据标准化处理模块、瓦片化切分模块、图像压缩模块等的处理生成瓦片图像,最终经过异步存储模块的处理瓦片图像被存放在分布式存储中。
工作流引擎中的各业务模块,采用单线程写入模式以及内存屏障等实现无锁状态下的线程安全,提高并行处理能力。输入的数据可以业务模块的多个实例中进行并行处理,从而提高处理效率。
通过资源监控工具对工作流引擎中各模块及各实例进行数据处理时的资源情况、运行状态以及时间消耗进行监控分析,并以此为依据调整数据处理过程中各业务模块的并行数量。
(3)工作流引擎的数据交换
工作流引擎的数据交换,是对(2)中的基于工作流引擎的业务模块组装方法中,影像数据的数据流在各模块中的流转形式的说明。
为便于业务模块的组装,各业务模块的输入、输出的内容应封装为统一的数据结构。
使用内存缓冲区作为工作流引擎的中各业务模块进行数据交换的载体,各业务模块从中读取数据进行处理,并将处理后的数据重新放入。
(4)工作流引擎的数据协同
在(3)中提出的内存缓冲区的读、写过程中,需要依照一定的协同规则对各模块的数据读写过程进行控制,保证数据可以全部得到处理且不会重复。工作流引擎的数据协同,是基于协同规则的读写控制过程进行的说明。
实现数据协同,需要在业务模块对环形数组的读写前进行协同条件判断。当业务模块对环形数组的读写地址满足数据协同条件时,业务模块可以正常进行数据读写,否则需要等待,直至符合条件。
协同条件包括:读取地址必须小于写入地址,即只能读取已写入的数据;读取地址必须小于在工作流中位于其前端的业务模块的读取地址,即只能读取上游的业务模块处理过的数据;写入地址必须小于读取的地址,即只能在已读取过的位置写入,从而避免写入速度过快,使得数据还未读取就被覆盖。
B、数据处理任务模型技术,是对A中提出的工作流引擎的系统化实现。将A中描述的各业务模块以可独立部署、运行的方式封装成任务,并引入容器编排技术,以可视化组装和在线发布的形式完成数据处理流水线的系统级实现。数据处理任务模型技术包括业务模块的任务模型创建、数据处理流水线组装、数据处理流水线部署和数据处理流水线资源回收等四个部分,其结构和实现过程如图3-4所示。实施步骤如下:
(1)业务模块的任务模型创建
将A(1)中描述的各业务模块进一步拆分,将各业务模块之间的逻辑调用方式由本地接口调用改为远程调用的方式,并将业务模块封装成可独立运行的软件。
制作服务启动脚本,配置脚本启动参数,利用容器技术制作服务镜像。
将业务服务之间、服务与数据资源之间的依赖关系进行抽象化处理,形成依赖拓扑。
将依赖拓扑、资源配置、服务镜像在可视化的容器管理平台中组装为平台可部署运行的任务模型。
(2)数据处理流水线组装
数据处理流水线组装是按照A(2)中的工作流引擎的构建方法,将(1)中创建的任务模型组装成系统级的工作流引擎,形成数据处理流水线。
将各业务对应的任务模型添加至可视化的容器管理平台中的工作流组装工作空间。
按照A(2)描述的各业务模块的组装次序,在容器管理平台中的工作流组装工作空间中,通过点击依次连接数据标准化处理任务模型、瓦片化切分任务模型、图像压缩任务模型和异步存储任务模型,形成数据处理流水线。
(3)数据处理流水线部署
配置(2)中流水线上的各个任务模型的运行参数,如任务名称、并行数、CPU、内存等。
设置工作流模型部署方式,并按照工作流方向依次启、停任务模型,从而完成数据处理流水线的启停。
(4)数据处理流水线资源回收
数据处理流水线在数据处理过程结束后,需要进行资源回收。主要包括:工作流处理完毕后自动删除任务模型节点;进行资源回收,释放业务模型占用的数据库连接、CPU、内存等资源。
C、基于内存的数据处理加速技术,是对A中的数据处理工作流引擎技术在具体实现过程中的内存优化技术。通过内存优化技术,实现数据处理流程中的内存资源控制,减少内存碎片的产生,提高内存使用效率,可以在资源层加快数据处理速度。基于内存的数据处理加速方法,主要包括使用直接内存进行中间数据存储、使用内存池进行内存管理和使用环形数组进行缓存数据管理三个部分。实施步骤如下:
(1)使用直接内存进行中间数据存储
对于处理过程中产生的瓦片数据及中间数据,使用直接内存缓存进行存储,减少直接内存与堆内存之间的数据拷贝,加快数据访问速度。直接内存缓存对象使用结束时,手动释放该缓存。
(2)使用内存池进行内存管理
使用内存池进行内存管理是利用池化技术对(1)中描述的直接内存进行创建、复用和销毁等管理,以达到资源复用、减少对象创建和销毁过程开销的目的。
使用内存池进行内存管理,需要将直接内存对象封装成可池化的对象,并实现对象在创建、租用、归还、销毁等过程中的处理方法。
根据内存池的配置预先创建一定数量的直接内存缓存对象,并根据数据处理过程中产生的中间数据的大小分配统一内存尺寸,可以减少(1)中创建、释放直接内存缓存所带来的时间消耗,并避免内存碎片产生。
在需要存储数据时从内存池中获取内存对象,数据使用结束后向内存池中归还内存对象,使之可以被重复使用。
使用资源监控工具对内存池各项指标进行周期性采样,监控内存池使用状况,并以此为依据进行内存池配置及管理。
(3)使用环形数组进行缓存数据管理
使用环形数组进行缓存数据管理,是针对(1)中存储了数据的内存对象,在使用过程中进行的有效管理。
在环形数组中存储对缓存数据的引用,通过获取读取、写入地址来实现对数组中缓存数据的读写访问。环形数组的大小在初始化过程中确定,并以此为依据预先分配内存并初始化对应元素,可以避免在节点添加和删除过程中进行频繁的垃圾回收。
对环形数组读、写过程中,需要依照一定的协同规则对各模块的数据读写过程进行控制,保证缓存数据可以全部被读取且不会重复。基于协同规则的读写控制过程的实现方法同A(4)。
如图6所示,(a)和(b)分别是将地理空间影像数据在开源的WebGIS系统——GeoServer和本发明提出的系统中处理后的显示效果。根据结果对比,经过GeoServer处理的数据,在低于其分辨率进行显示时,存在明显的图像噪声;在本发明提出的系统中,由于在数据标准化处理模块中构建了内部的缩略图,因此低分辨率条件下也不存在明显的噪声,同样具有良好的显示效果。
对比了使用GeoServer和本发明提出的系统中进行影像数据处理的时间,如表1所示。可以看出,对于处理同一批影像数据,GeoServer的单任务和多任务模式下,处理时间分别是632秒和276秒,原影像数据处理过程所需时间为505秒,本发明提出的系统所需处理时间为31秒。综上所述,本系统在影像数据处理效率上具有明显的优势,在工程应用中能够实现大规模影像数据的快速更新迭代,具有较强的可操作性和实用价值。
表1影像数据在使用GeoServer和本发明提出的系统中的处理时间对比表
Claims (10)
1.一种面向地理空间影像数据的快速处理系统,其特征在于,包括:
数据工作流引擎构建模块,用于将数据的处理过程按照业务流程进行划分,封装成相互独立的业务模块,并按照影像数据处理的流程将业务模块进行组装,形成影像数据处理工作流引擎;
数据处理任务模型构建模块,用于将各业务模块以可独立部署、运行的方式封装成任务,并引入容器编排技术,以可视化组装和在线发布的形式完成数据处理流水线的系统级实现;
基于内存的数据处理加速模块,用于实现数据处理流程中的内存资源控制,减少内存碎片的产生,提高内存使用效率,在资源层加快数据处理速度。
2.根据权利要求1所述的面向地理空间影像数据的快速处理系统,其特征在于,所述数据工作流引擎构建模块包括业务模块划分模块、工作流引擎的构建模块、工作流引擎的数据交换模块和工作流引擎的数据协同模块四部分,其中:
业务模块划分模块,用于将影像数据按照处理流程进行拆分成多个功能完整、互相之间功能解耦的业务逻辑,并按照统一的输入、输出要求封装成独立的业务模块,包括数据标准化处理模块、瓦片化切分模块、瓦片图像压缩模块、异步批量存储模块;
工作流引擎的构建模块,用于将封装的业务模块按照影像数据处理的流程进行结构化组装,封装成影像数据处理工作流引擎,影像数据在影像数据处理工作流引擎中,依次经过数据标准化处理模块、瓦片化切分模块、瓦片图像压缩模块的处理生成瓦片图像,最终经过异步存储模块的处理将瓦片图像存放在分布式存储中;
工作流引擎的数据交换模块,用于影像数据的数据流在各模块中的流转,即使用内存缓冲区作为工作流引擎的中各业务模块进行数据交换的载体,各业务模块从中读取数据进行处理,并将处理后的数据重新放入;
工作流引擎的数据协同模块,用于对各功能模块的数据读写过程进行控制,即在业务模块对环形数组的读写前进行协同条件判断,当业务模块对环形数组的读写地址满足数据协同条件时,业务模块可以正常进行数据读写,否则需要等待,直至符合条件,以保证数据可以全部得到处理且不会重复。
3.根据权利要求2所述的面向地理空间影像数据的快速处理系统,其特征在于,所述引擎构建模块采用单线程写入模式以及内存屏障实现无锁状态下各业务模块的线程安全,输入的数据能够在业务模块的多个实例中进行并行处理。
4.根据权利要求2所述的面向地理空间影像数据的快速处理系统,其特征在于,所述数据协同模块的协同条件包括:读取地址必须小于写入地址,即只能读取已写入的数据;读取地址必须小于在工作流中位于其前端的业务模块的读取地址,即只能读取上游的业务模块处理过的数据;写入地址必须小于读取的地址,即只能在已读取过的位置写入,从而避免写入速度过快,使得数据还未读取就被覆盖。
5.根据权利要求1所述的面向地理空间影像数据的快速处理系统,其特征在于,所述数据处理任务模型构建模块包括业务模块的任务模型创建模块、数据处理流水线组装模块、数据处理流水线部署模块和数据处理流水线资源回收模块四个部分,其中:
业务模块的任务模型创建模块,用于对数据工作流引擎构建模块划分的各业务模块进行进一步拆分,将各业务模块之间的逻辑调用方式设置为远程调用的方式,并将业务模块封装成可独立运行的软件;然后制作服务启动脚本,配置脚本启动参数,利用容器技术制作服务镜像;将业务服务之间、服务与数据资源之间的依赖关系进行抽象化处理,形成依赖拓扑;最后将依赖拓扑、资源配置、服务镜像在可视化的容器管理平台中组装为平台可部署运行的任务模型;
数据处理流水线组装模块,用于将各业务对应的任务模型添加至可视化的容器管理平台中的工作流组装工作空间,通过点击依次连接数据标准化处理任务模型、瓦片化切分任务模型、图像压缩任务模型和异步存储任务模型,形成数据处理流水线;
数据处理流水线部署模块,用于配置流水线上的各个任务模型的运行参数,包括任务名称、并行数、CPU、内存;设置工作流模型部署方式,并按照工作流方向依次启、停任务模型,从而完成数据处理流水线的启停;
数据处理流水线资源回收模块,用于在数据处理过程结束后进行资源回收,删除任务模型节点,释放业务模型占用的数据库连接、CPU、内存。
6.根据权利要求1所述的面向地理空间影像数据的快速处理系统,其特征在于,所述基于内存的数据处理加速模块包括中间数据存储模块、内存管理模块、缓存数据管理模块三个部分,其中:
中间数据存储模块,用于使用直接内存对处理过程中产生的瓦片数据及中间数据进行存储,以减少直接内存与堆内存之间的数据拷贝,加快数据访问速度,在直接内存缓存对象使用结束时,手动释放该缓存;
内存管理模块,用于使用内存池对直接内存进行创建、复用和销毁管理,即根据内存池的配置预先创建一定数量的直接内存缓存对象,并根据数据处理过程中产生的中间数据的大小分配统一内存尺寸,在需要存储数据时从内存池中获取内存对象,数据使用结束后向内存池中归还内存对象,以达到资源复用、减少对象创建和销毁过程开销的目的;
缓存数据管理模块,用于使用环形数组对存储了数据的内存对象进行管理,即在初始化过程中确定环形数组的大小,并以此为依据预先分配内存并初始化对应元素,以避免在节点添加和删除过程中进行频繁的垃圾回收;在环形数组中存储对缓存数据的引用,通过获取读取、写入地址来实现对数组中缓存数据的读写访问;对环形数组读、写过程中,需要依照协同规则对各模块的数据读写过程进行控制,保证缓存数据可以全部被读取且不会重复。
7.一种面向地理空间影像数据的快速处理方法,其特征在于,包括如下步骤:
构建数据工作流引擎:将数据的处理过程按照业务流程进行划分,封装成相互独立的业务模块,并按照影像数据处理的流程将业务模块进行组装,形成影像数据处理工作流引擎;
构建数据处理任务模型:将各业务模块以可独立部署、运行的方式封装成任务,并引入容器编排技术,以可视化组装和在线发布的形式完成数据处理流水线的系统级实现;
基于内存的数据处理加速:通过内存优化技术,实现数据处理流程中的内存资源控制,以减少内存碎片的产生,提高内存使用效率,在资源层加快数据处理速度。
8.根据权利要求7所述的面向地理空间影像数据的快速处理方法,其特征在于,所述构建数据工作流引擎包括业务模块划分、工作流引擎的构建、工作流引擎的数据交换和工作流引擎的数据协同四步,具体实施步骤如下:
(1)业务模块划分
将影像数据按照处理流程进行拆分成多个功能完整、互相之间功能解耦的业务逻辑,并按照统一的输入、输出要求封装成独立的业务功能模块,包括:数据标准化处理模块、瓦片化切分模块、瓦片图像压缩模块、异步批量存储模块;
(2)工作流引擎的构建
将(1)中封装的业务模块按照影像数据处理的流程进行结构化组装,封装成影像数据处理工作流引擎,影像数据在影像数据处理工作流引擎中,依次经过数据标准化处理模块、瓦片化切分模块、图像压缩模块的处理生成瓦片图像,最终经过异步存储模块的处理将瓦片图像存放在分布式存储中;
(3)工作流引擎的数据交换
对按照(2)中方法进行组装的业务模块,使用内存缓冲区作为工作流引擎的中各业务模块进行数据交换的载体,各业务模块从中读取数据进行处理,并将处理后的数据重新放入;
(4)工作流引擎的数据协同
对(3)中各业务模块在内存缓冲区的数据读写过程进行控制,在业务模块对环形数组的读写前进行协同条件判断,当业务模块对环形数组的读写地址满足数据协同条件时,业务模块可以正常进行数据读写,否则需要等待,直至符合条件,以保证数据能够全部得到处理且不会重复。
9.根据权利要求7所述的面向地理空间影像数据的快速处理方法,其特征在于,所述构建数据处理任务模型包括业务模块的任务模型创建、数据处理流水线组装、数据处理流水线部署和数据处理流水线资源回收四个部分,具体实施步骤如下:
(1)业务模块的任务模型创建
先将各业务模块进一步拆分,将各业务模块之间的逻辑调用方式设置为远程调用的方式,并将业务模块封装成可独立运行的软件;然后制作服务启动脚本,配置脚本启动参数,利用容器技术制作服务镜像;将业务服务之间、服务与数据资源之间的依赖关系进行抽象化处理,形成依赖拓扑;最后将依赖拓扑、资源配置、服务镜像在可视化的容器管理平台中组装为平台可部署运行的任务模型;
(2)数据处理流水线组装
先将各业务对应的任务模型添加至可视化的容器管理平台中的工作流组装工作空间;按各业务模块的组装次序,在容器管理平台中的工作流组装工作空间中,通过点击依次连接数据标准化处理任务模型、瓦片化切分任务模型、图像压缩任务模型和异步存储任务模型,完成系统级的工作流引擎组装,形成数据处理流水线;
(3)数据处理流水线部署
配置(2)中流水线上的各个任务模型的运行参数,包括任务名称、并行数、CPU、内存;设置工作流模型部署方式,并按照工作流方向依次启、停任务模型,从而完成数据处理流水线的启停;
(4)数据处理流水线资源回收
在数据处理过程结束后进行资源回收,包括删除任务模型节点,释放业务模型占用的数据库连接、CPU、内存。
10.根据权利要求7所述的面向地理空间影像数据的快速处理方法,其特征在于,所述基于内存的数据处理加速包括使用直接内存进行中间数据存储、使用内存池进行内存管理和使用环形数组进行缓存数据管理三个部分,具体实施步骤如下:
(1)使用直接内存进行中间数据存储
对于处理过程中产生的瓦片数据及中间数据,使用直接内存缓存进行存储,以减少直接内存与堆内存之间的数据拷贝,加快数据访问速度,在直接内存缓存对象使用结束时,释放该缓存;
(2)使用内存池进行内存管理
利用池化技术对(1)中描述的直接内存进行创建、复用和销毁这些管理,以达到资源复用、减少对象创建和销毁过程开销的目的,即根据内存池的配置预先创建一定数量的直接内存缓存对象,并根据数据处理过程中产生的中间数据的大小分配统一内存尺寸;在需要存储数据时从内存池中获取内存对象,数据使用结束后向内存池中归还内存对象,使之可以被重复使用;
(3)使用环形数组进行缓存数据管理
对(1)中存储了数据的内存对象进行管理,即在环形数组中存储对缓存数据的引用,通过获取读取、写入地址来实现对数组中缓存数据的读写访问;在初始化过程中确定环形数组的大小,并以此为依据预先分配内存并初始化对应元素,以避免在节点添加和删除过程中进行频繁的垃圾回收;对环形数组读、写过程中,依照协同规则对各模块的数据读写过程进行控制,以保证缓存数据可以全部被读取且不会重复。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2020102580844 | 2020-04-03 | ||
CN202010258084 | 2020-04-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111666157A CN111666157A (zh) | 2020-09-15 |
CN111666157B true CN111666157B (zh) | 2021-02-23 |
Family
ID=72386822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010508819.4A Active CN111666157B (zh) | 2020-04-03 | 2020-06-06 | 一种面向地理空间影像数据的快速处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111666157B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112486598A (zh) * | 2020-10-28 | 2021-03-12 | 武汉中科通达高新技术股份有限公司 | 一种使用管道技术处理图片的方法、系统及电子装置 |
CN114691231A (zh) * | 2020-12-29 | 2022-07-01 | 深圳云天励飞技术股份有限公司 | 一种数据流水编排方法、装置、可读存储介质及终端设备 |
CN115049544A (zh) * | 2021-03-09 | 2022-09-13 | 上海擎感智能科技有限公司 | 一种图片的处理方法、设备及计算机可读存储介质 |
CN112950384B (zh) * | 2021-04-20 | 2024-07-09 | 平安消费金融有限公司 | 基于缓存技术的处理系统、方法、计算机设备及存储介质 |
CN116342779B (zh) * | 2023-03-21 | 2024-02-09 | 北京百度网讯科技有限公司 | 图像的优化处理方法、装置、设备以及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7444390B2 (en) * | 1999-10-20 | 2008-10-28 | Cdimensions, Inc. | Method and apparatus for providing a web-based active virtual file system |
CN101539913A (zh) * | 2008-12-08 | 2009-09-23 | 厦门亿力吉奥信息科技有限公司 | 一种地理空间影像数据的储存和读取方法 |
CN106202145A (zh) * | 2016-06-17 | 2016-12-07 | 北京四维新世纪信息技术有限公司 | 一种数据密集型计算的遥感图像预处理系统 |
CN106991135B (zh) * | 2017-03-15 | 2020-07-24 | 江苏物联网研究发展中心 | 面向遥感影像数据的快速瓦片生成方法 |
CN109189750B (zh) * | 2018-09-06 | 2019-05-31 | 北京九章云极科技有限公司 | 数据分析工作流的运行方法、数据分析系统及存储介质 |
US11119864B2 (en) * | 2018-10-02 | 2021-09-14 | International Business Machines Corporation | Achieving activity centric computing using portable containers |
-
2020
- 2020-06-06 CN CN202010508819.4A patent/CN111666157B/zh active Active
Non-Patent Citations (1)
Title |
---|
网格GIS下协同式空间信息工作流实现技术研究;万林;《中国博士学位论文全文数据库 基础科学辑》;20121215;第1-100页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111666157A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111666157B (zh) | 一种面向地理空间影像数据的快速处理方法及系统 | |
US10262392B2 (en) | Distributed and parallelized visualization framework | |
CN107391258B (zh) | 一种软硬件一体的便携式遥感影像实时处理系统 | |
CN101702245B (zh) | 一种可扩展通用三维地景仿真系统 | |
CN103309943A (zh) | 一种三维地理信息平台及其地形数据处理方法 | |
CN115457224B (zh) | 一种三维地理空间数字孪生架构方法及系统 | |
CN114820975B (zh) | 基于全要素参数符号化的三维场景仿真重构系统及方法 | |
US11694405B2 (en) | Method for displaying annotation information, electronic device and storage medium | |
CN115238015A (zh) | 一种基于微服务的时空大数据平台 | |
Lee et al. | Near-real-time satellite image processing: Metacomputing in CC++ | |
Nguyen et al. | B-EagleV: visualization of big point cloud datasets in civil engineering using a distributed computing solution | |
KR20220114666A (ko) | 3차원 구조 정보에 기반하여 생성된 가상의 현실모델을 활용하는 디지털 트윈 시스템 | |
WO2023219559A2 (en) | Method, device and system for processing spatial data | |
CN114153631B (zh) | 一种WebGIS数据共享方法、装置和系统 | |
Yang et al. | Faasrs: Remote sensing image processing system on serverless platform | |
CN114840792A (zh) | 基于网格化处理的Web端疫情分布可视化系统与方法 | |
CN113495876A (zh) | 一种基于Spark的影像金字塔分布式切片系统及方法 | |
Liu et al. | Memory-centric communication mechanism for real-time autonomous navigation applications | |
Yang et al. | Efficient storage method for massive remote sensing image via spark-based pyramid model | |
CN112489210A (zh) | 一种自主可控的三维立体自然资源一张图系统构建方法 | |
CN116302579B (zh) | 面向Web端的时空大数据高效加载渲染方法及系统 | |
CN117240348B (zh) | 基于软件定义卫星共享星座的虚拟卫星构建方法和系统 | |
CN116245710B (zh) | 基于虚幻引擎和线程池的海量倾斜摄影模型动态调度方法 | |
Xiong et al. | High-Performance GIS Platform | |
CN115861513A (zh) | 数据渲染方法、装置、计算机及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |