CN107193923B - 一种二维地理空间快速矢量叠加的方法及系统 - Google Patents
一种二维地理空间快速矢量叠加的方法及系统 Download PDFInfo
- Publication number
- CN107193923B CN107193923B CN201710344501.5A CN201710344501A CN107193923B CN 107193923 B CN107193923 B CN 107193923B CN 201710344501 A CN201710344501 A CN 201710344501A CN 107193923 B CN107193923 B CN 107193923B
- Authority
- CN
- China
- Prior art keywords
- vector
- tile
- binary grid
- binary
- contour map
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/56—Information retrieval; Database structures therefor; File system structures therefor of still image data having vectorial format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Remote Sensing (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种二维地理空间快速矢量叠加的方法及系统,其中,该方法包括:获取至少两个矢量对象;分别将矢量对象划分为若干个二值栅格瓦片,并根据二值栅格瓦片所处的地理位置确定二值栅格瓦片唯一的瓦片地址;根据矢量对象的二值栅格瓦片的瓦片地址执行归约处理,并对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理;根据矢量叠加后的二值栅格瓦片提取矢量瓦片轮廓图,并将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图。该方法可以利用CPU处理器的单指令多数据指令并行处理多个二值栅格瓦片,可以加速二值栅格瓦片中离散数据的叠加运算,矢量叠加运算效率高。
Description
技术领域
本发明涉及地理信息系统技术领域,特别涉及一种二维地理空间快速矢量叠加的方法及系统。
背景技术
几乎所有事情的发生都有地点,地理信息系统(Geographic InformationSystem,简称GIS)在地理尺度范围内,对事情发生的模式和过程进行描述、解释和预测。GIS是一门科学技术,也是用来解决实际问题的方法,它依托于现代计算机软、硬件系统的发展,对人类生活的地球表面的地理实体数据进行数字化管理。
GIS管理的数据所描述的事件通常都带有地理坐标,采用处理空间数据的专业技术和空间分析方法。GIS本质上是一种应用技术,其基本操作已经成为对真实世界进行测量、制图和分析的基础,它为我们提供了基于地理空间进行分析的能力。
空间分析是GIS的关键部分,是为地理数据增值,并将数据转化为有用信息的方法。空间分析包括了所有的空间变换和空间操作,以及为空间数据添加数值的方法,它还能揭示隐含的模式和特殊信息,它帮助人们将原始数据转化为有用信息,寻求科学发现并辅助决策。在计算机诞生之前,许多空间分析方法就已经存在很长时间了,有的通过手工操作,有的通过尺子等测量工具。据悉几何学的诞生就与空间分析有直接联系。制图分析法用于对地图进行分析,利用GIS分析也是传统制图分析法的延续。
空间分析可以显示出在其它方式中不能直接观察到的信息,它可以使隐式的内容显性。常用的空间分析方法有六种:查询和推理、量测、空间变换、描述总结、最优化分析和假设验证。叠加分析是地理信息系统空间分析中的重要组成部分,属于空间变换方法。空间变换是用来修改、合并数据集,将其互相对比获得新的数据集,并得到新的知识的空间分析方法。常见的GIS系统中的空间变换使用简单的几何学、数学和逻辑法则,它们可以利用地物集合生产区域,或者在区域中获取地物集合。
矢量多边形的叠加操作涉及到多个空间对象集合,这些集合都是由多边形组成。计算多边形叠加的复杂性是影响矢量GIS发展的重要障碍之一。矢量多边形叠加的任务是判断两个及以上多边形是否相交,同时计算出叠加的公共区域,以及确定由叠加产生的一个或者多个新对象的区域范围。
多数地理信息系统的叠加分析算法都是基于矢量数据直接计算,这类计算方法往往较为复杂。目前人们为了开发一个快速处理大型数据集的算法已经做了大量工作。高效的叠加算法给GIS的发展带来了巨大的挑战,其在计算机编程实现上也是极其复杂和困难的。目前人们为了开发一个快速处理大型数据集的算法已经进行了大量工作,但现有的直接矢量计算的方法仍然过于复杂。
公开于该背景技术部分的信息仅仅旨在增加对本发明的总体背景的理解,而不应当被视为承认或以任何形式暗示该信息构成已为本领域一般技术人员所公知的现有技术。
发明内容
本发明的目的在于提供一种二维地理空间快速矢量叠加的方法及系统,从而克服现有矢量数据叠加分析效率较低的缺陷。
本发明实施例提供的一种二维地理空间快速矢量叠加的方法,包括:获取至少两个矢量对象;分别将所述矢量对象划分为若干个二值栅格瓦片,并根据所述二值栅格瓦片所处的地理位置确定所述二值栅格瓦片唯一的瓦片地址;根据所述矢量对象的二值栅格瓦片的瓦片地址执行归约处理,并对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理,且不同的二值栅格瓦片在不同的计算节点上执行矢量叠加处理;根据矢量叠加后的二值栅格瓦片提取矢量瓦片轮廓图,并将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图。
在一种可能的实现方式中,所述分别将所述矢量对象划分为若干个二值栅格瓦片,包括:分别确定与所述矢量对象的边部分相交的二值栅格瓦片,逐行扫描部分相交的二值栅格瓦片的像素点,将落入矢量对象内的像素点的像素值更新为1;将分别与所述矢量对象全部相交的二值栅格瓦片内的像素点的像素值更新为1,其中,所有二值栅格瓦片中的像素值的初始值均为0。
在一种可能的实现方式中,所述对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理,包括:归约处理后的二值栅格瓦片的每行像素存放于同一寄存器内,且每行像素的矢量叠加处理由一条单指令多数据指令执行。
在一种可能的实现方式中,所述将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图,包括:根据相对应的二值栅格瓦片的瓦片地址生成所述矢量瓦片轮廓图的轮廓图地址;根据所述轮廓图地址确定符合四叉树特性的相邻的矢量瓦片轮廓图,并将相邻的矢量瓦片轮廓图发送至位于四叉树父节点的父计算节点,由所述父计算节点对相邻的矢量瓦片轮廓图执行合并处理,确定合并处理后新的矢量瓦片轮廓图;在所述新的矢量瓦片轮廓图的瓦片曲线不完整时,由所述父计算节点的上一级父计算节点对符合四叉树特性的新的矢量瓦片轮廓图执行合并处理,直至执行合并处理后新的矢量瓦片轮廓图的瓦片曲线完整。
在一种可能的实现方式中,所述矢量叠加处理包括按位对二值栅格瓦片进行逻辑运算,所述逻辑运算包括逻辑与运算、逻辑或运算、逻辑异或运算中的一项或多项。
基于同样的发明构思,本发明实施例提供的一种二维地理空间快速矢量叠加的系统,包括:获取模块,用于获取至少两个矢量对象;栅格化模块,用于分别将所述矢量对象划分为若干个二值栅格瓦片,并根据所述二值栅格瓦片所处的地理位置确定所述二值栅格瓦片唯一的瓦片地址;矢量叠加模块,用于根据所述矢量对象的二值栅格瓦片的瓦片地址执行归约处理,并对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理,且不同的二值栅格瓦片在不同的计算节点上执行矢量叠加处理;栅格矢量化模块,用于根据矢量叠加后的二值栅格瓦片提取矢量瓦片轮廓图,并将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图。
在一种可能的实现方式中,所述栅格化模块包括:第一栅格化单元,用于分别确定与所述矢量对象的边部分相交的二值栅格瓦片,逐行扫描部分相交的二值栅格瓦片的像素点,将落入矢量对象内的像素点的像素值更新为1;第二栅格化单元,用于将分别与所述矢量对象全部相交的二值栅格瓦片内的像素点的像素值更新为1,其中,所有二值栅格瓦片中的像素值的初始值均为0。
在一种可能的实现方式中,所述矢量叠加模块用于:归约处理后的二值栅格瓦片的每行像素存放于同一寄存器内,且每行像素的矢量叠加处理由一条单指令多数据指令执行。
在一种可能的实现方式中,所述栅格矢量化模块包括:地址生成单元,用于根据相对应的二值栅格瓦片的瓦片地址生成所述矢量瓦片轮廓图的轮廓图地址;合并单元,用于根据所述轮廓图地址确定符合四叉树特性的相邻的矢量瓦片轮廓图,并将相邻的矢量瓦片轮廓图发送至位于四叉树父节点的父计算节点,由所述父计算节点对相邻的矢量瓦片轮廓图执行合并处理,确定合并处理后新的矢量瓦片轮廓图;递归单元,用于在所述新的矢量瓦片轮廓图的瓦片曲线不完整时,由所述父计算节点的上一级父计算节点对符合四叉树特性的新的矢量瓦片轮廓图执行合并处理,直至执行合并处理后新的矢量瓦片轮廓图的瓦片曲线完整。
在一种可能的实现方式中,所述矢量叠加处理包括按位对二值栅格瓦片进行逻辑运算,所述逻辑运算包括逻辑与运算、逻辑或运算、逻辑异或运算中的一项或多项。
本发明实施例提供的一种二维地理空间快速矢量叠加的方法,将连续场模型的位数据集(即二值栅格瓦片)作为中间处理数据对象以加速离散数据的叠加计算。具体的,将矢量对象转换为二值栅格瓦片,根据瓦片地址将二值栅格瓦片分配到不同的计算节点上进行叠加分析,从而可以利用CPU处理器的单指令多数据指令并行处理多个二值栅格瓦片,可以加速二值栅格瓦片中离散数据的叠加运算,矢量叠加运算效率高。同时,不同的计算节点在将矢量对象转换为二值栅格瓦片后,就地将二值栅格瓦片转换为矢量瓦片轮廓图,最后拼接成完整的叠加处理多边形矢量对象的结果,可以进一步提高运算效率。在各个计算节点上可以根据现有异构处理器架构进行优化,对于SIMD支持的CPU以及带GPU处理器的计算节点,结合两种处理器的异构形式进行分布式并发计算。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中二维地理空间快速矢量叠加的方法流程图;
图2为本发明实施例中提取矢量瓦片轮廓图的示意图;
图3为本发明实施例中二维地理空间快速矢量叠加的系统结构图。
具体实施方式
下面结合附图,对本发明的具体实施方式进行详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另有其它明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其它元件或其它组成部分。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本发明,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件未作详细描述,以便于凸显本发明的主旨。
根据本发明实施例,提供了一种二维地理空间快速矢量叠加的方法,图1为该方法的流程图,具体包括步骤101-104:
步骤101:获取至少两个矢量对象。
基于现有的Web GIS现状,并参照OGC(Open GIS Consortium,开放地理空间信息联盟)的“简单要素访问(Simple Feature Access)”实施标准,根据此标准当前算法假设所有二维矢量模型数据都是由点、线、多边形三种几何对象组成,这些几何对象是由点和线段构成,每个多边形是由闭合的连接线段组成。本发明实施例中,至少两个矢量对象为两个矢量对象,该矢量对象具体为矢量多边形数据,其是符合“OGC简单要素对象”标准的待处理矢量数据。
步骤102:分别将矢量对象划分为若干个二值栅格瓦片,并根据二值栅格瓦片所处的地理位置确定二值栅格瓦片唯一的瓦片地址。
本发明实施例中,二值栅格瓦片是一种瓦片图,其由像素矩阵组成,像素矩阵中每个像素只可能有两种取值,例如每个像素的取值为0或1。同时,基于地理信息系统可以确定二值栅格瓦片的瓦片地址,具体可以参考OGC标准。划分后的二值栅格瓦片互相独立。
步骤103:根据至少两个矢量对象的二值栅格瓦片的瓦片地址执行归约处理,并对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理,且不同的二值栅格瓦片在不同的计算节点上执行矢量叠加处理。
本发明实施例中,每个矢量对象都包括若干个二值栅格瓦片,可能为一个瓦片,也可能为多个瓦片;归约处理用于整合所有的二值栅格瓦片,即将两个矢量对象的二值栅格瓦片作为一个整体,之后执行矢量叠加处理。
随着现代处理器每个芯片上的核心数不断增加,散热和功耗的增加使得异构方案不断增加,随着技术的发展,许多市场上常用的CPU处理器都提供了单指令多数据扩展指令(SIMD,Single Instruction Multiple Data),诸如Intel I7这样的64位处理器的SIMD指令集已经扩展到了128位,当前的AVX2指令能一次处理256位宽的并行机,最新的CPU处理器更是将这种技术扩展到了512位。图形处理器(Graphics Processing Unit,GPU)是现代PC机中的常见设备,它们向CPU提供一些基本的图像处理操作,GPU的可编程着色器以一种高度并行的方式运行各种图片效果的小程序,当对许多这样的数据集进行相同的并行操作时,可以提供巨大计算能力。
本发明实施例中,由于在步骤102中将矢量对象划分为二值栅格瓦片,从而可以对二值栅格瓦片进行按位操作,二值栅格瓦片中的一个像素即对应一个位(bit),从而使得二值栅格瓦片中的部分像素(如每一行像素)的矢量叠加处理可以被一条SIMD指令执行,因此二值栅格瓦片中的所有像素可以在多个CPU核心上以单指令多数据的方式并行处理。本发明实施例中,计算节点指的是一个CPU核心,或者一个物理节点(如计算机)中的多个或全部CPU核心,或者为多个互相关联的物理节点,多个计算节点可以组成层级式的分布式系统。通过设置计算节点,可以实现不同的二值栅格瓦片分布在不同的计算节点上并发处理,从而提高处理效率。
步骤104:根据矢量叠加后的二值栅格瓦片提取矢量瓦片轮廓图,并将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图。
本发明实施例中,矢量叠加后的二值栅格瓦片也是一个二值栅格瓦片,根据该二值栅格瓦片即可以确定瓦片轮廓。例如,将二值栅格瓦片的每个像素点作为一个矩形区域,这样每条边线必定关联两个矩形区域;若两个矩形区域的像素值相同,则这条边线不作为轮廓;若像素值不同,则该边线作为瓦片轮廓。提取矢量瓦片轮廓图的示意图参见图2所示,其中每个方块表示二值栅格瓦片的一个像素点,其中的值(0或1)表示像素值,粗线表示提取出的矢量瓦片轮廓图。此外,由于不同的矢量瓦片轮廓图之间可能存在线段端点不重合的问题,故在合并矢量轮廓图时需要将相邻两条线段相邻的端点进行闭合调整,以保证最后的矢量轮廓图是闭合的。
需要说明的是,地理一般指地球表层及其附近区域,但有些术语和它具有相似的含义,例如空间,后者包括地球表层的任意空间,基本上和“地理”有着相同含义。但许多GIS方法也可以应用到非地理空间中,例如火星,以及能被医学影像捕捉的人体空间等。本发明实施例涉及的空间分析并不仅仅限定为地球表面的地理分析。
本发明实施例提供的一种二维地理空间快速矢量叠加的方法,将矢量对象转换为二值栅格瓦片,根据瓦片地址将二值栅格瓦片分配到不同的计算节点上进行叠加分析,从而可以利用CPU处理器的单指令多数据指令并行处理多个二值栅格瓦片,可以加速二值栅格瓦片中离散数据的叠加运算,矢量叠加运算效率高。同时,不同的计算节点还可以将二值栅格瓦片转换为矢量瓦片轮廓图,进一步提高运算效率。
本发明另一实施例提供了一种二维地理空间快速矢量叠加的方法,包括图1所示的步骤101-104,其实现原理和有益效果参考图1所示的实施例。此外,本实施例中,分别将矢量对象划分为若干个二值栅格瓦片,包括步骤A1-A2:
步骤A1:分别确定与矢量对象的边部分相交的二值栅格瓦片,逐行扫描部分相交的二值栅格瓦片的像素点,将落入矢量对象内的像素点的像素值更新为1。
步骤A2:将分别与矢量对象全部相交的二值栅格瓦片内的像素点的像素值更新为1,其中,所有二值栅格瓦片中的像素值的初始值均为0。
本发明实施例中,所有二值栅格瓦片中的像素值的初始值均为0。矢量对象本质为多边形数据,该多边形的边与二值栅格瓦片会存在部分相交的情况,即多边形的边会穿过部分二值栅格瓦片,这些二值栅格瓦片即为部分相交的二值栅格瓦片,该部分相交的二值栅格瓦片中与矢量对象重叠的像素点即为落入矢量对象内的像素点,并将落入矢量对象内的像素点的值修改为1,其余未落入矢量对象范围内的像素点即依旧保持为0。其中,由于二值栅格瓦片中的像素点实际为一矩形区域,若该像素点的中心点落入矢量对象所对应的多边形区域内,则该像素点为落入矢量对象内的像素点;也可以根据像素点左上角的点、右上角的点、左下角的点或右下角的点等是否落入矢量对象内确定该像素点是否为落入矢量对象内的像素点。
同时,每个矢量对象都是一个矢量多边形数据,该多边形会将部分二值栅格瓦片全部包围,即这些二值栅格瓦片与矢量对象全部相交,此时将这些二值栅格瓦片内的像素点的像素值均更新为1。通过上述步骤A1-A2,可以用像素值为1的像素点表示整个矢量对象对应的多边形。虽然该矢量对象栅格化的过程会造成误差,但可以利用单指令多数据指令提高分析速度,对于Web GIS可以降低用户访问的延时,提高用户体验。
在一种可能的实现方式中,上述步骤103中对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理,具体包括:归约处理后的二值栅格瓦片的每行像素存放于同一寄存器内,且每行像素的矢量叠加处理由一条单指令多数据指令执行。
本发明实施例中,二值栅格瓦片由宽和高都是256像素的像素矩阵组成,每个像素的取值只可能为0或1。因此一幅二值栅格瓦片在计算机内部由长度为8192字节(65536位)的二进制字节数组表示,在支持AVX-2指令的CPU上,一行像素正好存放在一个寄存器上,每行256个像素的叠加操作可以被一条SIMD执行,每个CPU核心上都有16个寄存器,在现代多核处理器上都有多个CPU核心。因此这些栅格数据可以在多个CPU核心上以单指令多数据的方式并行处理。而在由多个物理计算节点组成的分布式系统中,不同地理位置的二值栅格瓦片分布在不同的计算机节点上并发处理。
在一种可能的实现方式中,步骤104中将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图,包括步骤B1-B3:
步骤B1:根据相对应的二值栅格瓦片的瓦片地址生成矢量瓦片轮廓图的轮廓图地址。
本发明实施例中,矢量瓦片轮廓图是一种矢量瓦片,只在多边形轮廓上有意义,数据格式遵循OGC标准。其中,每个二值栅格瓦片都由一个唯一的地址作为瓦片ID,即瓦片地址,该瓦片地址由瓦片的四叉树叶子节点指定。每个四叉树叶子节点上对应有二值栅格瓦片和矢量瓦片轮廓图。
在步骤104中,根据矢量叠加后的二值栅格瓦片提取矢量瓦片轮廓图,处理该过程的计算节点与执行步骤103中“并对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理”的计算节点相同,即在同一节点执行某个二值栅格瓦片的矢量叠加过程和栅格矢量化过程。并根据该矢量瓦片轮廓图所对应的四叉树叶子节点的地址生成轮廓图地址;其中,根据二值栅格瓦片的瓦片地址可以确定相对应的四叉树叶子节点的地址。
步骤B2:根据轮廓图地址确定符合四叉树特性的相邻的矢量瓦片轮廓图,并将相邻的矢量瓦片轮廓图发送至位于四叉树父节点的父计算节点,由父计算节点对相邻的矢量瓦片轮廓图执行合并处理,确定合并处理后新的矢量瓦片轮廓图。
本发明实施例中,四个相邻的四叉树叶子节点对应四个矢量瓦片轮廓图(也对应四个二值栅格瓦片),该四个矢量瓦片轮廓图是两两相邻的;四个矢量瓦片轮廓图的四叉树节点对应同一个父节点时,此时的四个矢量轮廓图符合四叉树特性。
本发明实施例中,由位于四叉树叶子节点的计算节点执行矢量对象的栅格化和栅格矢量化,在确定符合四叉树特性的相邻的四个矢量瓦片轮廓图后,每个计算节点将本地的矢量瓦片轮廓图上传至位于父节点的计算节点,即父计算节点,该父计算节点可以看做归约计算节点,由该父计算节点从收集到的四个矢量瓦片轮廓图得到一个新的合并后的矢量瓦片轮廓图。
步骤B3:在新的矢量瓦片轮廓图的瓦片曲线不完整时,由父计算节点的上一级父计算节点对符合四叉树特性的新的矢量瓦片轮廓图执行合并处理,直至执行合并处理后新的矢量瓦片轮廓图的瓦片曲线完整。
本发明实施例中,父计算节点确定合并后新的矢量瓦片轮廓图后,判断该合成后的矢量瓦片轮廓图是否完整,若完整则流程结束;若不完整,则将该矢量瓦片轮廓图发送到父节点上一级地址对应的父计算节点,由该上一级的父计算节点收到四个下一级的父计算节点上传的矢量瓦片轮廓图后,继续执行步骤B2-B3。此递归过程持续执行,直至得到最后完整的矢量瓦片轮廓图。
在一种可能的实现方式中,矢量叠加处理包括按位对二值栅格瓦片进行逻辑运算,逻辑运算包括逻辑与运算、逻辑或运算、逻辑异或运算中的一项或多项。具体的,利用SIMD指令对二值栅格瓦片进行按位操作,可以进行逻辑与(AND)、逻辑或(OR),取反后逻辑与等,分别对应着几何多边形的求交算子、求并算子和求差算子。
本发明实施例提供的一种二维地理空间快速矢量叠加的方法,将连续场模型的位数据集(即二值栅格瓦片)作为中间处理数据对象以加速离散数据的叠加计算。具体的,将矢量对象转换为二值栅格瓦片,根据瓦片地址将二值栅格瓦片分配到不同的计算节点上进行叠加分析,从而可以利用CPU处理器的单指令多数据指令并行处理多个二值栅格瓦片,可以加速二值栅格瓦片中离散数据的叠加运算,矢量叠加运算效率高。同时,不同的计算节点在将矢量对象转换为二值栅格瓦片后,就地将二值栅格瓦片转换为矢量瓦片轮廓图,最后拼接成完整的叠加处理多边形矢量对象的结果,可以进一步提高运算效率。在各个计算节点上可以根据现有异构处理器架构进行优化,对于SIMD支持的CPU以及带GPU处理器的计算节点,结合两种处理器的异构形式进行分布式并发计算。
以上详细介绍了一种二维地理空间快速矢量叠加的方法流程,该方法也可以通过相应的装置实现,下面详细介绍该装置的结构和功能。
本发明实施例提供的一种二维地理空间快速矢量叠加的系统,参见图3所示,包括:
获取模块31,用于获取至少两个矢量对象;
栅格化模块32,用于分别将所述矢量对象划分为若干个二值栅格瓦片,并根据所述二值栅格瓦片所处的地理位置确定所述二值栅格瓦片唯一的瓦片地址;
矢量叠加模块33,用于根据所述矢量对象的二值栅格瓦片的瓦片地址执行归约处理,并对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理,且不同的二值栅格瓦片在不同的计算节点上执行矢量叠加处理;
栅格矢量化模块34,用于根据矢量叠加后的二值栅格瓦片提取矢量瓦片轮廓图,并将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图。
在一种可能的实现方式中,所述栅格化模块32包括:第一栅格化单元,用于分别确定与所述矢量对象的边部分相交的二值栅格瓦片,逐行扫描部分相交的二值栅格瓦片的像素点,将落入矢量对象内的像素点的像素值更新为1;第二栅格化单元,用于将分别与所述矢量对象全部相交的二值栅格瓦片内的像素点的像素值更新为1,其中,所有二值栅格瓦片中的像素值的初始值均为0。
在一种可能的实现方式中,所述矢量叠加模块33用于:归约处理后的二值栅格瓦片的每行像素存放于同一寄存器内,且每行像素的矢量叠加处理由一条单指令多数据指令执行。
在一种可能的实现方式中,所述栅格矢量化模块34包括:地址生成单元,用于根据相对应的二值栅格瓦片的瓦片地址生成所述矢量瓦片轮廓图的轮廓图地址;合并单元,用于根据所述轮廓图地址确定符合四叉树特性的相邻的矢量瓦片轮廓图,并将相邻的矢量瓦片轮廓图发送至位于四叉树父节点的父计算节点,由所述父计算节点对相邻的矢量瓦片轮廓图执行合并处理,确定合并处理后新的矢量瓦片轮廓图;递归单元,用于在所述新的矢量瓦片轮廓图的瓦片曲线不完整时,由所述父计算节点的上一级父计算节点对符合四叉树特性的新的矢量瓦片轮廓图执行合并处理,直至执行合并处理后新的矢量瓦片轮廓图的瓦片曲线完整。
在一种可能的实现方式中,所述矢量叠加处理包括按位对二值栅格瓦片进行逻辑运算,所述逻辑运算包括逻辑与运算、逻辑或运算、逻辑异或运算中的一项或多项。
本发明实施例提供的一种二维地理空间快速矢量叠加的方法及系统,将连续场模型的位数据集(即二值栅格瓦片)作为中间处理数据对象以加速离散数据的叠加计算。具体的,将矢量对象转换为二值栅格瓦片,根据瓦片地址将二值栅格瓦片分配到不同的计算节点上进行叠加分析,从而可以利用CPU处理器的单指令多数据指令并行处理多个二值栅格瓦片,可以加速二值栅格瓦片中离散数据的叠加运算,矢量叠加运算效率高。同时,不同的计算节点在将矢量对象转换为二值栅格瓦片后,就地将二值栅格瓦片转换为矢量瓦片轮廓图,最后拼接成完整的叠加处理多边形矢量对象的结果,可以进一步提高运算效率。在各个计算节点上可以根据现有异构处理器架构进行优化,对于SIMD支持的CPU以及带GPU处理器的计算节点,结合两种处理器的异构形式进行分布式并发计算。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
前述对本发明的具体示例性实施方案的描述是为了说明和例证的目的。这些描述并非想将本发明限定为所公开的精确形式,并且很显然,根据上述教导,可以进行很多改变和变化。对示例性实施例进行选择和描述的目的在于解释本发明的特定原理及其实际应用,从而使得本领域的技术人员能够实现并利用本发明的各种不同的示例性实施方案以及各种不同的选择和改变。本发明的范围意在由权利要求书及其等同形式所限定。
Claims (4)
1.一种二维地理空间快速矢量叠加的方法,其特征在于,包括:
获取至少两个矢量对象;
分别将所述矢量对象划分为若干个二值栅格瓦片,并根据所述二值栅格瓦片所处的地理位置确定所述二值栅格瓦片唯一的瓦片地址;
根据所述矢量对象的二值栅格瓦片的瓦片地址执行归约处理,并对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理,且不同的二值栅格瓦片在不同的计算节点上执行矢量叠加处理;
根据矢量叠加后的二值栅格瓦片提取矢量瓦片轮廓图,并将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图,
其中,所述对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理,包括:
归约处理后的二值栅格瓦片的每行像素存放于同一寄存器内,且每行像素的矢量叠加处理由一条单指令多数据指令执行,
其中,所述分别将所述矢量对象划分为若干个二值栅格瓦片,包括:
分别确定与所述矢量对象的边部分相交的二值栅格瓦片,逐行扫描部分相交的二值栅格瓦片的像素点,将落入矢量对象内的像素点的像素值更新为1;
将分别与所述矢量对象全部相交的二值栅格瓦片内的像素点的像素值更新为1,其中,所有二值栅格瓦片中的像素值的初始值均为0,
其中,所述将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图,包括:
根据相对应的二值栅格瓦片的瓦片地址生成所述矢量瓦片轮廓图的轮廓图地址;
根据所述轮廓图地址确定符合四叉树特性的相邻的矢量瓦片轮廓图,并将相邻的矢量瓦片轮廓图发送至位于四叉树父节点的父计算节点,由所述父计算节点对相邻的矢量瓦片轮廓图执行合并处理,确定合并处理后新的矢量瓦片轮廓图;
在所述新的矢量瓦片轮廓图的瓦片曲线不完整时,由所述父计算节点的上一级父计算节点对符合四叉树特性的新的矢量瓦片轮廓图执行合并处理,直至执行合并处理后新的矢量瓦片轮廓图的瓦片曲线完整,
其中,所述二值栅格瓦片由宽和高都是256像素的像素矩阵组成,每一幅二值栅格瓦片在计算机内部由长度为8192字节的二进制字节数组表示,在支持AVX-2指令的CPU上,每行256个像素的叠加操作被一条SIMD指令执行,二值栅格瓦片在多个CPU核心上以单指令多数据的方式并行处理,由多个物理计算节点组成的分布式系统中,不同地理位置的二值栅格瓦片分布在不同的计算机节点上并发处理。
2.根据权利要求1所述的方法,其特征在于,所述矢量叠加处理包括按位对二值栅格瓦片进行逻辑运算,所述逻辑运算包括逻辑与运算、逻辑或运算、逻辑异或运算中的一项或多项。
3.一种二维地理空间快速矢量叠加的系统,其特征在于,包括:
获取模块,用于获取至少两个矢量对象;
栅格化模块,用于分别将所述矢量对象划分为若干个二值栅格瓦片,并根据所述二值栅格瓦片所处的地理位置确定所述二值栅格瓦片唯一的瓦片地址;
矢量叠加模块,用于根据所述矢量对象的二值栅格瓦片的瓦片地址执行归约处理,并对归约处理后的所有二值栅格瓦片进行单指令多数据的矢量叠加处理,且不同的二值栅格瓦片在不同的计算节点上执行矢量叠加处理;
栅格矢量化模块,用于根据矢量叠加后的二值栅格瓦片提取矢量瓦片轮廓图,并将所有的矢量瓦片轮廓图合并为完整的矢量轮廓图,
其中,所述矢量叠加模块用于:归约处理后的二值栅格瓦片的每行像素存放于同一寄存器内,且每行像素的矢量叠加处理由一条单指令多数据指令执行;
其中,所述栅格化模块包括:
第一栅格化单元,用于分别确定与所述矢量对象的边部分相交的二值栅格瓦片,逐行扫描部分相交的二值栅格瓦片的像素点,将落入矢量对象内的像素点的像素值更新为1;
第二栅格化单元,用于将分别与所述矢量对象全部相交的二值栅格瓦片内的像素点的像素值更新为1,其中,所有二值栅格瓦片中的像素值的初始值均为0,
其中,所述栅格矢量化模块包括:
地址生成单元,用于根据相对应的二值栅格瓦片的瓦片地址生成所述矢量瓦片轮廓图的轮廓图地址;
合并单元,用于根据所述轮廓图地址确定符合四叉树特性的相邻的矢量瓦片轮廓图,并将相邻的矢量瓦片轮廓图发送至位于四叉树父节点的父计算节点,由所述父计算节点对相邻的矢量瓦片轮廓图执行合并处理,确定合并处理后新的矢量瓦片轮廓图;
递归单元,用于在所述新的矢量瓦片轮廓图的瓦片曲线不完整时,由所述父计算节点的上一级父计算节点对符合四叉树特性的新的矢量瓦片轮廓图执行合并处理,直至执行合并处理后新的矢量瓦片轮廓图的瓦片曲线完整,
其中,所述二值栅格瓦片由宽和高都是256像素的像素矩阵组成,每一幅二值栅格瓦片在计算机内部由长度为8192字节的二进制字节数组表示,在支持AVX-2指令的CPU上,每行256个像素的叠加操作被一条SIMD指令执行,二值栅格瓦片在多个CPU核心上以单指令多数据的方式并行处理,由多个物理计算节点组成的分布式系统中,不同地理位置的二值栅格瓦片分布在不同的计算机节点上并发处理。
4.根据权利要求3所述的系统,其特征在于,所述矢量叠加处理包括按位对二值栅格瓦片进行逻辑运算,所述逻辑运算包括逻辑与运算、逻辑或运算、逻辑异或运算中的一项或多项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710344501.5A CN107193923B (zh) | 2017-05-16 | 2017-05-16 | 一种二维地理空间快速矢量叠加的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710344501.5A CN107193923B (zh) | 2017-05-16 | 2017-05-16 | 一种二维地理空间快速矢量叠加的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107193923A CN107193923A (zh) | 2017-09-22 |
CN107193923B true CN107193923B (zh) | 2021-01-29 |
Family
ID=59872830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710344501.5A Expired - Fee Related CN107193923B (zh) | 2017-05-16 | 2017-05-16 | 一种二维地理空间快速矢量叠加的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107193923B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110866026B (zh) * | 2019-11-12 | 2022-08-09 | 中科星图空间技术有限公司 | 一种Sqlite影像瓦片数据库的自动更新方法及装置 |
CN111260780B (zh) * | 2020-01-13 | 2021-04-16 | 陕西心像信息科技有限公司 | 基于高度图高程的实时地形修改方法 |
CN112651896A (zh) * | 2020-12-30 | 2021-04-13 | 成都星时代宇航科技有限公司 | 有效矢量范围确定方法、装置、电子设备及可读存储介质 |
CN113538468B (zh) * | 2021-09-07 | 2022-01-25 | 成都国星宇航科技有限公司 | 基于svg格式构建高清卫星地图矢量切片的方法及装置 |
CN114048280B (zh) * | 2022-01-07 | 2022-04-29 | 成都国星宇航科技有限公司 | 矢量切片的处理方法、装置、服务器及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001195560A (ja) * | 2000-01-11 | 2001-07-19 | Hitachi Information Systems Ltd | 画像位置調整方法およびそのための装置、並びに前記画像位置調整方法を実現するためのプログラムを記録した記録媒体 |
CN105956994A (zh) * | 2016-05-13 | 2016-09-21 | 山东理工大学 | 基于栅格化叠加分析的图形处理方法及装置 |
CN106383828A (zh) * | 2016-08-22 | 2017-02-08 | 四川九洲电器集团有限责任公司 | 一种绘图方法及电子设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751449B (zh) * | 2009-09-16 | 2012-10-10 | 中国科学院计算技术研究所 | 一种用于地理信息系统中的空间叠加分析方法和系统 |
CN105608713B (zh) * | 2016-01-04 | 2018-11-16 | 湖南大学 | 一种基于四叉树的二值图像编码与高效逻辑运算方法 |
-
2017
- 2017-05-16 CN CN201710344501.5A patent/CN107193923B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001195560A (ja) * | 2000-01-11 | 2001-07-19 | Hitachi Information Systems Ltd | 画像位置調整方法およびそのための装置、並びに前記画像位置調整方法を実現するためのプログラムを記録した記録媒体 |
CN105956994A (zh) * | 2016-05-13 | 2016-09-21 | 山东理工大学 | 基于栅格化叠加分析的图形处理方法及装置 |
CN106383828A (zh) * | 2016-08-22 | 2017-02-08 | 四川九洲电器集团有限责任公司 | 一种绘图方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107193923A (zh) | 2017-09-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107193923B (zh) | 一种二维地理空间快速矢量叠加的方法及系统 | |
US11544900B2 (en) | Primitive-based 3D building modeling, sensor simulation, and estimation | |
Nourian et al. | Voxelization algorithms for geospatial applications: Computational methods for voxelating spatial datasets of 3D city models containing 3D surface, curve and point data models | |
CN106952338B (zh) | 基于深度学习的三维重建的方法、系统及可读存储介质 | |
Liu et al. | A combined approach to cartographic displacement for buildings based on skeleton and improved elastic beam algorithm | |
CN113297650B (zh) | 一种基于bim技术的单元式玻璃幕墙施工方法及系统 | |
WO2015119325A1 (ko) | 지형 렌더링 방법 | |
CN107564077B (zh) | 一种绘制道路网的方法及装置 | |
Shen et al. | A new approach to simplifying polygonal and linear features using superpixel segmentation | |
CN114529707A (zh) | 三维模型分割方法、装置、计算设备及可读存储介质 | |
CN113724279A (zh) | 路网自动划分交通小区的系统、方法、设备及存储介质 | |
CN117454495B (zh) | 一种基于建筑草图轮廓序列的cad矢量模型生成方法及装置 | |
EP4123106A1 (en) | Image processing device, image processing method, and image processing program | |
Cossell et al. | Concurrent dynamic programming for grid-based problems and its application for real-time path planning | |
CN111402422B (zh) | 三维表面重建方法、装置和电子设备 | |
CN116415652A (zh) | 一种数据生成方法、装置、可读存储介质及终端设备 | |
CN115937690A (zh) | 一种槽线生成方法、装置、存储介质及终端 | |
Wei et al. | Hexahedral mesh smoothing via local element regularization and global mesh optimization | |
Hu et al. | Voronoi cells of non-general position spheres using the GPU | |
Kim et al. | Design and implementation strategy of a parallel agent-based Schelling model | |
CN114359352A (zh) | 图像处理方法、装置、设备、存储介质及计算机程序产品 | |
CN112837420A (zh) | 基于多尺度和折叠结构的兵马俑点云的形状补全方法及系统 | |
WO2020111139A1 (ja) | 座標算出装置、座標算出方法、及びコンピュータ読み取り可能な記録媒体 | |
KR100681119B1 (ko) | 링크중심의 최적경로 산출방법 | |
CN111712811A (zh) | Hd地图的可扩展图形slam |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20210129 |
|
CF01 | Termination of patent right due to non-payment of annual fee |