CN105260523A - 一种分布式并行空间可视域分析方法 - Google Patents
一种分布式并行空间可视域分析方法 Download PDFInfo
- Publication number
- CN105260523A CN105260523A CN201510624950.6A CN201510624950A CN105260523A CN 105260523 A CN105260523 A CN 105260523A CN 201510624950 A CN201510624950 A CN 201510624950A CN 105260523 A CN105260523 A CN 105260523A
- Authority
- CN
- China
- Prior art keywords
- node
- grid point
- elevation model
- digital elevation
- grid
- 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.)
- Granted
Links
Landscapes
- Processing Or Creating Images (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明涉及一种分布式并行空间可视域分析方法,使用数字高程模型数据并行动态划分模块,快速完成串行算法的并行化与数据调度,并运用不规则数据划分与视线区域的冗余机制,保证了从节点在分布式计算环境下,能够访问到目标栅格点区域所对应的数字高程模型数据,其中,不规则数据并行策略针对不同实现方式的可视域算法,具有重要的指导意义,并且结合缓冲区机制,有效保证了不同依赖程度算法的正确操作,提升了从节点的资源使用效率,具有广泛的工业化应用前景。
Description
技术领域
本发明涉及一种分布式并行空间可视域分析方法,属于空间可视域问题分析技术领域。
背景技术
空间可视性分析是用来表征事物能否被人眼直接观测到的常用概念。基于数字高程模型的地形可视性分析是指从一个或多个位置所能看到的地形范围或与其他地形点之间的可见程度。其中,可视域分析则是研究观测点在其观测范围内所能观测到的地形点集合。
空间可视域分析的数据基础是数字高程模型(DEM)。数字高程模型是地理信息系统数据库中最为重要的空间信息资料之一,是空间分析的基础数据,也是GIS、虚拟现实、遥感、数字化战场等领域实现三维空间数据处理与分析的核心数据,也是国家地理信息的基础数据之一。其中,规则格网DEM来源于直接规则格网采样点或由离散数据点内插方法,数据结构简单,算法实现容易,空间操作及管理方便,易于表达,有利于各种分析和应用,因此该数据结构得到了广泛应用。
作为地形分析的重要内容,可视域计算被广泛应用于GIS的各个方面,如电信、军事、旅游、安全、测量测绘、地形勘探等领域,其中无线电转发器选址问题、艺术馆问题,士兵问题、堡垒问题等。可视域分析可以应用在军事领域上战场环境中的地形感知与推理,为指战员提供有价值的情报信息,还可以应用于配置兵力及隐蔽哨所的设置等;在电信业的应用中,可以根据可视线的判断,设立无线传输基站,电视、电台的转播站等;在旅游业中的应用有风景区景点、参观路线与基础设施规划等;在测绘领域,可视域可应用于控制点和勘测路线的选择;在航天领域,可用于行星表面探测;汽车导航领域中,可视域分析可用于计算汽车驾驶员前方可见的路线,也可用于通知驾驶者最安全的超车位置或视野受限的区域。如何分析地形表面上特定点的可视问题已成为地球科学研究的重要内容。因此,众多的GIS分析软件,如ArcGIS、3DEM、MicroDEM、GlobalMapper也纷纷支持可视域分析。这些应用都显示了可视域分析理论与技术强大的应用潜力,及其在空间分析理论与应用研究中广阔的应用前景。
目前,各种新型传感器获取数字高程模型技术的出现,使数字高程模型数据量呈几何级数增长。尽管现有的基于数字高程模型进行地形分析的理论与方法已趋于成熟,但如何在普通计算机上使用传统的串行算法实现海量地形数据的高效处理,仍然是可视域分析广泛应用亟待解决的关键问题。同时,众多应用领域对基于DEM数据进行可视域分析的应用需求越来越高,传统的可视性分析模式已经严重制约了可视域分析方法在各应用、研究、军事部门的应用范围,归纳起来有以下几个局限性:
(1)缺乏有效的并行化解决方案。现有可视性分析问题的并行处理模式多从数据共享的单一视角出发,当数字高程模型数据量较大时,并行可视域算法的效率将会随之降低。另外,海量数据共享在分布式并行计算架构下的通信量也是系统性能提升的瓶颈。而可视域算法对视线所经过高程数据的独特数据依赖性,使得研究者很难使用常规的数据划分的策略进行分布式并行计算,在一定程度上制约了并行可视域技术的发展与应用。
(2)算法设计缺乏扩展理论指导。目前,已有的可视性分析算法众多,其中约有80%以上的分析算法与点点通视算法有关,其本质都与分析窗口密切联系。通视分析具有简单直接的特点,对于计算大规模地形数据存在效率低下的不足,无法避免大量冗余计算的缺点;而基于面片的多点可视域算法受分析窗口、数据源精度、计算方法等影响而产生较大的不确定性,计算精度不如通视算法高,只能希望取得与基于点点通视算法近似的计算结果;传统的通视算法只能反映视线是直线的分析情况,不能处理视线弯曲的通视分析;任意的可视性分析算法均是基于有限元模型,无法刻画自然界中任意的光线与辐射线的传播特征,更不能表达不同介质间的视线折射的情况。总之,目前仍缺乏有效的手段中和描述可视性分析的综合特征,成为可视性分析理论与应用结合研究的瓶颈。
(3)缺乏通用机制研究。在目前基于“问题剖析→算法选取→结果分析”的常规可视问题分析实施策略中,因为其问题剖析是建立在已有的研究成果与现有可视算法的基础之上,各种机理各异的可视问题最终归结为不同表现形式与计算方式的可视性分析问题。在基于已有研究基础的分析方法与算法设计上并没有略有差异,已形成高效、成熟、深入的问题解析机制。然而,在具体应用问题的分析过程中,针对海量数字高程模型的并行可视域计算中仍缺乏高效、通用的数据划分策略。因此,研究适合不同可视性分析内容的通用数据划分问题和算法设计机制将是一个新的挑战。
发明内容
针对上述技术问题,本发明所要解决的技术问题是提供一种分布式并行空间可视域分析方法,采用自适应节点性能数据划分技术和负载均衡可达的可视域计算技术,能够解决现有可视域算法在分布式并行计算环境下,数据管理效率低下与并行化调度困难的问题,有效提高了可视域算法在分布式并行计算环境下的工作效率。
本发明为了解决上述技术问题采用以下技术方案:本发明设计了一种分布式并行空间可视域分析方法,采用主从模式的并行计算架构,基于主节点和至少一个从节点,实现分布式并行空间可视域分析方法,其中,各从节点彼此具有相等的软硬件配置;所述分布式并行空间可视域分析方法包括如下步骤:
步骤001.主节点读取数字高程模型数据,并获取从节点的个数MPISize,以及单个从节点的内存大小MemSize,进入步骤002;
步骤002.主节点将数字高程模型数据转化为与之相对应的数字高程模型栅格图,并获取数字高程模型栅格图中栅格点的总个数GlobalSize;其中,数字高程模型栅格图的各个栅格点分别存储数字高程模型数据中相对应的高程值,且单个栅格点存储高程值所占空间大小为NByte,然后进入步骤003;
步骤003.主节点根据单个从节点的内存大小MemSize,根据预设存储处理比例系数a,获得单个从节点的单次最大数据块处理能力DataVol=MemSize×a,其中0<a<1;并根据单个从节点的单次最大数据块处理能力DataVol,以及单个栅格点存储高程值所占空间大小为NByte,获得单个从节点单次最大数据块处理能力所对应的栅格点个数PixelNum,然后定义整数参数i=1,并进入步骤004;
步骤004.主节点获得所有从节点,单次最大数据块处理能力所对应的总栅格点个数为PixelNum×MPISize,并判断PixelNum×MPISize是否大于等于GlobalSize,是则进入步骤005;否则进入步骤006;
步骤005.主节点将数字高程模型栅格图中的所有栅格点平均分别给各个从节点,作为主节点针对数字高程模型栅格图中栅格点的第i次分配,其中,各个从节点分别所获栅格点的个数并进入步骤007;
步骤006.主节点针对数字高程模型栅格图中的栅格点,向各个从节点进行第i次分配,其中,分别向各个从节点分配的栅格点的个数ni=PixelNum,并进入步骤007;
步骤007.主节点根据第i次栅格点分配过程中,各个从节点所获栅格点的个数ni,以及预设数字高程模型属性参数,针对数字高程模型栅格图进行划分,获得各个从节点在数字高程模型栅格图中分别所对应的目标栅格点区域,且各个从节点分别所对应目标栅格点区域中栅格点的个数等于ni,并进入步骤008;
步骤008.主节点在数字高程模型栅格图中,分别为各个从节点所对应的目标栅格点区域设置预设大小的缓冲区,各个缓冲区分别与对应目标栅格点区域的边界外侧相邻,各个从节点所对应的目标栅格点区域和缓冲区构成从节点所对应的访问区域,且主节点分别获得各个从节点所对应访问区域的顶点序列,并分别发送给对应从节点,然后进入步骤009;
步骤009.主节点分别针对各个从节点所对应访问区域中的栅格点,建立各个从节点所对应的栅格点集合,然后,主节点分别针对各个从节点,建立从节点所对应栅格点集合与数字高程模型栅格图中栅格点之间的索引,并分别发送给对应从节点,然后进入步骤010;
步骤010.各从节点分别根据所对应的访问区域的顶点序列,以及从节点所对应栅格点集合与数字高程模型栅格图中栅格点之间的索引,获取其访问区域所对应的数字高程模型数据,并进入步骤011;
步骤011.各从节点分别基于其访问区域所对应的数字高程模型数据,根据预设可视域分析算法属性参数,针对其访问区域中目标栅格点区域所对应的数字高程模型数据执行可视域分析,获得对应第i次栅格点分配,各从节点的可视域分析结果,并返回给主节点;同时,获得对应第i次栅格点分配,各从节点分别执行可视域分析的分析时间集合{ti},返回给主节点,然后判断i是否大于1,是则进入步骤017,否则进入步骤012;
步骤012.主节点判断PixelNum×MPISize是否大于等于GlobalSize,是则进入步骤021;否则进入步骤013;
步骤013.主节点判断GlobalSize是否大于2×PixelNum×MPISize,是则进入步骤014,否则进入步骤015;
步骤014.主节点根据第i次针对各个从节点所分配的栅格点个数ni,按预设分配优化比例b,针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,且第i+1次针对各个从节点所分配的栅格点个数ni+1=ni×b,b<1,然后进入步骤016;
步骤015.主节点根据第i次针对各个从节点所分配的栅格点个数ni,针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,且第i+1次针对各个从节点所分配的栅格点个数然后进入步骤016;
步骤016.将i+1的值赋给i,并返回步骤007;
步骤017.主节点判断数字高程模型栅格图中是否存在未分配的栅格点,是则进入步骤018,否则进入步骤021;
步骤018.主节点根据获得对应第i-1次栅格点分配的从节点的效率ParaEff(i-1),以及根据获得对应第i次栅格点分配的从节点的效率ParaEff(i),然后主节点判断ParaEff(i)是否大于ParaEff(i-1),是则进入步骤019;否则进入步骤020;
步骤019.判断ni×b×MPISize是否大于数字高程模型栅格图中未分配的栅格点的数目,是则主节点针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,将数字高程模型栅格图中未分配的栅格点平均分配给各个从节点,获取第i+1次针对各个从节点所分配的栅格点个数ni+1,并返回步骤016;否则返回步骤014;
步骤020.判断ni-1×MPISize是否大于数字高程模型栅格图中未分配的栅格点的数目,是则主节点针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,将数字高程模型栅格图中未分配的栅格点平均分配给各个从节点,获取第i+1次针对各个从节点所分配的栅格点个数ni+1,并返回步骤016;否则主节点针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,且第i+1次针对各个从节点所分配的栅格点个数ni+1等于ni-1,并返回步骤016;
步骤021.主节点将针对数字高程模型数据,将所接收到的可视域分析结果合并生成结果文件进行输出,即获得分布式并行空间可视域分析方法的结果。
作为本发明的一种优选技术方案:所述各从节点基于MPI并行环境执行所述分布式并行空间可视域分析方法中的相应操作,其中,MPI并行环境包括至少一个MPI进程,MPI进程的数量与从节点的个数MPISize相等。
作为本发明的一种优选技术方案:所述步骤003中,主节点根据单个从节点的单次最大数据块处理能力DataVol,以及单个栅格点存储高程值所占空间大小为NByte,通过获得单个从节点单次最大数据块处理能力所对应的栅格点个数PixelNum。
作为本发明的一种优选技术方案:所述步骤007中,所述预设数字高程模型属性参数包括数据可读写性、数据集的波段、起始X方向像素位置、起始Y方向像素位置、数据的X方向像素大小、数据的Y方向像素大小、缓存大小、数据类型。
作为本发明的一种优选技术方案:所述步骤007包括如下步骤:
步骤00701.初始化整数参数k=1,并进入步骤00702;
步骤00702.主节点根据预设数字高程模型属性参数,针对数字高程模型栅格图中未分配栅格点的区域,以视点与数字高程模型栅格图未分配栅格点区域左上角顶点之间的连线,作为第k个从节点所对应目标栅格点区域的左侧边界,并将该边界以视点为轴心、沿数字高程模型栅格图的边缘做顺时针转动,直至该边界与左侧边界之间栅格点的个数为ni时,停止该边界的转动,并将此时该边界的位置作为第k个从节点所对应目标栅格点区域的右侧边界,则该左侧边界与右侧边界之间的区域即为第k个从节点所对应的目标栅格点区域,然后进入步骤00703;
步骤00703.判断k是否等于MPISize,是则进入所述步骤008;否则将k+1的值赋予k,并返回步骤00702。
作为本发明的一种优选技术方案:所述步骤008中,主节点在数字高程模型栅格图中,分别针对各个从节点所对应的目标栅格点区域,在目标栅格点区域左右边界的外侧分别设置一个缓冲区,作为与该目标栅格点区域相对应的缓冲区,其中,单个缓冲区的宽度大小为10个栅格点。
作为本发明的一种优选技术方案:所述步骤009中,所述各个从节点所对应的栅格点集合为三元组数据集合,然后,主节点分别针对各个从节点,建立从节点所对应三元组数据集合与数字高程模型栅格图中栅格点之间的索引,并分别发送给对应从节点,其中,该索引通过遍历三元组数据集合,记录数字高程模型数据中每一行元素在三元组数据集合的起始位置而获得。
作为本发明的一种优选技术方案:所述步骤011中,所述预设可视域分析算法属性参数包括可视域分析算法种类、视线形态、距离权、视点高度、目标点高度、视线传播方式、视线可逆性、可视范围、视线衰变函数。
作为本发明的一种优选技术方案:所述分布式并行空间可视域分析方法还包括建立日志文件,针对各步骤中的数据设置、数据获取、数据统计和迭代次数进行记录。
本发明所述一种分布式并行空间可视域分析方法采用以上技术方案与现有技术相比,具有以下技术效果:
(1)本发明设计的分布式并行空间可视域分析方法,使用数字高程模型数据并行动态划分模块,快速完成串行算法的并行化与数据调度,并运用不规则数据划分与视线区域的冗余机制,保证了从节点在分布式计算环境下,能够访问到目标栅格点区域所对应的数字高程模型数据,其中,不规则数据并行策略针对不同实现方式的可视域算法,具有重要的指导意义,并且结合缓冲区机制,有效保证了不同依赖程度算法的正确操作,提升了从节点的资源使用效率,具有广泛的工业化应用前景;
(2)本发明设计的分布式并行空间可视域分析方法中,所提出的数字高程模型数据划分策略可以独立使用,也可以集成使用;针对不规则数据划分的栅格数据块,本发明提出了完整的不规则数据存储管理方案,并给出优化的数据索引机制,能够在减少计算机存储空间的前提下实现高程点的实时访问,大大提升了可视域计算的并行效率,该策略具有较高的可移植性,为不同的并行环境提供了参考;
(3)本发明设计的分布式并行空间可视域分析方法中,通过针对从节点计算性能的动态评估,能够充分度量每个从节点的计算能力,进而动态分发计算任务,该方法具有高可行性和稳定性的技术特点,充分保证了海量数字高程模型数据并行处理的高效率;并且由于可视域分析计算属于计算密集型计算,因此这种动态调度策略有望取得较为理想的并行计算效率,缓解分布式并行计算效率低与通信耗时的瓶颈问题。
附图说明
图1是本发明设计分布式并行空间可视域分析方法的流程示意图;
图2是本发明设计中针对数字高程模型数据基于栅格图进行可视域分析的模型示意图;
图3是针对数字高程模型栅格图按照角度进行划分策略的示意图;
图4是基于数字高程模型栅格中目标研究区域是规则矩形按照计算量不规则划分示意图;
图5是基于数字高程模型栅格中目标研究区域是不规则多边形按照计算量不规则划分示意图;
图6是本发明针对数字高程模型栅格中目标研究区域划分缓冲区的划分示意图;
图7是本发明中不规则数据块基于三元组的存储与索引机制;
图8是本发明实施例中执行可视域分析的执行可视域分析结果示意图;
图9a是本发明实施例中不同数据块大小下可视域算法的执行时间示意图;
图9b是本发明实施例中不同数据块大小下可视域算法的加速比示意图;
图9c是本发明实施例中不同数据块大小下可视域算法的并行效率示意图。
具体实施方式
下面结合说明书附图针对本发明的具体实施方式作进一步详细的说明。
本发明所设计分布式并行空间可视域分析方法在实际应用过程当中,主要的类和接口如下表1所示。
表1
如图2所示,数字高程模型数据所对应数字高程模型栅格图中每个栅格点存储的是高程值,判断视线(LOS)从视点(x0,y0)到目标点(xn,yn)的可达性,如果从视点到目标点间的视线没有遇到障碍,则这两点称为可视;否则,称为不可视。因此,计算固定视点到所有区域的可视性分析称为可视域计算,该方法将返回与原始区域同样大小的栅格数据,结果栅格中仅包含每一个栅格的可视性分析结果:可视(1)、不可视(0)。
本发明所设计分布式并行空间可视域分析方法在实际应用过程当中时,主节点与从节点经过局域网互联。主节点是一个特殊的计算节点,该节点负责存储所有需要进行可视域分析的数字高程模型数据,并负责初始化可视域并行环境与计算操作;从节点是多个计算节点,负责进行可视域分析,这里假设各从节点彼此具有相等的软硬件配置,即各从节点的数据处理能力相同;对于并行环境,我们采用MPI(Message-PassingInterface)并行环境,MPI并行环境是基于消息传递的并行程序,消息传递指的是并行执行的各从节点具有自己独立的代码段,作为互不相关的多个程序独立执行,进程之间的信息交互完全通过显示地调用通信函数来完成;因此实际应用中,我们首先要进入MPI并行环境,通过主节点调用MPIInfo模块,获取MPI并行环境的各种信息,针对该MPI并行环境进行初始化,使得MPI并行环境包括至少一个MPI进程,MPI进程的数量与从节点的个数MPISize相等,并建立多个MPI进程之间的联系,为后续通信做准备;主节点建立通信域,标识参与可视域分析的MPI进程组。所述分布式并行空间可视域分析方法在实际应用过程当中时,如图1所示,具体包括如下步骤。
步骤001.主节点调用GlobalVari模块,读取数字高程模型数据,如果数字高程模型数据不能一次性读取,则分多次,以行的形式进行读取;并获取从节点的个数MPISize,以及单个从节点的内存大小MemSize,标识各个从节点MPI进程ID号,并记录不同从节点的进程号与所对应的计算机名称,然后进入步骤002。
步骤002.主节点将数字高程模型数据转化为与之相对应的数字高程模型栅格图,并获取数字高程模型栅格图中栅格点的总个数GlobalSize;其中,数字高程模型栅格图的各个栅格点分别存储数字高程模型数据中相对应的高程值,且单个栅格点存储高程值所占空间大小为NByte,然后进入步骤003。
步骤003.主节点根据单个从节点的内存大小MemSize,根据预设存储处理比例系数a,获得单个从节点的单次最大数据块处理能力DataVol=MemSize×a,其中0<a<1,实际应用中时,我们可以针对a定义为0.5;并根据单个从节点的单次最大数据块处理能力DataVol,以及单个栅格点存储高程值所占空间大小为NByte,通过获得单个从节点单次最大数据块处理能力所对应的栅格点个数PixelNum,然后定义整数参数i=1,并进入步骤004,继续执行针对数字高程模型栅格图中栅格点的划分与调度。
理想条件下,视点位于数字高程模型栅格图的中心位置,主节点可以采用等角度进行划分,如图3所示。该数据划分方式能够保证每一个从节点,获取到相等个数的栅格点,保证了计算效率最大化。这种常规数据划分策略只是假设视点位于数字高程模型栅格图的中心位置,而且数字高程模型栅格图是规则的矩形数据块,如图4所示,无法应对数字高程模型栅格图为不规则多边形的情况,如图5所示。针对图4与图5的具体情况,本发明提出了等面积数据划分方案,即每一次划分,使得各个从节点分别获得彼此个数相等的栅格点,具体如接下来步骤004,以及后续步骤所示。
步骤004.主节点获得所有从节点,单次最大数据块处理能力所对应的总栅格点个数为PixelNum×MPISize,并判断PixelNum×MPISize是否大于等于GlobalSize,是则说明对于所有从节点而言,数字高程模型栅格图中栅格点能够一次性划分完,则进入步骤005;否则说明对于所有从节点而言,数字高程模型栅格图中栅格点不能够一次性划分完,则进入步骤006。
步骤005.主节点将数字高程模型栅格图中的所有栅格点平均分别给各个从节点,作为主节点针对数字高程模型栅格图中栅格点的第i次分配,其中,各个从节点分别所获栅格点的个数并进入步骤007。
步骤006.主节点针对数字高程模型栅格图中的栅格点,向各个从节点进行第i次分配,其中,分别向各个从节点分配的栅格点的个数ni=PixelNum,并进入步骤007。
步骤007.主节点根据第i次栅格点分配过程中,各个从节点所获栅格点的个数ni,以及预设数字高程模型属性参数,针对数字高程模型栅格图进行划分,获得各个从节点在数字高程模型栅格图中分别所对应的目标栅格点区域,且各个从节点分别所对应目标栅格点区域中栅格点的个数等于ni,并进入步骤008;其中,所述预设数字高程模型属性参数包括数据可读写性、数据集的波段、起始X方向像素位置、起始Y方向像素位置、数据的X方向像素大小、数据的Y方向像素大小、缓存大小、数据类型。
上述步骤007的操作具体包括如下步骤:
步骤00701.初始化整数参数k=1,并进入步骤00702。
步骤00702.主节点根据预设数字高程模型属性参数,针对数字高程模型栅格图中未分配栅格点的区域,以视点与数字高程模型栅格图未分配栅格点区域左上角顶点之间的连线,作为第k个从节点所对应目标栅格点区域的左侧边界,并将该边界以视点为轴心、沿数字高程模型栅格图的边缘做顺时针转动,直至该边界与左侧边界之间栅格点的个数为ni时,停止该边界的转动,并将此时该边界的位置作为第k个从节点所对应目标栅格点区域的右侧边界,则该左侧边界与右侧边界之间的区域即为第k个从节点所对应的目标栅格点区域,然后进入步骤00703。
步骤00703.判断k是否等于MPISize,是则进入所述步骤008;否则将k+1的值赋予k,并返回步骤00702。
步骤008.基于上述步骤007中的具体操作,如图6所示,主节点在数字高程模型栅格图中,分别针对各个从节点所对应的目标栅格点区域,在目标栅格点区域左右边界的外侧分别设置一个缓冲区,作为与该目标栅格点区域相对应的缓冲区,其中,单个缓冲区的宽度大小为10个栅格点,各个从节点所对应的目标栅格点区域和缓冲区构成从节点所对应的访问区域,且主节点分别获得各个从节点所对应访问区域的顶点序列,并分别发送给对应从节点,然后进入步骤009。
步骤009.主节点调用IndexPack模块,如图7所示,分别针对各个从节点所对应访问区域中的栅格点,建立各个从节点所对应的栅格点集合为三元组数据集合,然后,主节点分别针对各个从节点,建立从节点所对应三元组数据集合与数字高程模型栅格图中栅格点之间的索引,并分别发送给对应从节点,然后进入步骤010,其中,该索引通过遍历三元组数据集合,记录数字高程模型数据中每一行元素在三元组数据集合的起始位置而获得。
步骤010.各从节点分别根据所对应的访问区域的顶点序列,以及从节点所对应栅格点集合与数字高程模型栅格图中栅格点之间的索引,获取其访问区域所对应的数字高程模型数据,并进入步骤011。
步骤011.各从节点分别基于其访问区域所对应的数字高程模型数据,根据预设可视域分析算法属性参数,调用ViewshedAnalysis模块,针对其访问区域中目标栅格点区域所对应的数字高程模型数据执行可视域分析,获得对应第i次栅格点分配,各从节点的可视域分析结果,并返回给主节点;同时,获得对应第i次栅格点分配,各从节点分别执行可视域分析的分析时间集合{ti},返回给主节点,然后判断i是否大于1,是则进入步骤017,否则进入步骤012;其中,所述预设可视域分析算法属性参数包括可视域分析算法种类、视线形态、距离权、视点高度、目标点高度、视线传播方式、视线可逆性、可视范围、视线衰变函数。
步骤012.主节点判断PixelNum×MPISize是否大于等于GlobalSize,是则说明数字高程模型栅格图中的栅格点已经分配结束,则进入步骤021;否则说明数字高程模型栅格图中的栅格点还没有分配结束,存在剩余,则进入步骤013。
步骤013.主节点判断GlobalSize是否大于2×PixelNum×MPISize,是则说明数字高程模型栅格图中剩余未分配的栅格点至少还需要分配2次,则进入步骤014,否则说明数字高程模型栅格图中剩余未分配的栅格点还需要分配1次,即可分配结束,则进入步骤015。
步骤014.主节点根据第i次针对各个从节点所分配的栅格点个数ni,按预设分配优化比例b,针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,且第i+1次针对各个从节点所分配的栅格点个数ni+1=ni×b,b<1,然后进入步骤016,这里对于按预设分配优化比例b来说,我们实际应用可以设定为85%。
步骤015.主节点根据第i次针对各个从节点所分配的栅格点个数ni,针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,且第i+1次针对各个从节点所分配的栅格点个数 然后进入步骤016。
步骤016.将i+1的值赋给i,并返回步骤007。
步骤017.主节点判断数字高程模型栅格图中是否存在未分配的栅格点,是则进入步骤018,否则进入步骤021。
步骤018.主节点根据获得对应第i-1次栅格点分配的从节点的效率ParaEff(i-1),以及根据获得对应第i次栅格点分配的从节点的效率ParaEff(i),然后主节点判断ParaEff(i)是否大于ParaEff(i-1),是则进入步骤019;否则进入步骤020。
步骤019.判断ni×b×MPISize是否大于数字高程模型栅格图中未分配的栅格点的数目,是则主节点针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,将数字高程模型栅格图中未分配的栅格点平均分配给各个从节点,获取第i+1次针对各个从节点所分配的栅格点个数ni+1,并返回步骤016;否则返回步骤014。
步骤020.判断ni-1×MPISize是否大于数字高程模型栅格图中未分配的栅格点的数目,是则主节点针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,将数字高程模型栅格图中未分配的栅格点平均分配给各个从节点,获取第i+1次针对各个从节点所分配的栅格点个数ni+1,并返回步骤016;否则主节点针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,且第i+1次针对各个从节点所分配的栅格点个数ni+1等于ni-1,并返回步骤016。
步骤021.主节点将针对数字高程模型数据,调用MergeResult模块,将所接收到的可视域分析结果合并生成结果文件进行输出,即获得分布式并行空间可视域分析方法的结果。
最后当本发明所设计分布式并行空间可视域分析方法执行完之后,主节点调用MPIInfo模块,结束MPI并行环境。
本发明所设计分布式并行空间可视域分析方法,基于上述设计步骤基础之上,还包括建立日志文件,通过调用LogFile模块,针对各步骤中的数据设置、数据获取、数据统计和迭代次数进行记录。
下面以ReferencePlane可视域分析方法为例,具体采用本发明所设计分布式并行空间可视域分析方法针对某一实际问题进行分析,其中,该实施例中主节点所获数字高程模型数据,对应的数字高程模型栅格图为3520×3000,分辨率为100m的规则矩形,为了对比算法的性能,我们针对该数据进行重采样,分辨率分别为50m和30m,最终生成三个独立的数据集,主节点所获单个从节点内存大小MemSize=8GB,单个栅格点存储高程值所占空间大小为4个字节,然后按照本发明所设计步骤001至步骤021的方法进行执行,如图8,以及图9a至图9c所示,本发明所设计分析方法增加了定量不规则数据划分的机制,有针对性地处理并行可视域计算中的数据共享问题;并且数据动态调度机制的使用,避免处理海量数字高程模型数据时效率预测不准确问题。与传统的并行可视域算法相比,经过不规则数据划分与索引机制设置后,本发明所设计分析方法具有很好的可行性、低成本和可移植性,并且动态调度策略更以取得较为理想的计算效率,因此,本发明所设计分布式并行空间可视域分析方法,适合在更多的领域内进行应用,以检验其性能。
上面结合说明书附图针对本发明的实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下做出各种变化。
Claims (9)
1.一种分布式并行空间可视域分析方法,基于主节点和至少一个从节点,实现分布式并行空间可视域分析方法,其中,各从节点彼此具有相等的软硬件配置;其特征在于,分布式并行空间可视域分析方法包括如下步骤:
步骤001.主节点读取数字高程模型数据,并获取从节点的个数MPISize,以及单个从节点的内存大小MemSize,进入步骤002;
步骤002.主节点将数字高程模型数据转化为与之相对应的数字高程模型栅格图,并获取数字高程模型栅格图中栅格点的总个数GlobalSize;其中,数字高程模型栅格图的各个栅格点分别存储数字高程模型数据中相对应的高程值,且单个栅格点存储高程值所占空间大小为NByte,然后进入步骤003;
步骤003.主节点根据单个从节点的内存大小MemSize,根据预设存储处理比例系数a,获得单个从节点的单次最大数据块处理能力DataVol=MemSize×a,其中0<a<1;并根据单个从节点的单次最大数据块处理能力DataVol,以及单个栅格点存储高程值所占空间大小为NByte,获得单个从节点单次最大数据块处理能力所对应的栅格点个数PixelNum,然后定义整数参数i=1,并进入步骤004;
步骤004.主节点获得所有从节点,单次最大数据块处理能力所对应的总栅格点个数为PixelNum×MPISize,并判断PixelNum×MPISize是否大于等于GlobalSize,是则进入步骤005;否则进入步骤006;
步骤005.主节点将数字高程模型栅格图中的所有栅格点平均分别给各个从节点,作为主节点针对数字高程模型栅格图中栅格点的第i次分配,其中,各个从节点分别所获栅格点的个数并进入步骤007;
步骤006.主节点针对数字高程模型栅格图中的栅格点,向各个从节点进行第i次分配,其中,分别向各个从节点分配的栅格点的个数ni=PixelNum,并进入步骤007;
步骤007.主节点根据第i次栅格点分配过程中,各个从节点所获栅格点的个数ni,以及预设数字高程模型属性参数,针对数字高程模型栅格图进行划分,获得各个从节点在数字高程模型栅格图中分别所对应的目标栅格点区域,且各个从节点分别所对应目标栅格点区域中栅格点的个数等于ni,并进入步骤008;
步骤008.主节点在数字高程模型栅格图中,分别为各个从节点所对应的目标栅格点区域设置预设大小的缓冲区,各个缓冲区分别与对应目标栅格点区域的边界外侧相邻,各个从节点所对应的目标栅格点区域和缓冲区构成从节点所对应的访问区域,且主节点分别获得各个从节点所对应访问区域的顶点序列,并分别发送给对应从节点,然后进入步骤009;步骤009.主节点分别针对各个从节点所对应访问区域中的栅格点,建立各个从节点所对应的栅格点集合,然后,主节点分别针对各个从节点,建立从节点所对应栅格点集合与数字高程模型栅格图中栅格点之间的索引,并分别发送给对应从节点,然后进入步骤010;
步骤010.各从节点分别根据所对应的访问区域的顶点序列,以及从节点所对应栅格点集合与数字高程模型栅格图中栅格点之间的索引,获取其访问区域所对应的数字高程模型数据,并进入步骤011;
步骤011.各从节点分别基于其访问区域所对应的数字高程模型数据,根据预设可视域分析算法属性参数,针对其访问区域中目标栅格点区域所对应的数字高程模型数据执行可视域分析,获得对应第i次栅格点分配,各从节点的可视域分析结果,并返回给主节点;同时,获得对应第i次栅格点分配,各从节点分别执行可视域分析的分析时间集合{ti},返回给主节点,然后判断i是否大于1,是则进入步骤017,否则进入步骤012;
步骤012.主节点判断PixelNum×MPISize是否大于等于GlobalSize,是则进入步骤021;否则进入步骤013;
步骤013.主节点判断GlobalSize是否大于2×PixelNum×MPISize,是则进入步骤014,否则进入步骤015;
步骤014.主节点根据第i次针对各个从节点所分配的栅格点个数ni,按预设分配优化比例b,针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,且第i+1次针对各个从节点所分配的栅格点个数ni+1=ni×b,b<1,然后进入步骤016;
步骤015.主节点根据第i次针对各个从节点所分配的栅格点个数ni,针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,且第i+1次针对各个从节点所分配的栅格点个数 然后进入步骤016;
步骤016.将i+1的值赋给i,并返回步骤007;
步骤017.主节点判断数字高程模型栅格图中是否存在未分配的栅格点,是则进入步骤018,否则进入步骤021;
步骤018.主节点根据获得对应第i-1次栅格点分配的从节点的效率ParaEff(i-1),以及根据获得对应第i次栅格点分配的从节点的效率ParaEff(i),然后主节点判断ParaEff(i)是否大于ParaEff(i-1),是则进入步骤019;否则进入步骤020;
步骤019.判断ni×b×MPISize是否大于数字高程模型栅格图中未分配的栅格点的数目,是则主节点针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,将数字高程模型栅格图中未分配的栅格点平均分配给各个从节点,获取第i+1次针对各个从节点所分配的栅格点个数ni+1,并返回步骤016;否则返回步骤014;
步骤020.判断ni-1×MPISize是否大于数字高程模型栅格图中未分配的栅格点的数目,是则主节点针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,将数字高程模型栅格图中未分配的栅格点平均分配给各个从节点,获取第i+1次针对各个从节点所分配的栅格点个数ni+1,并返回步骤016;否则主节点针对数字高程模型栅格图中未分配的栅格点进行第i+1次分配,且第i+1次针对各个从节点所分配的栅格点个数ni+1等于ni-1,并返回步骤016;
步骤021.主节点将针对数字高程模型数据,将所接收到的可视域分析结果合并生成结果文件进行输出,即获得分布式并行空间可视域分析方法的结果。
2.根据权利要求1所述一种分布式并行空间可视域分析方法,其特征在于:所述各从节点基于MPI并行环境执行所述分布式并行空间可视域分析方法中的相应操作,其中,MPI并行环境包括至少一个MPI进程,MPI进程的数量与从节点的个数MPISize相等。
3.根据权利要求1所述一种分布式并行空间可视域分析方法,其特征在于:所述步骤003中,主节点根据单个从节点的单次最大数据块处理能力DataVol,以及单个栅格点存储高程值所占空间大小为NByte,通过获得单个从节点单次最大数据块处理能力所对应的栅格点个数PixelNum。
4.根据权利要求1所述一种分布式并行空间可视域分析方法,其特征在于:所述步骤007中,所述预设数字高程模型属性参数包括数据可读写性、数据集的波段、起始X方向像素位置、起始Y方向像素位置、数据的X方向像素大小、数据的Y方向像素大小、缓存大小、数据类型。
5.根据权利要求1所述一种分布式并行空间可视域分析方法,其特征在于:所述步骤007包括如下步骤:
步骤00701.初始化整数参数k=1,并进入步骤00702;
步骤00702.主节点根据预设数字高程模型属性参数,针对数字高程模型栅格图中未分配栅格点的区域,以视点与数字高程模型栅格图未分配栅格点区域左上角顶点之间的连线,作为第k个从节点所对应目标栅格点区域的左侧边界,并将该边界以视点为轴心、沿数字高程模型栅格图的边缘做顺时针转动,直至该边界与左侧边界之间栅格点的个数为ni时,停止该边界的转动,并将此时该边界的位置作为第k个从节点所对应目标栅格点区域的右侧边界,则该左侧边界与右侧边界之间的区域即为第k个从节点所对应的目标栅格点区域,然后进入步骤00703;
步骤00703.判断k是否等于MPISize,是则进入所述步骤008;否则将k+1的值赋予k,并返回步骤00702。
6.根据权利要求1或6所述一种分布式并行空间可视域分析方法,其特征在于:所述步骤008中,主节点在数字高程模型栅格图中,分别针对各个从节点所对应的目标栅格点区域,在目标栅格点区域左右边界的外侧分别设置一个缓冲区,作为与该目标栅格点区域相对应的缓冲区,其中,单个缓冲区的宽度大小为10个栅格点。
7.根据权利要求1所述一种分布式并行空间可视域分析方法,其特征在于:所述步骤009中,所述各个从节点所对应的栅格点集合为三元组数据集合,然后,主节点分别针对各个从节点,建立从节点所对应三元组数据集合与数字高程模型栅格图中栅格点之间的索引,并分别发送给对应从节点,其中,该索引通过遍历三元组数据集合,记录数字高程模型数据中每一行元素在三元组数据集合的起始位置而获得。
8.根据权利要求1所述一种分布式并行空间可视域分析方法,其特征在于:所述步骤011中,所述预设可视域分析算法属性参数包括可视域分析算法种类、视线形态、距离权、视点高度、目标点高度、视线传播方式、视线可逆性、可视范围、视线衰变函数。
9.根据权利要求1所述一种分布式并行空间可视域分析方法,其特征在于:所述分布式并行空间可视域分析方法还包括建立日志文件,针对各步骤中的数据设置、数据获取、数据统计和迭代次数进行记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510624950.6A CN105260523B (zh) | 2015-09-25 | 2015-09-25 | 一种分布式并行空间可视域分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510624950.6A CN105260523B (zh) | 2015-09-25 | 2015-09-25 | 一种分布式并行空间可视域分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105260523A true CN105260523A (zh) | 2016-01-20 |
CN105260523B CN105260523B (zh) | 2018-06-26 |
Family
ID=55100212
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510624950.6A Active CN105260523B (zh) | 2015-09-25 | 2015-09-25 | 一种分布式并行空间可视域分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105260523B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105842676A (zh) * | 2016-06-16 | 2016-08-10 | 成都中科合迅科技有限公司 | 一种雷达盲区分析方法及装置 |
CN107729138A (zh) * | 2017-09-14 | 2018-02-23 | 北京天耀宏图科技有限公司 | 一种高性能分布式矢量空间数据的分析方法和装置 |
CN105869211B (zh) * | 2016-06-16 | 2018-10-12 | 成都中科合迅科技有限公司 | 一种可视域分析方法及装置 |
CN109450913A (zh) * | 2018-11-27 | 2019-03-08 | 浪潮软件股份有限公司 | 一种基于策略的多节点注册调度方法 |
CN111681313A (zh) * | 2020-05-18 | 2020-09-18 | 云南迅测科技有限公司 | 一种基于数字地形图的空间视域分析方法及电子设备 |
CN112702747A (zh) * | 2020-12-30 | 2021-04-23 | 南京师范大学 | 一种基于视线的通信可视域获得方法 |
CN113256806A (zh) * | 2021-05-24 | 2021-08-13 | 昆明理工大学 | 一种城市道路天空可视域海量数据优化处理方法 |
CN114912268A (zh) * | 2022-05-09 | 2022-08-16 | 中电普信(北京)科技发展有限公司 | 一种计算机仿真中实时快速通视判断方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902590A (zh) * | 2012-09-03 | 2013-01-30 | 南京师范大学 | 面向并行数字地形分析海量dem部署与调度方法 |
-
2015
- 2015-09-25 CN CN201510624950.6A patent/CN105260523B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102902590A (zh) * | 2012-09-03 | 2013-01-30 | 南京师范大学 | 面向并行数字地形分析海量dem部署与调度方法 |
Non-Patent Citations (2)
Title |
---|
XIAODONG SONG 等: ""A FAULT TOLERANCE SCHEDULING ALGORITHM FOR PARALLEL TERRAIN ANALYSIS"", 《2012 11TH INTERNATIONAL SYMPOSIUM ON DISTRIBUTED COMPUTING AND APPLICATION TO BUSINESS,ENGINEERING & SCIENCE》 * |
宋效东 等: ""DEM与地形分析的并行计算"", 《地理与地理信息科学》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105842676A (zh) * | 2016-06-16 | 2016-08-10 | 成都中科合迅科技有限公司 | 一种雷达盲区分析方法及装置 |
CN105842676B (zh) * | 2016-06-16 | 2018-03-30 | 成都中科合迅科技有限公司 | 一种雷达盲区分析方法及装置 |
CN105869211B (zh) * | 2016-06-16 | 2018-10-12 | 成都中科合迅科技有限公司 | 一种可视域分析方法及装置 |
CN107729138A (zh) * | 2017-09-14 | 2018-02-23 | 北京天耀宏图科技有限公司 | 一种高性能分布式矢量空间数据的分析方法和装置 |
CN109450913A (zh) * | 2018-11-27 | 2019-03-08 | 浪潮软件股份有限公司 | 一种基于策略的多节点注册调度方法 |
CN111681313A (zh) * | 2020-05-18 | 2020-09-18 | 云南迅测科技有限公司 | 一种基于数字地形图的空间视域分析方法及电子设备 |
CN112702747A (zh) * | 2020-12-30 | 2021-04-23 | 南京师范大学 | 一种基于视线的通信可视域获得方法 |
CN113256806A (zh) * | 2021-05-24 | 2021-08-13 | 昆明理工大学 | 一种城市道路天空可视域海量数据优化处理方法 |
CN114912268A (zh) * | 2022-05-09 | 2022-08-16 | 中电普信(北京)科技发展有限公司 | 一种计算机仿真中实时快速通视判断方法 |
CN114912268B (zh) * | 2022-05-09 | 2023-02-10 | 中电普信(北京)科技发展有限公司 | 一种计算机仿真中实时快速通视判断方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105260523B (zh) | 2018-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105260523A (zh) | 一种分布式并行空间可视域分析方法 | |
Jiang et al. | Measuring urban sprawl in Beijing with geo-spatial indices | |
CN111882977B (zh) | 一种高精度地图构建方法及系统 | |
CN104821013A (zh) | 基于大地坐标系数字高程模型的地表面积提取方法及系统 | |
CN103606192A (zh) | 一种基于三维虚拟地球的风场可视化展示方法 | |
CN103077549B (zh) | 一种基于kd树的实时大规模地形可视化实现方法 | |
CN102402728B (zh) | 一种土地利用空间规划预测与模拟空间尺度转换方法 | |
Jiang et al. | Large-scale taxi O/D visual analytics for understanding metropolitan human movement patterns | |
Andrade et al. | Efficient viewshed computation on terrain in external memory | |
CN110675496A (zh) | 基于三维城市地质模型的网格剖分和可视化方法及其系统 | |
CN105761310A (zh) | 一种天空可视域数字地图的模拟分析及图像显示方法 | |
CN102722885A (zh) | 一种加快三维图形显示的方法 | |
CN102722618B (zh) | 一种基于抛物方程的准三维电磁环境模型构建与并行方法 | |
Li et al. | GPU-CA model for large-scale land-use change simulation | |
CN102073645B (zh) | 虚拟城市系统及其运行方法 | |
CN112528508B (zh) | 电磁可视化方法和装置 | |
CN103778191B (zh) | 一种顾及空间邻近关系的矢量等高线数据划分方法 | |
CN104657968A (zh) | 车载三维激光点云立面分类及轮廓线提取自动化方法 | |
Wang et al. | Efficient visibility analysis for massive observers | |
Wang et al. | Areawide dynamic traffic noise simulation in urban built-up area using beam tracing approach | |
CN103809937A (zh) | 一种基于gpu的通视并行处理方法 | |
CN110070279B (zh) | 基于多源数据的用地效率量化评估方法、系统和存储介质 | |
CN115906717A (zh) | 一种水土保持的侵蚀计算方法及系统 | |
CN116563453A (zh) | 一种加速渲染的精细化污染扩散可视化方法 | |
CN103336778B (zh) | 一种面向并行poi简化的任务拆分与分发方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |