法律状态公告日
法律状态信息
法律状态
2019-09-24
授权
授权
2018-09-21
实质审查的生效 IPC(主分类):G06F17/50 申请日:20180327
实质审查的生效
2018-08-28
公开
公开
技术领域
本发明属于电磁态势可视化领域,具体涉及一种基于纹理映射的电磁环境体数据可视化方法。
背景技术
电磁态势是指电子对抗双方电磁力量对峙的状态和形成的形势,电磁态势整体具有着看不见摸不着的特性,可视化表达其整体非线性特性及演化规律,是准确、清晰、客观、形象地展示和表达电磁态势的基础。利用战场电磁环境的仿真预测模型、或典型场景实测得到的电磁环境体数据,包含着电磁环境中的多维信息。将这些电磁环境体数据形象的可视化展现出来,是电磁态势可视化研究的重要内容。
目前二三维电磁态势是仿真实验和战场电磁态势研究的重要内容。周倜等人提出了改进平行坐标理论框架下的二维电磁态势展现方法,定量表达了电磁态势数据主体,但文章较难直观、真实地实现电磁态势的可视化。三维电磁态势可视化方法研究还处于不断完善阶段,是目前研究的热点问题。三维态势的构建方法主要是面绘制和体绘制两类,面绘制法一般先在三维空间数据场中构造出二维平面、曲面等几何图元,然后利用计算机图形学技术实现绘制展现。主要绘制思路是先提取目标物体的表面信息,再根据光照、明暗模型调用绘制算法进行阴影和渲染得到最后的显示图像。如此绘制出来的图像不足反映原始数据场的全貌和细节,只能反映出部分相关图像。
在涉及到大范围空间的电磁环境体数据的可视化实现时,目前的一些方法由于处理的数据量大,其算法和系统运行需要依赖高性能的硬件设施,限制了推广和应用。所以,能够兼顾快速高效的渲染方式,又能清晰反映电磁环境局部与整体的可视化方法,是十分具有意义的。
发明内容
要解决的技术问题
为了避免现有技术的什么不足之处,本发明提出一种电磁环境体数据可视化方法,将地理空间标定信息同地理信息系统结合,在真实地理空间位置上快速、高效、直观、清晰地可视化展示电磁环境整体及内部的数据场信息。
技术方案
一种基于纹理映射的电磁环境体数据可视化方法,其特征在于步骤如下:
步骤1:获取和载入原始电磁环境体数据:
将采集系统的实验数据或电磁波物理传播模型计算得到的电磁仿真数据作为原始电磁环境体数据,原始电磁环境体数据包括地理空间标定信息和含有相对坐标信息的离散电磁场强度数据(xp,yp,zp,E),将(xp,yp,zp,E)按照层数、行数和列数的格式存储为>
步骤2:坐标系转换和统一:
根据地理空间标定信息,将电磁环境体数据中相对坐标信息(xp,yp)对应转换为地理空间覆盖范围中的经纬度坐标,再将其转换为将地球表面铺平的平面坐标,再向平面坐标中添加地理空间标定信息中的高程数据Z,转化至地球物理坐标系(x,y,z),再设置渲染绘制时的基准点,建立渲染坐标系,计算各点在渲染坐标系中的相对位置,完成从经纬度坐标到渲染坐标的转换和统一;
经纬度转化为地面平面坐标系:
X=(longitude+180)*QuiKuandu/360
Y=(latitude+90)*QiuGaodu/180
其中,longitude为经度,latitude为纬度,QiuKuandu为地球赤道长度,QiuGaodu为二分之一赤道长度,(X,Y)为平面坐标系坐标;
地面平面坐标系转化为地球物理坐标系:
x=cos(AngY)*(QiuRad+Y)*cos(AngX)
y=cos(AngY)*(QiuRad+Y)*sin(AngX)
z=(QiuRad+Z)*sin(AngY)
AngX=(-180+X/QiuKuandu*360)*π/180
AngY=(-90+Y/QiuGaodu*180)*π/180
其中QiuRad为地球半径,(x,y,z)为转换后的地球物理坐标系坐标;Z为地理标定信息中的高程数据;
步骤3:设置纹理贴图大小及纹理层数:
根据数据层数索引NLEVEL的大小设置对应的纹理层数,采用水平堆叠平面纹理的方式表示原始电磁环境体数据;根据需求设置纹理贴图的大小 Texturewidth*TextureHeight,Texturewidth为贴图宽度,TextureHeight为贴图高度;
步骤4:逐层处理,生成纹理对象:
为每层纹理创建DIB设备无关位图文件,遍历设定每个像素点,对每个像素点进行步骤5;
步骤5:数据插值和颜色映射:
根据像素点位置,载入相邻4个原始数据点,插值计算各像素点处的电磁场强度;设置传递函数,剔除无需可视化点,将物理属性映射为颜色属性,赋予各点(R.G.B) 颜色值和纹理坐标(u.v);
所述的插值计算具体为:
设原始体数据Data[NLEVEL][NLON][NLAT]有NLEVEL层,每层的数据是大小是NLON*NLAT,设置每层的纹理的大小为TextureWidth*TextureHeight;求纹理像素点第i,k个索引点处场强值;
(1)计算像素点位置到数据点位置的相对距离:
intcol=INT[i*NLON/TextureWidth]floatcol=i*NLON/TextureWidth
intcow=INT[k*NLAT/TextureHeight]floatcow=k*NLAT/TextureHeight
取小数部分dfi和dfj:
dfi=floatcol-intcol dfj=floatcow-intcow
(2)获取该像素点附近的数据值
v1=Data[level][intcol][intcow]v2=Data[level][intcol+1][intcow]
v3=Data[level][intcol+1][intcow+1]v4=Data[level][intcol][intcow+1]
其中Data为原始电磁环境体数据,level为当前纹理层数,v1、v2、v3、v4为该像素点附近4个数据点的数据值;
(3)计算距离权值因子
dis1=[1/sqrt(dfi*dfi+dfj*dfj)]2
dis2=[1/sqrt(dfi*dfi+(1-dfj)*(1-dfj))]2
dis3=[1/sqrt((1-dfi)*(1-dfi)+(1-dfj)*(1-dfj))]2
dis4=[1/sqrt((1-dfi)*(1-dfi)+dfj*dfj)]2
disAll=dis1+dis2+dis3+dis4
(4)加权插值
Datafinal=v1*dis1/disAll+v2*dis2/disAll+v3*dis3/disAll+v4*dis4/disAll
边界处仅使用两点插值;
步骤6:重复步骤4~5,生成所有共NLEVEL层的纹理对象并存储在纹理缓存中;
步骤7:纹理映射及Alpha融合:
将纹理缓存中的纹理数据按照其纹理坐标映射至空间对应位置坐标;设置各层融合方式,进行渲染,得到自下而上各层数据融合后的半透明效果。
有益效果
本发明提出的一种基于纹理映射的电磁环境体数据可视化方法,采用多层纹理映射堆叠的方式实现了三维电磁态势表示,Alpha融合透明处理使得电磁环境数据场的全貌和细节都得以展现,整体上具有很快的渲染速度,适用于大范围空间电磁环境体数据在地理信息系统上的可视化展示。
附图说明
图1:本方法的系统框图;
图2:未经数据插值纹理映射可视化效果;
图3:经过数据插值后的纹理映射可视化效果;
图4:结合地理信息系统和融合处理后的电磁环境体数据可视化效果。
具体实施方式
现结合实施例、附图对本发明作进一步描述:
图1是本发明提出的基于纹理映射的电磁环境体数据可视化方法的系统框图,具体包括以下步骤:
步骤一:获取和载入原始电磁环境体数据。
实验采集系统获得的原始数据或者通过电磁波传播模型计算模块得到的离散数据,包括地理空间标定信息,确定电磁环境体数据的空间覆盖范围,含有坐标信息的离散电磁场强度数据(x,y,z,E)按照层数、行数和列数的格式存储 Data[NLEVEL][NLON][NLAT]。其中NLEVEL为层数索引,NLON为列数索引,NLAT 为列数索引。
步骤二:坐标系转换和统一。
输入空间覆盖范围的地球经纬度坐标,将其转换为地球表面铺平的平面坐标,再加以高度数据,转化为地球物理坐标系,最后设置渲染绘制时的基准点,计算各点的相对位置,建立渲染相对坐标系,完成从经纬度坐标到渲染坐标的转换和统一。
步骤三:设置纹理贴图大小及纹理层数。
根据数据高度范围设置对应纹理层数,采用水平堆叠平面纹理的方式表示原始电磁环境体数据。根据需求设置纹理贴图的大小Texturewidth*TextureHeight,Texturewidth 为贴图宽度,TextureHeight为贴图高度,它们决定了每层纹理的像素点个数,影响最终可视化效果的精细程度。
步骤四:逐层处理,生成纹理对象。
为每层纹理创建DIB设备无关位图文件,遍历设定每个像素点,为每个像素点进行步骤五。
步骤五:数据插值和颜色映射。
根据像素点位置,载入相邻4个原始数据点,插值计算各像素点处的电磁场强度。设置传递函数,剔除无需可视化点,将物理属性映射为颜色属性,赋予各点(R.G.B) 颜色值和纹理坐标(u.v)。
重复步骤四、步骤五,生成所有层数的纹理对象并存储在纹理缓存中。图2为未经数据插值的纹理生成效果,图3为经过数据插值后的纹理生成效果。
步骤六:纹理映射及Alpha融合。
将纹理缓存中的纹理数据按照其纹理坐标映射至空间对应位置坐标。设置各层融合方式,进行渲染,得到自下而上各层数据融合后的半透明效果。图4为最终得到电磁环境体数据可视化效果。
步骤二所涉及的坐标系转换和统一的具体方法是:
经纬度转化为地面平面坐标系:
X=(longitude+180)*QuiKuandu/360
Y=(latitude+90)*QiuGaodu/180
其中,longitude为经度,latitude为纬度,QiuKuandu为地球赤道长度,QiuGaodu为二分之一赤道长度,(X,Y)为平面坐标系坐标。
地面平面坐标系转化为地球物理坐标系:
AngX=(-180+X/QiuKuandu*360)*π/180
AngY=(-90+Y/QiuGaodu*180)*π/180
x=cos(AngY)*(QiuRad+Y)*cos(AngX)
y=cos(AngY)*(QiuRad+Y)*sin(AngX)
z=(QiuRad+Z)*sin(AngY)
其中QiuRad为地球半径,(x,y,z)为转换后的地球物理坐标系坐标。
步骤五所涉及的数据插值计算的具体方法是:
设原始体数据Data[NLEVEL][NLON][NLAT]有NLEVEL层,每层的数据是大小是NLON*NLAT,设置每层的纹理的大小为TextureWidth*TextureHeight。求纹理像素点 x,y处场强值。
(5)计算像素点位置到数据点位置的相对距离:
intcol=INT[x*NLON/TextureWidth]floatcol=x*NLON/TextureWidth
intcow=INT[y*NLAT/TextureHeight]floatcow=y*NLAT/TextureHeight
取小数部分dfi和dfj:
dfi=floatcol-intcol dfj=floatcow-intcow
(6)获取该像素点附近的数据值
v1=Data[level][intcol][intcow]v2=Data[level][intcol+1][intcow]
v3=Data[level][intcol+1][intcow+1]v4=Data[level][intcol][intcow+1]
其中Data为原始电磁环境体数据,level为当前纹理层数,v1、v2、v3、v4为该像素点附近4个数据点的数据值。
(7)计算距离权值因子
dis1=[1/sqrt(dfi*dfi+dfj*dfj)]2
dis2=[1/sqrt(dfi*dfi+(1-dfj)*(1-dfj))]2
dis3=[1/sqrt((1-dfi)*(1-dfi)+(1-dfj)*(1-dfj))]2
dis4=[1/sqrt((1-dfi)*(1-dfi)+dfj*dfj)]2
disAll=dis1+dis2+dis3+dis4
(8)加权插值
Datafinal=v1*dis1/disAll+v2*dis2/disAll+v3*dis3/disAll+v4*dis4/disAll
边界处仅使用两点插值。
图2为未经数据插值的各层纹理生成效果,颜色分辨率较低;图3为经过数据插值后的各层纹理生成效果,数据点更为精细,颜色分辨率更高;图4为最终得到的电磁态势环境体数据可视化效果,数据场的可视化结果通过地理标定信息的坐标轴转换和统一同地理信息系统相结合,展示了数据场的真实地理空间分布,以及整体全貌和内部细节。
机译: 基于阴影的纹理映射可视化对象的体积图像数据的处理方法
机译: 基于阴影的纹理映射可视化对象的体积图像数据的处理方法
机译: 基于阴影的纹理映射可视化对象的体积图像数据的处理方法