一种基于CPU和GPU混合的高速并行地形遮蔽计算方法技术

技术编号:19966419 阅读:57 留言:0更新日期:2019-01-03 13:58
本发明专利技术是一种基于CPU和GPU混合的高速并行地形遮蔽计算方法,该方法采用网格化数字高程模型,利用遮蔽分析算法,对区域的地形数据进行分析,从而计算出给定的视点和观察点这条线段上的最远可视距离。本发明专利技术采用的普通CPU并行算法和CUDA并行计算框架混合方法,解决地形遮蔽计算过程中对环境适应能力不足、计算效率低下的问题,实现了对多种应用场景下的支持,大大提高了算法的计算效率。

A High-speed Parallel Terrain Occlusion Computing Method Based on CPU and GPU

The present invention is a high-speed parallel terrain shelter calculation method based on CPU and GPU. The method uses grid digital elevation model and shelter analysis algorithm to analyze the terrain data of the region, thereby calculating the farthest visual distance of the given viewpoint and observation point on this line segment. The hybrid method of common CPU parallel algorithm and CUDA parallel computing framework adopted by the invention solves the problems of insufficient adaptability to environment and low computational efficiency in the process of terrain shelter calculation, realizes support for various application scenarios, and greatly improves the computational efficiency of the algorithm.

【技术实现步骤摘要】
一种基于CPU和GPU混合的高速并行地形遮蔽计算方法
本专利技术属于数据分析领域,涉及一种基于CPU和GPU混合的高速并行地形遮蔽计算方法。
技术介绍
三维场景模拟仿真与地形数据息息相关,而对地形遮蔽的计算能够很好的分析一定范围数据与地形之间的关系,在军事、国土、测绘等方向具有很好的实际意义。传统的地形遮蔽算法的实现过程常使用CPU编程的方法。CPU并行计算最常用的方法是多线程并行运算,通常利用OpenMP对循环进行并行化处理,OpenMP提供了一系列应用程序接口,通过在源代码中加入“pragma”来标明并行化,并通过系统级的抽象降低了并行编码的复杂性。OpenMP以fork-join模型执行。但是CPU编程的方法在大量数据情况下计算效率不高。目前,在大规模的并行计算中,越来越多地应用图形处理器(GPU)进行并行计算。运算平台CUDA(ComputeUnifiedDeviceArchitecture)是一种操作GPU计算的硬件和软件架构,它将GPU视作一个数据并行计算设备,而且无需把这些计算映射到图形API。但在使用GPU进行并行计算的过程中,经常会遇到服务器或者工作站没有显卡或者显卡不支持CUDA的情况。
技术实现思路
本专利技术的目的在于采用普通CPU并行算法和CUDA并行计算框架混合的方法,解决地形遮蔽计算过程中对环境适应能力不足、计算效率低下的问题。为实现上述技术目的,达到上述技术效果,本专利技术通过以下技术方案实现:一种基于CPU和GPU混合的高速并行地形遮蔽计算方法,该方法包括以下步骤:步骤1)建立网格化数字高程模型,以高程矩阵方式来表示地面高程,根据需要计算的区域和高程的读取范围,将该区域划分成若干网格,对网格进行编码,记录每个网格的高程值,计算网格化的高程矩阵,使得区域内任一位置有对应的网格编码,从而得到该位置的高程值;步骤2)采用遮蔽分析算法对区域的地形数据进行分析,将两点在高程矩阵中的编码拟合成一条直线,通过计算直线与高程网格矩阵的交点,得到视点到观察点的地形剖面,根据点与点之间的夹角判断是否通视,计算出最远通视点;步骤3)高程数据校正,将影响高程数据的地球曲率和大气衰减因素作为校正参数,构建校正公式对高程数据进行校正。进一步的,所述步骤1)中,将需要计算的区域划分成网格m×n,网格编码以起始点的地理坐标为网格的原点(0,0),水平方向为0到n-1,垂直方向为0到m-1。进一步的,所述步骤1)中,计算网格化的高程矩阵,包括以下步骤:步骤1.1)根据需要计算的区域的网格大小(m×n),最小点的位置Pmin(lon,lat),其中lon和lat分别表示经度和纬度,最大点的位置Pmax(lon,lat),计算点P(lon,lat)对应的网格编码(x,y),其计算公式如下:单位网格的经纬度分辨率为:R(∆lon,∆lat)=Pmax-Pmin/(n,m);步骤1.2)根据单位网格的经纬度分辨率和起始点的经纬度计算出对应点的网格编码,计算公式如下:(x,y)=(P-Pmin)/R。进一步的,所述步骤2)中,采用地形遮蔽算法计算具体位置,包括以下步骤:步骤2.1)计算视点P0(x0,y0,z0)在高程矩阵中的编码(m0,n0),得到该位置的高程值Z0,计算观察点P1(x1,y1,z1)在高程矩阵中的编码(m1,n1),得到该位置的高程值Z1;步骤2.2)将P0点和P1点在高程矩阵中的编码拟合成一条直线H[x],该直线以高程矩阵的行数为纵坐标Y轴,以高程矩阵的列数为横坐标X轴,其直线公式为:H(x)-m0=(m1-m0)/(n1-n0)×(x-n0);步骤2.3)直线H[x]为视点到观察点在高程矩阵上的投影,通过计算直线与高程网格矩阵的交点,得到对应的网格的高程数组Z[k],得到视点到观察点的地形剖面{x,y,Z[k]};步骤2.4)计算视点与高程数组Z[k]中每个点的与X轴的夹角beta,若tan(beta)大于直线H[x]的斜率则通视,否则不通视,该点为需要计算的最远通视点,根据最远通视点在直线H[x]上的位置,计算出其具体的地理位置。进一步的,所述步骤3)中,采用以下校正公式对高程数据进行校正:Z=Z0+D2(R-1)/d,其中:Z为计入大气折射影响后的校正高程,Z0为观察位置的表面高程,D为观测要素和观测位置之间的平面距离,d为地球的直径,R为光的折射系数。进一步的,光的折射系数R默认值取0.13,适用于白天天空晴朗条件的标准气压下、高程范围为40到100米的位置,采用不同的折射值以模拟各种大气条件和高程对可见性的影响。本专利技术的有益效果是:本专利技术采用CPU和GPU混合的模式,通过对现有地形遮蔽算法的改造与优化,实现了对多种应用场景下的支持,如:低空、超低空和山地等等,大大提高了算法的计算效率。附图说明图1为地形遮蔽示意图;图2为本专利技术的高程网格图。具体实施方式下面将参考附图并结合实施例,来详细说明本专利技术。一种基于CPU和GPU混合的高速并行地形遮蔽计算方法,该方法包括以下步骤:步骤1)建立网格化数字高程模型,以高程矩阵方式来表示地面高程,数字高程模型简称DEM,是通过一组有序数值阵列形式表示地面高程的一种地面模型,本专利技术读取高程模型采用的是高程矩阵的方法,根据需要计算的区域和高程的读取范围,将该区域划分成若干网格,对网格进行编码,记录每个网格的高程值,计算网格化的高程矩阵,使得区域内任一位置有对应的网格编码,从而得到该位置的高程值;步骤2)采用遮蔽分析算法对区域的地形数据进行分析,通过高程矩阵将点对点的地形遮蔽问题转化为离散空间中的直线与某一地形剖面的相交问题,本实施例中,将两点在高程矩阵中的编码拟合成一条直线,通过计算直线与高程网格矩阵的交点,得到视点到观察点的地形剖面,根据点与点之间的夹角判断是否通视,计算出最远通视点;步骤3)高程数据校正,由于地球是一不规则椭圆,简单起见可将地球简化为一个半径为6371km的圆;其中,水准面是指处处与铅垂线垂直的连续封闭曲面;若使用水平面代替水准面,受地球曲率影响,必然会导致误差;所以,在进行地形遮蔽计算时,若计算的点为低空或超低空目标点时,则需要考虑地球曲率对计算结果的影响;而受天气的气压,密度、湿度、温度等变化,也会对计算结果产生误差;因此,本专利技术利用公式对高程数据进行校正,从而减小地球曲率和大气衰减对通视分析的影响,本实施例中,将影响高程数据的地球曲率和大气衰减因素作为校正参数,构建校正公式对高程数据进行校正。所述步骤1)中,将需要计算的区域划分成网格m×n,网格编码以起始点的地理坐标为网格的原点(0,0),水平方向为0到n-1,垂直方向为0到m-1。所述步骤1)中,计算网格化的高程矩阵,包括以下步骤:步骤1.1)根据需要计算的区域的网格大小(m×n),最小点的位置Pmin(lon,lat),其中lon和lat分别表示经度和纬度,最大点的位置Pmax(lon,lat),计算点P(lon,lat)对应的网格编码(x,y),其计算公式如下:单位网格的经纬度分辨率为:R(∆lon,∆lat)=Pmax-Pmin/(n,m);步骤1.2)根据单位网格的经纬度分辨率和起始点的经纬度计算出对应点的网格编码,计算公式如下:(x,y)=(P-Pmin)/R。具本文档来自技高网...

【技术保护点】
1.一种基于CPU和GPU混合的高速并行地形遮蔽计算方法,其特征在于,该方法包括以下步骤:步骤1)建立网格化数字高程模型,以高程矩阵方式来表示地面高程,根据需要计算的区域和高程的读取范围,将该区域划分成若干网格,对网格进行编码,记录每个网格的高程值,计算网格化的高程矩阵,使得区域内任一位置有对应的网格编码,从而得到该位置的高程值;步骤2)采用遮蔽分析算法对区域的地形数据进行分析,将两点在高程矩阵中的编码拟合成一条直线,通过计算直线与高程网格矩阵的交点,得到视点到观察点的地形剖面,根据点与点之间的夹角判断是否通视,计算出最远通视点;步骤3)高程数据校正,将影响高程数据的地球曲率和大气衰减因素作为校正参数,构建校正公式对高程数据进行校正。

【技术特征摘要】
1.一种基于CPU和GPU混合的高速并行地形遮蔽计算方法,其特征在于,该方法包括以下步骤:步骤1)建立网格化数字高程模型,以高程矩阵方式来表示地面高程,根据需要计算的区域和高程的读取范围,将该区域划分成若干网格,对网格进行编码,记录每个网格的高程值,计算网格化的高程矩阵,使得区域内任一位置有对应的网格编码,从而得到该位置的高程值;步骤2)采用遮蔽分析算法对区域的地形数据进行分析,将两点在高程矩阵中的编码拟合成一条直线,通过计算直线与高程网格矩阵的交点,得到视点到观察点的地形剖面,根据点与点之间的夹角判断是否通视,计算出最远通视点;步骤3)高程数据校正,将影响高程数据的地球曲率和大气衰减因素作为校正参数,构建校正公式对高程数据进行校正。2.根据权利要求1所述的基于CPU和GPU混合的高速并行地形遮蔽计算方法,其特征在于,所述步骤1)中,将需要计算的区域划分成网格m×n,网格编码以起始点的地理坐标为网格的原点(0,0),水平方向为0到n-1,垂直方向为0到m-1。3.根据权利要求2所述的基于CPU和GPU混合的高速并行地形遮蔽计算方法,其特征在于,所述步骤1)中,计算网格化的高程矩阵,包括以下步骤:步骤1.1)根据需要计算的区域的网格大小(m×n),最小点的位置Pmin(lon,lat),其中lon和lat分别表示经度和纬度,最大点的位置Pmax(lon,lat),计算点P(lon,lat)对应的网格编码(x,y),其计算公式如下:单位网格的经纬度分辨率为:R(∆lon,∆lat)=Pmax-Pmin/(n,m);步骤1.2)根据单位网格的经纬度分辨率和起始点的经纬度计算出对应点的网格编码,计算公式如下:(x,y)=(P-Pmin)/R。4.根据权利要求3所...

【专利技术属性】
技术研发人员:王毅俞信廉海明张培
申请(专利权)人:中国科学院电子学研究所苏州研究院
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1