天气雷达产品锥面显示程序的设计

上传人:痛*** 文档编号:101430170 上传时间:2022-06-05 格式:DOC 页数:40 大小:1.59MB
收藏 版权申诉 举报 下载
天气雷达产品锥面显示程序的设计_第1页
第1页 / 共40页
天气雷达产品锥面显示程序的设计_第2页
第2页 / 共40页
天气雷达产品锥面显示程序的设计_第3页
第3页 / 共40页
资源描述:

《天气雷达产品锥面显示程序的设计》由会员分享,可在线阅读,更多相关《天气雷达产品锥面显示程序的设计(40页珍藏版)》请在装配图网上搜索。

1、天气雷达产品锥面显示程序设计摘 要天气雷达产品对天气预报有着重要的指示作用,为了提高预报的准确性和形象性,对目前的雷达终端产品有一定的改进,本文介绍了气象雷达终端锥面图形软件的绘制原理及软件实现方法,应用DirectX工具建立考虑地球曲率的锥面模型,结合Visual S 2003编程工具,生成对应各个Cut的图像,将生成的图像作为对应的纹理图片,将模型与图像通过纹理贴图的方法结合在一起,再经过灯光,材质,纹理,视角转换等进行纹理效果处理,让生成的产品更加逼真,易于使用者操作,最终构成气象雷达终端锥面图形的应用软件,并提供软件生成产品的图像实例,在软件的终端还加入了用户控制部分,可以对任意位置的

2、回波信息进行观察,同时在终端提供了参考面和雷达站点的简要信息,让软件的使用者一目了然。关键词:雷达体扫数据 实体建模 DirectX Visual S 2003 纹理贴图The Designing of display program of Weather Radar productsAbstractThe weather radar products has performed an very important part in the weather forecast.In order to enhance the forecast accuracy and the iconicity,

3、the present radar terminal products had been improved. This article introduces the weather radar terminal three dimensional graph software plan principle and the software realization method, by using the DirectX tool establishment considered the curvature of the earth the conical surface model, unif

4、ied the Visual S 2003 to program the tool. The production corresponds each Cut the image, and produce the image took corresponding the texture, the model and the image unified in together, the process light, the material quality, the texture, the angle of view transformation and so on carried on pro

5、cessing, let the production the product be more lifelike, the easy user to operate, finally constituted the weather radar terminal three dimensional graph application software, and provides the software production product the image example.Key words:Radar volume scan data Entity modelingDirectXVisua

6、lS2003Texture map目录论文总页数:361引言11.1概述11.2天气雷达背景知识介绍11.3天气雷达产品介绍21.4研究意义31.5开发环境介绍及研究思路32建立模型52.1 DirectX基础知识52.2 Windows基本编程原理和方法62.3模型的构成思路和设计原理92.3.1雷达基数据产品剖析92.3.2程序概要设计流程102.3.3两种模型的对比122.4地球曲率对模型的影响162.5模型的效果处理3182.5.1灯光效果182.5.2材质效果192.5.3 3D转换效果192.5.4模型控制203反射率产品图像生成223.1反射率数据提取223.2反射率图像生成22

7、3.3加载色表文件234模型与图像结合纹理贴图254.1贴图原则254.2纹理贴图效果处理254.2.1纹理坐标254.2.2 纹理提交模式264.2.3 纹理过滤方式274.2.4纹理混合274.2.5纹理透明284.2.6纹理动画及多级纹理284.3产品生成294.4外界控制315程序设计中需要注意的几个问题325.1关于模型建立的问题325.2关于色表读取的问题325.3关于纹理贴图的问题33结论33参考文献33致35声明3636 / 40天气雷达产品锥面显示程序设计1引言1.1概述天气对人类的生产生活都起着非常重要的作用,天气预报则是人类研究天气,掌握天气,以便更好应用天气的主要手段,

8、因此,天气雷达在天气预报中扮演一个非常重要的角色。新一代多普勒天气雷达对气象预报者及时,准确的预报天气,将气象给人类带来的灾害尽可能将降到最低。新一代多普勒天气雷达的体扫数据提供了强度,速度,谱宽三个基本信息。经过后端软件处的理,可以演变成多个适用的软件二次产品,给使用者带来方便。目前,我国大多数气象产品是以二维形式来表示三维结构,最具有代表的是PPIPlan Indicator、RHI 、CAPPI,这些方法之局限于二维表示方法。本文所采用的方法是通过DirectX工具进行锥面实体建立模型,通过Visual Studio .net 2003工具读取体扫数据,生成对应模型的天气图片,将二者结合

9、,通过DirectX纹理贴图方法处理,得到实际应用的雷达立体锥面显示软件。1.2天气雷达背景知识介绍气象目标的雷达方程1:1-2-1其中雷达天线所接收的回波信号功率;光速; 雷达发射机输出的脉冲功率; 发射脉冲宽度; 天线增益; 天线水平波束宽度; 天线垂直波束宽度; 雷达发射信号波长; 气象目标的复折射指数,对于水滴,当温度为时,0.93;雷达反射率因子,在瑞利反射区,;其中为第i个降水粒子的直径;R 目标距离。对于本课题主要研究是 雷达反射率因子;将其进行的立体锥面显示,让雷达产品形象,直观地展现。通过上面的雷达方程,常规天气雷达的探测原理是利用云雨目标物对雷达所发射电磁波的散射回波来发现

10、气象目标,并测定其空间位置、强弱分布、垂直结构等;新一代多普勒天气雷达除了能起到常规天气雷达的这种作用外,它的重大改进是可以利用物理学上的多普勒效应来测定降水粒子的径向运动速度,并通过这种速度信息来推断降水云体的风速分布、风场结构特征、垂直气流速度等。具有强探测能力和高探测精度,新一代天气雷达采用高低两种脉冲重复频率,就C波段来说,对台风,暴雨等大围的强降水天气的监测距离为460Km,对雹云、龙卷涡度等小尺度强天气系统的有效监测和识别距离为230Km,超过230Km,将没有速度数据,风暴识别、跟踪和预报未来位置可达345Km,在345-460Km之间虽没有算法应用,但仍有反射率因子产品;先进的

11、实时标校系统,新一代雷达的雷达参数在建站时都经过仔细的标准和标定,在日常的运行中,实时的或每经过一次体扫之后,对影响雷达定量的参数进行一次自动校准和检测,以确保雷达对回波强度的准确测量;同时还具有强大的地物杂波抑制能力;先进的产品算法和智能型的探测分析系统。1.3天气雷达产品介绍应用多普勒雷达探测到的回波强度、径向速度和速度谱宽基本数据,经过加工处理,坐标转换和计算生成某些与气象有关的物理量后而产生的数据或图像称为产品。严格来说,雷达产品约28个,只是因为不同的分辨率和不同的数据色标等级,同一个产品又可以分为多个。因此,共有约80个雷达产品的编号是不连续的!根据雷达产品的分类方式不同,可将雷达

12、产品分为基本产品和导出产品,或基本数据产品、物理量产品、信息产品或者锥面产品仰角和体积产品2。以前常用的二维雷达产品有平面位置显示PPI,即雷达天线以固定仰角,全方位扫描的探测方式获取的数据,以极坐标的形式,用不同的彩色色标表示数据值的大小或方向。距离高度显示RHI,即雷达天线以固定方式以固定方位作俯仰扫描,这种探测方式获取的数据用不同色标表示数据的大小和方向,以极坐标显示出来的图像产品。如今运用的天气雷达产品是多种多样的,不同的台站可以根据不同的地理对产品不同需求。根据实际需求,对雷达体扫数据的强度,速度,谱宽基本信息运用不同算法,得到精简实用产品。在此,本文主要是对基本的反射率数据进行锥面

13、显示,通过该产品可以直观清楚地了解地形,云块,风场等对气象的影响,能够逼真的反应外部真实世界,增加用户操作选择功能,对不同仰角的回波数据进行立体锥面显示,用户通过键盘控制能够对不同位置信息进行全面、细致研究,将雷达扫描方式的回波信息形象展现给用户,相对于传统的二维产品具有可视化程度高、立体动态感强的特点。1.4研究意义现代天气雷达产品在天气预报中有着十分重要的参考意义,通过本课题能够直观,形象,生动地展示雷达产品,让预报者短时间判断天气;从而迅速,果断,准确的做出决策。立体锥面气象产品可以直观,清楚地了解地形,云块等对气象的影响,能高度逼真的反映外部真实世界,对气象预报工作者的预报提供了参考依

14、据,让预告工作者能够及时为社会公众提供最新的天气信息。同时,通过本文的研究,将三维概念在气象领域中的应用提供给所有关心气象事业发展的人员,将锥面模型的概念应用到天气预报系统中,让真实的世界反映到天气预报系统之中,让以后的预报更加形象、真实;给以后的其他相关气象产品的开发人员提供新的思路。1.5开发环境介绍及研究思路Visual S 2003开发环境集成了Visual Basic.NET、C#、Visual C+、ASP.NET 以及VisualFoxPro开发工具,Visual Studio.NET都可以提供近乎完美的解决方案,Visual Studio.NET提供了包括设计、编码、编译调试、

15、数据库联接操作等基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布工具以及性能评测报告等高级功能。本程序主要使用Visual C+工具,因为它具有面向对象、可视化开发;众多的开发商支持以及业已成为工业标准的MFC类库;Visual C+封装了Windows的API应用程序接口函数、USER、KERNEL、GDI函数,帮助我们弄清了许多函数的组织方法,隐去了创建、维护窗口的许多复杂的例行工作,简化了编程。在本程序中,重点是应用DirectX进行立体锥面建立模型,DirectX环境中能够建立任何想象的图像,而最基本的都是由点构成线,而由线构成面,再由面构成体,建立实用的几何

16、体锥面结构。由于Visual S 2003能够很好地应用DirectX所建立的几何体模型,二者具有很好的兼容性和移植性。综上所列,本研究选择Visual S 2003中的Visual C+能够实现本文的要求。微软推出的DirectX开发工具,其Direct就是直接的意思,X是代数中常用于表示未知数的字符,在这里可以理解成表示所有的一切。在游戏中对所有的一切硬件直接操作,这就是DirectX的意思。微软的DirectX软件开发工具包SDK提供了一套应用程序编程接口APIs,这个编程接口可以开发高质量、实时的应用程序,当然最主要的就是游戏所需要的各种资源。DirectX技术为软件开发者提供硬件无关

17、性。微软开发DirectX的主要目的之一是促进Windows操作系统上的游戏和多媒体应用程序的发展。另一方面,微软公司开发DirectX是为了在当今或今后的计算机操作系统上提供给基于Windows平台的应用程序以高表现力、实时访问硬件的能力。DirectX分为普通的安装包和开发工具包,为了应用DirectX建立锥面立体模型,因此必须对DirectX开发工具包了解。本文的最终结果是将雷达的体扫数据中的反射率数据,形象,直观,准确地显示在对应的雷达锥面模型位置上。因此,本文的重点是在建立锥面上,只有建立好的锥面模型,才能将回波位置准确地反映。通过DirectX工具建立好立体锥面几何体模型,应用Vi

18、sual S 2003工具解析体扫数据文件,生成不同仰角下的纹理图像,然后再应用DirectX下的纹理效果处理,完成立体锥面显示效果,在窗体上增加选择不同仰角的立体锥面显示效果,通过键盘控制对锥面模型的各个角度信息准确反映。2建立模型2.1 DirectX基础知识在计算机的3D世界,可以表现出真实世界中所有的事物。在计算机的三维世界中,如果要显示一个物体,首先关心的就是这个物体怎样由点来构成。然后用这些点来构成多边形,由多边形来构成立体的几何形体。只要能确定了点的位置,数量,颜色,就可以形成任何你需要的物体。在DirectX 3D,为了保证永远使用正的z值来表示距离,惯用左手坐标系来表示整个世

19、界的位置。三维旋转变换可以使物体在三维立体空间中产生旋转。旋转可以是沿着x轴,或y轴,或z轴进行。三维缩放可以使物体在三维立体空间中产生大小的缩放效果。在三维坐标中观察世界时,需要确定以下几个问题:在那个位置观察:需要使用坐标来表示这个观察点的准确位置,这个坐标是在计算机中的实际坐标系中的值。向哪个方向观察。对于观察者来说,代表上方的方向。最后经过三维透视转换显示在显示屏幕中。Direct3D和系统其他组件的关系如图13:Win32 ApplicationWin32 ApplicationDirect3D APIGDIHAL DeviceDevice Driver InterfaceGraph

20、ics Hardware图2.1Direct3D和系统其他组件的关系应用程序Win32 Application通过调用Direct3D提供的API函数Direct3D API实现3D图形功能。Direct3D API调用硬件设备HAL Device提供接口。硬件抽象设备调用具体的硬件驱动程序的接口DDI,有具体的硬件驱动程序来操作具体型号的显卡硬件,完成最终3D操作。通过这样的分层结构,可以在上层使用相同的接口调用来使用任何类型的3D显卡,实现需要的3D功能。使用Direct3D编程时,首先创建Direct3D对象,在程序结束时,也必须释放Direct3D对象。在创建完Direct3D对象后,

21、可以获得指向Direct3D对象的接口指针。通过指向Direct3D对象的接口指针,我们可以调用Direct3D对象提供所有接口函数。创建Direct3D对象的代码如下所示:LPDIRECT3D9 g_pD3D = NULL ;/定义Direct3D对象的指针,初始化为空if NULL = g_pD3D = Direct3DCreate9 return E_FALL;/判断返回值,如果为空,表示创建失败Direct3D设备是Direct3D中的渲染组件,负责把3D场景进行作色、光照等效果处理,形成可以显示的图像。设备中包含了渲染状态、坐标转换等信息。在程序中,我们可以认为Direct3D设备就

22、是绘图的物理设备,而不需要关心使用什么具体的显卡在进行3D操作。LPDIRECT3DDEVICE9 g_pd3dDevice = NULL;/定义D3D设备接口指针初始化为空/定义Present参数结构D3DPRESENT_PARAMETERS d3dpp;ZeroMenory&d3dpp,sizeof;d3dpp.Windowed = TRUE;d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC;ifFAILEDCreateDevice return E_FALL;/调用函数创建设备,如果函数执行失败返回为空。经过上面的简单介绍,了解到Direct3D中三

23、维世界的表示方法,坐标系统,以及如何把三维世界中的模型显示在显示器中的概念和原理,以及基本的创建Direct3D对象和创建Direct3D设备的方法,对Direct3D有一个总的认识。但是光了解这些还远远不够,要应用一个窗口,就必须对Windows窗口模式的编程原理进行掌握。2.2 Windows基本编程原理和方法用C+编写一个Windows应用程序,必须掌握Windows的基本编程原理。Windows程序需要一个WinMain函数,该函数主要是建立应用程序的主窗口。用Windows窗口结合DirectX建立几何体模型,对一个基本的Windows窗口,其构成有以下几部分,注册一个窗口类,然后创

24、建窗口,在创建窗口的过程中可以对窗口的属性进行修改,包括窗口的名称、大小、位置等。接着初始化3D设备;若初始化初始化3D设备成功的话,接着就可以创建任意几何体模型了用CreateVertexBuffer创建顶点缓存区,接着可以定义一个指针,用于复制顶点数据时指向顶点缓冲区的存地址。初始化后,可以显示窗口了,并且可以进行消息的相互传递,可以对键盘,鼠标等外部设备动作进行响应,执行对应的事件。接着可以对几何体模型进行着色,着色之前可以对其进行纹理,灯光,视角等属性进行详细编辑,使立体锥面几何体模型更加生动,逼真。完成着色之后,接着释放设备,最后应该注销窗口。Windows程序是通过操作系统发送的消

25、息来处理用户输入的,程序的主窗口中需要包含处理Windows所发送的消息代码:下图是Windows程序和Windows消息的基本流程4:开始执行终止执行初始化从消息队列取得一个消息默认处理处理消息当前消息是否退出消息是否本程序要处理的消息图2.2Windows程序和消息处理流程图Windows是消息驱动或事件驱动的操作系统。消息驱动意味着操作系统的每一部分和其他部分以及应用程序之间,是通过Windows消息进行通信。Windows程序在开始部分也需要进行初始化,但初始化完成后就开始等待用户的各种输入。一旦用户有任何输入例如键盘或鼠标输入,操作系统便会感知,然后向相应的应用程序发送消息,程序要能

26、够随时接受并处理这些消息。函数入口:Main函数开始注册一个窗口类创建应用窗口初始化3D设备及对象是否成功显示窗口,更新窗口进入消息处理函数窗口内存释放返回值0图2.3main函数的流程图从图2.3我们不能看出,在DirectX中,任何函数都是从main函数开始执行程序,作为程序的入口,在main几乎包括整个程序的流程。在DirectX中,进入main函数后,首先需要注册一个窗口类,在窗口类中,包括窗口的类名,窗口模式,消息处理等属性;注册完一个窗口类后,接着就可以创建应用窗口了;跟着初始化3D对象和设备,如果成功,就可以显示窗口,更新窗口,进入消息处理函数,然后进行窗口存释放;如果不成功,直

27、接进入到存释放。最终整个函数返回0值。以上就是整个DirectX的main工作过程,在本文中,需要建立模型,在初始化3D设备和对象成功之后,就可以初始化模型,然后进行渲染等3D效果处理。消息处理函数是一个很重要的函数,通过参数的传递,该函数可以响应Windows应用下的任何事件。在MsgPro函数下,对msg消息进行消息类型的判断,当窗口销毁时,就触发WM_DESTROY事件,进而调用Cleanup函数和PostQuitMessage函数。将创建3D的存空间,设备对象及模型的存储空间进行释放,节约存资源。而当响应WM_PAINT消息时,就调用Render和ValidateRect函数。对窗口区

28、域的模型色彩进行渲染,让立体模型更加生动形象。最后MsgPro函数将要执行的事件反馈给主函数,实现消息响应功能,以上就是消息处理函数的整个过程,当然消息处理函数的响应事件是很多的,包括一个键盘的任意键被按下事件,鼠标的移动事件等等。开发人员可以根据自己的需要来进行适当的消息事件选择。图2.3介绍了main函数的整个程序的执行过程,在上面则介绍了Windows如何响应消息,对一个Windows程序的运行过程也有一个总体的认识和了解,应用上述简单的框架,开发者可以在初始化设备及模型之后初始化自己所能想到的任意几何体模型,然后进行DirectX下的灯光,材质,纹理,视角转换,雾化,雨化,雪化等特殊效

29、果处理手段,进行渲染,建立切切实实的立体图形。呈现生动,形象的图形,开发者可以发挥自己的想象能力,建立自己的应用模型,运行DirectX先进技术,结合构成思路,将一个几何体模型分解成若干三角形构成,而三角形又是由点构成的,通过点的连接顺序不同,绘制不同的几何体模型,运用到实际中2.3模型的构成思路和设计原理2.3.1雷达基数据产品剖析本文研究的是对天气雷达产品的反射率信息进行立体锥面显示,关键在于如何建立的模型才是最佳的模型,为了能够建立最优模型,必须对雷达的反射率产品的构成结构进行深入的剖析。方位角theta斜距m_c仰角图2.4锥面模型分析从上图我们可以看到,一个锥面模型的构成需要知道方位

30、角,仰角,斜距,而这些数据都可以从雷达的体扫数据得出,在雷达数据中,雷达所能探测的最远距离是512Km,而每公里则有八个点,即每个点所代表的距离是125m;在方位角上,theta的变化围为0360度,在方位角上,总共有600个径向;而在仰角上,对一般的雷达来说,变化围小于90度,在低仰角扫描的时候,由于受到地物杂波的干扰,为了能够很好地消除地物杂波,在低仰角往往扫描两次,而随着仰角的增大,其仰角的抬升间隔页逐渐增大,因为在高仰角扫描的时候,天气现象已经离雷达观测地很近,没有多大的实际预报价值。由上可知,一帧平扫扫描数据为600512M个M为所观测的参数个数,这样一个完整的体扫数据文件有数据60

31、0512MNN为仰角层数,M为所测参数个数,它记录了不同仰角层、不同参数的各个方位回波强度。利用DirectX技术,方位角、仰角、作用距离即斜距确定了三维立体空间坐标,将回波数据强度转变为物体模型中的颜色,这样观测员便可以根据三维立体锥面模型中的颜色变化直观地了解气象的变化与空间结构的分布情况,充分反映立体、动态、连续、多层的情况。本文通过以下过程来实现。2.3.2程序概要设计流程所有函数都是从main函数开始执行的,然后进行注册一个窗口,创建窗口,对于本文的DirectX来说,必须初始化DirectX3D设备及对象成功后才能够初始化几何体模型,只有初始化几何体模型成功后才对窗口进行显示,更新

32、,和消息处理,通过消息处理事件,转译消息,分散消息,最后进行几何体模型的渲染;构成一个生动的几何体模型,这就是本文构建模型的思路,然后运用DirectX工具下的贴图效果处理手段,对立体锥面模型进行渲染效果处理。下面是设计的主流程图2.5:开始注册窗口类,创建窗口初始化3D设备及对象是否成功初始化几何体模型是否成功 显示窗口,更新窗口,进入消息循环处理无WM_QUIT消息事件PeekMessage函数是否为1释放窗口内存空间转译消息,分播消息返回值0,程序结束渲染几何体模型图2.5整个程序设计流程图图2.5是对整个程序设计流程的概述,对于其中初始化3D设备及对象的概述和流程在前面以前提及过,对3

33、D立体锥面模型的构建,如果几何模型中使用了纹理贴图,首先应该打开纹理图片,本文主要是通过纹理贴图手段来达到立体效果。成功后按照对应的结构体创建顶点缓存区,缓存区创好后,就需要按设计要求往顶点缓存区存放点数据。模型的构成就是这样,建模的简要流程图如图2.6:创建模型开始文理图片打开是否成功返回打开失败创建顶点缓存区是否成功返回创建失败按设计要求存放点数据结束,返回图2.6创建几何体模型的简要流程图图2.6主要介绍的是模型的建立的简要流程图,当一个模型建立好后,渲染效果决定模型的成功与否,模型的渲染是DirectX中非常重要的部分。渲染效果决定了模型的构成方式,在模型渲染之前还可以进行多种立体效果

34、处理,灯光,纹理,材质,坐标转换,雾化,雨化,雪化等效果处理,给人更加逼真的效果。这些效果处理将在后面的章节中做专门深入的讲解。由此可见,本文的关键在于模型的建立和贴图的效果处理,模型构成原理已在前面介绍,模型的构成方式是多种的,几种模型根据数据的实际数据构成,经过比较筛选,确定一种合适的模型构建思路,下面是两种建立模型思路的比较。2.3.3两种模型的对比根据上面的模型产品剖析,对雷达反射率的显示应用了解。对模型的建立构成,采取的手段也是多种方式,不管建立什么样的模型,最基本的也是最重要的就是如何建立好点,只有把点建立好后,才能构成线,进而构成面,最后构成体,这个总体的基本思路是不会改变的。因

35、此立体锥面模型点的构成方式就成了本文的重点。不管采取什么样的手段建立模型,都必须首先把点建立好,下面介绍几种建立模型的方法:气象目标高度仰角fi方位角theta图2.7立体锥面投影确定点坐标确定好各个点的坐标后,最主要的就是点的连接方式,在Direct3D中,点的坐标连接方式总共有点列表POINTLIST,线列表LINELIST,线条纹LINESTRIPS,三角形列表TRANGLELISTS,三角形条纹TRIANGLESTRIPS,三角形扇TRIANGLEFANS六种连接方式,根据我们需要,我们在这里选择了三角形条纹进行了点的连接,连接时应该注意的是点的存放顺序也对最后的图形效果有影响,为了便

36、于后面的贴图处理,我们必须把我们所建立的几何体模型构成一个封闭的曲面,第一种方法,利用锥面在平面上的投影来确定锥面的位置,雷达能探测的最远距离为m_c,则雷达所能探测的高度Z坐标为:m_z = m_c * sin其中仰角fi在一定围变化,由雷达的体扫数据给出。雷达目标物在水平面的坐标X,Y坐标方程为:m_x = m_c * cos * cosm_y = m_c * cos * sin根据式1,2,3可以确定锥面几何体模型的位置坐标。假定某一个定值仰角,就模型的构成来说,可以设置最远距离为512Km。直接运用最远距离的圆的点,将圆分为四十等分,即由四十个theta值,将最远一圈的数据构成的点,直

37、接与圆心连接,就构成了一个锥面模型,其实现代码如下:FLOAT fi =2*D3DX_PI/6;a = c * cosf;b = c * sinf;pVertices2cnt.position = D3DXVECTOR3 a*cosf, b, a*sinf ;经过上面简短程序,可以构成的点如图2.8,其点的连接方式,可以以线列表的方式构成连接如图2.7,可以以三角形带列图构成如图2.10,如果填充模式不是以线框模式填充,而以实体模式填充,则构成锥面如图图2.8第一种模型点模式图2.9第一种模型线列表模式图2.10第一种模型三角形带列表模式图2.11第一种模型实体填充效果图经过上面的图形,清楚发

38、现各个模型的由点到线再到面的整个过程。立体锥面的终于构成,仔细想下便知,数据的构成形式每公里8个点,每一个Cut上有600个径向,这是一个相当庞大的数据,而第一种模型就一概而论。将整个图形全部应用到立体锥面中,当观察者需要知道某个距离确切位置上点的雷达回波信息时,那就会时一件非常麻烦的事,为了对雷达立体锥面模型的距离做一个标定,因此,必须考虑另外一种立体锥面模型,更适用于现代气象观察中。第二种模型建立的方案是考虑到距离,也即是考虑到了对某个具体位置的雷达回波信息进行参照,经过考虑,用于本研究在径向立体锥面的径向距离上选用了5个径向距离,也就是将512Km用4个距离段来表示,每个距离段代表128

39、Km,当然这个距离划分越细越好,经度越高,应用价值也越高。假设仰角为某一定值,方位角上仍然划分40等分,对于每个点的确定仍然可以用式1,2,3来表示,在代码中需要主要的是,在径向距离上多了几次循环。其第二种模型的主要程序部分如下:int iRadialPoint = 5; /雷达所能探测的最大点。intt = 0;pVertices2cnt.position=D3DXVECTOR3;cnt+;for DWORD i=0; iFLOAT theta = float/;FLOAT fi =2*D3DX_PI/6;for float Point = 0;Point c= Point;/每段代表的距离

40、是 512/4128米a = c * cosf;b = c * sinf;pVertices2cnt.position = D3DXVECTOR3 a*cosf, b, a*sinf ;cnt+;根据第二种思路绘制的几何体立体锥面模型更加接近实际应用中,能够确定某个位置的大概回波强度。其模型如下图:图2.12第二种模型的点列表显示图2.13第二中模型的线列表模型经过上面处理,点的连接顺序对图形构成起着关键因素,即使使用相同的点,用不同的方式连接也可以构成千差万别的图形。在程序应用时一定要注意点的连接方式。对于本文一圈有40个点,在每一个距离库上有5个点,总共的点数可以确定。前面已经提到,本文采

41、取的方法是通过DirectX进行立体锥面模型建立,然后进行纹理贴图效果处理,因此,要采用纹理贴图处理,就必须构成一个封闭的图形。点的连接方式就成了模型成功建立的关键因素,如何才能构成一个完整的图形,所以肯定的是,要构成封闭的曲面,必须采用三角形带的连接方式。通过方位上的变化来存储点,方位上交叉进行点的存储,当到达最远处时,再从原点进行循环,直到40个方位上全部存储完全,连接起来,通过线框模式就可看到点的存储顺序,可见多了一些没有必要的点,所以每循环一次后,在方位上进行两个方位的移动。通过这种手段构成图形的线框模式如图2.15。通过第二种模型的建立的立体锥面实体模型与图2.9是一样的,虽然一样,

42、但是效果和手段完全不一样,其难易程度相差甚远。第二中建立的模型能够确定某个位置的回波值,有很高的实际应用价值,而对于纹理贴图来说,更加能够准确给到某个位置的回波图。任何受到地球曲率影响的因素都不可以忽略,地球曲率让雷达的回波产生误差,测的高度比实际的高度要高,这对要求准确位置的回波信息的天气应用系统中,必须将地球曲率的影响效果减少到最小。2.4地球曲率对模型的影响大家知道,雷达能够直接测得的目标坐标参数是斜距和仰角,目标物离地的真是高度是通过m_b是通过公式转换得来的,换算公式是:m_b = m_c * sinf 2-4用这个公式计算出的目标物的高度m_b,仅仅是空间目标物离开地面的水平高度,

43、如果直接用这个参数进行计算,将会给整个雷达系统带来误差,测量的高度不够准确,对某一云团的定位也不准确,使测得云团的位置跟实际的位置有差异,对天气影响做出错误的决策;考虑到地球曲率的影响误差,就必须对由地曲造成的误差进行补偿,完成地球曲率的补偿后的高度公式5为:m_b = m_c *sinf + /17000 2-5经过上面经验公式的补偿,在一定程度上减轻了地球曲率影响带来的误差。可以想象下,雷达天线发射电磁波,有一定的方向性,并不是不变的,而是逐渐变成宽的电磁波,由于受到空气介质的影响,会使电磁波并不沿直线传播,这个所带来的误差模型中很难解决。而地球曲率带来的误差,测得的高度比实际的高度要低,

44、这是因为地球曲率所带来的影响,必须消除这个影响,通过上面前人总结的经验公式,在一定程度上减轻了地球曲率给立体锥面模型所带来的误差。可以想象模型随距离增加随高度越来越高,如图2.15:图2.14第二种模型的线列表彩色模型图2.15第二种模型的线框模式线框列表图形图2.16考虑到地球曲率的锥面模型通过上图可以看出,地球曲率对雷达探测高度的影响进行了适当的补偿。这种补偿方法通过第一种模型建立方法使不可以完成的,第一种就不可以对地球曲率的影响进行补偿,这就是为什么采取第二中模型建立方法的第二个好处。模型建立好后,为了让模型附有生机,就需要给立体锥面模型加入效果处理,在Direct 3D中,其效果主要有

45、灯光效果,纹理效果,材质效果,坐标转换效果,雾化,雨化,雪化等效果处理,让模型更有本生的气质和属性,下面就Direct 3D中几种主要效果进行细述。2.5模型的效果处理32.5.1灯光效果使用灯光,可以让Direct3D场景显示更多的细节,也显得更加逼真。在Direct3D中,提供了使用灯光的功能,通过使用不同的灯光,相同的场景可以表现出各种不同的效果。灯光可以定义为发出光线的光源。Direct3D场景中的物体通过反射不同颜色的灯光,可以显示出不同的颜色,这和自然界的颜色现象一样。在自然界中,白色的太由各种颜色的光组成。不同的物体,由于反射了不同的颜色的光,所以我们看到了不同的颜色。另外,物体

46、对光线的反射也有两种不同的方式。一种是镜面反射,光滑的物体以一个固定的角度反射光线;一种是漫反射,粗糙的物体表面对于从一个角度射来的光线向各种角度反射回去。在真实环境中的物体,通过同时具有这两种反射方式,只不过是哪种反射多一点,哪种反射少一点。在Direct3D中,提供了两种灯光模式:散射灯光Ambient Light和方向灯光Direct Light,在方向灯光又包括点灯光Point Lights,聚光灯Spotlights,方向灯Directional Lights。在使用灯光之前,要创建好灯光,首先定义灯光的结构,然后初始化灯光的属性,其中包括指定灯光类型为何种灯光模式,指定灯光的颜色;

47、接着指定灯光的方向,灯光的照射围,设置灯光,打开灯光就可以在模型中看到使用灯光的效果了。下面是使用灯光的例子程序:D3DXVECTOR3 vecDir; /声明向量D3DLIGHT9 light;/声明灯光ZeroMemory &light, sizeof ;/写入存light.Type = D3DLIGHT_DIRECTIONAL; /设置灯光类型light.Diffuse.r = 1.0f; /反射光为红色light.Diffuse.g = 0.0f;light.Diffuse.b = 0.0f;vecDir = D3DXVECTOR3;D3DXVec3Normalize &light.D

48、irection, &vecDir ;light.Range = 1000.0f; /灯光的围g_pd3dDevice-SetLight; /设置灯光g_pd3dDevice-LightEnable;/打开灯光g_pd3dDevice-SetRenderState; /灯光着色方式g_pd3dDevice-SetRenderState;/最后,打开一些ambient2.5.2材质效果在真实的自然环境中,每种物质表面都具有不同的材质。比如镜子,会在下反射强烈的光线,而木质的家具在光线下又显得比较温和。物体的材质决定了物质的表面如何对光线做出反应,如何反射光线,包括如何进行镜面反射和如何进行漫反射

49、;在高光部分如何反射光线;是否会自己发出光线。如果没有定义物体的材质,那么Direct3D场景中即使有光源,但是物体没有反射任何的光线,那么物体将会是仍然一片漆黑。因此,需要在Direct3D场景中使用灯光,几何体模型必须指定材质,才能显示出理想中颜色和光照效果。跟灯光效果类似,在使用材质之前需要定义材质的结构,设置物体镜面反射的颜色和透明度,设置物体漫反射的颜色和透明度,设置高光部分的颜色和透明度,使用者可以根据自己的实际模型所需进行取舍和调整。材质结构变量中包括Diffuse,Ambient,Specular,Emissive,Power,pMaterial成员。Diffuse表示材质反射

50、的光线颜色;Ambient表示物体漫反射光线的颜色;Specular表示次啊之高光部分发射什么颜色,也就是反射光线最多的,最亮的部分反射什么颜色的光线;Emissive表示材质表面发出光线的颜色;Power表示材质的高光部分反射的光线强度值;pMaterial是指向材质的指针。使用了材质效果后,与灯光效果结合起来,与实际效果接近一步。下面给出了一个红色材质例子程序:D3DMATERIAL9 mtrl;:ZeroMemory &mtrl, sizeof ;mtrl.Diffuse.r = mtrl.Ambient.r = 1.0f; /反射光多能工物体漫反射光都为红色mtrl.Diffuse.g

51、 = mtrl.Ambient.g = 0.0f;mtrl.Diffuse.b = mtrl.Ambient.b = 0.0f;mtrl.Diffuse.a = mtrl.Ambient.a = 1.0f;g_pd3dDevice-SetMaterial; /设置材质2.5.3 3D转换效果前面介绍了3D的转换原理,在Direct3D中主要包括世界坐标系转换,透视转换,观察坐标系转换。接下来我们一一介绍,透视转换决定了观察摄像机的镜头属性。比如观察的水平围角度和垂直围角度,从什么距离开始到什么距离结束的围的场景可以被观察到,下面是透视转换的一个例子程序:D3DXMATRIXA16 matPro

52、j;/定义矩阵结构D3DXMatrixPerspectiveFovLH;/使用该函数完成透视转换,观察角度的幅度值是D3DX_PI/4,从观察点位置前1个坐标单位到100个坐标单位围的3D世界可以被观察到。g_pd3dDevice-SetTransform;/函数调用完成转换观察坐标系转换可以实现改变观察者的观察方向和观察位置的功能。在3D游戏中,当你通过键盘和鼠标控制模型在Direct3D世界中变化时,这个功能就是通过观察坐标系转换实现的。下面是观察坐标系转换的一个例子程序:D3DXVECTOR3 vEyePt; /眼睛位置,观察者在三维坐标中的坐标;D3DXVECTOR3 vLookatP

53、t; /观察的方向,D3DXVECTOR3 vUpVec; /相对于观察者上方的方向D3DXMATRIXA16 matView;/定义矩阵结构D3DXMatrixLookAtLH;/观察坐标转换g_pd3dDevice-SetTransform; /调用函数完成转换世界坐标系转换可以实现物体在Direct3D坐标系中位置的改变。模型中所有的运动物体都是通过进行世界坐标系转换不断的连续改变坐标位置而产生运动的效果。在Direct3D中使用坐标系转换非常方便。如下例程序:D3DXMATRIX matWorld;/定义矩阵结构D3DXMatrixRotationYawPitchRoll;/将物体在z

54、的正方向移动10个坐标单位g_pd3dDevice-SetTransform;/调用函数,完成转换2.5.4模型控制模型控制是Direct3D中必不可少的组成部分,如果我们所建立的模型失去了控制,就如游戏成了电影,只能观看,而不能切身体会,也就失去了它的魅力所在。为了让模型与使用者能够更加紧密联系,我们必须加入简单的控制操作,让使用者能够从各个角度看到我们的模型特征和径向信息。通过键盘事件触发Windows消息处理函数,让Windows响应键盘控制操作。有了键盘控制操作,我们可以通过按键切换模型的填充模式线框模式/实体模式,可可以Keydown事件,设置不同的虚拟键,改变世界坐标转换中的坐标值

55、,让模型绕X,Y,Z轴一定角度旋转,还可以改变观察坐标系中的坐标值,让观察者从不同的视角观察同一模型。以上只是通过Windows事件处理键盘消息,同理,还可以处理鼠标操作;有了这些使用者的操作控制后,让使用者跟模型更加密切,有了相互沟通的桥梁,因此,外界控制是Direct3D世界中必不可少的工具。以下是模型控制代码:switchcase 0x57:/wm_nRotateX += 2; /每次沿X坐标旋转2度case 0x4D: / Mm_bEarth = !m_bEarth; /是否绘制,切换键break;case 0x43: / C通过判定,切换立体锥面模型的填充方式是线框模式还是实体模式m

56、_bWireframe = !m_bWireframe;g_pd3dDevice-SetRenderState;break;case B:m_bUseTexture = !m_bUseTexture; /通过按键切换是否使用纹理效果break;Render;/渲染其他DirectX效果处理进行调用CView:OnKeyDown;本研究用到的主要效果处理就是以上几种效果处理,还有一种重要的纹理效果处理没有涉及,将在后面章节结合根据体扫数据生成的纹理图片来讲述纹理效果,运用到实际的例子中。除了上面提到的几种DirectX3D效果外,还有雾化,雨化,雪化及粒子系统等效果。为了限制Direct3D世界

57、的可视距离,就需要加入雾化效果;用3D中的点列表或者线列表则可以表示雨化效果。以上部分都是对模型本身的控制操作,并没有给立体锥面赋予精美的表面纹理,与普通的几何体没有差别。为此,必须给出锥面模型的纹理,下面就将介绍立体锥面几何体的纹理图像是如何生成的。3反射率产品图像生成3.1反射率数据提取通过查阅相关雷达资料和雷达数据格式文档,该雷达体扫数据主要有三部分组成,站址参数段,性能参数段和观测参数段。站址参数段主要包括站址信息,文件头的长度,站址的站名,雷达的经纬度信息,天线的海拔高度,测站四周地物最大仰角,站址的最佳观测仰角,以及站点编号等信息;而在雷达性能参数段主要包括天线增益,水平,垂直波束宽度,极化状况,波长,雷达峰值功率,速度处理方式,地物处理方式等雷达性能进行设置;在观测参数段就包含扫描方式,立体扫描层数,观测精确时间,开始GPS时间,观测要素,速度退模糊,脉冲重复频率,最大测速,最大测距,各层的仰角,一个径向中的数据排列方式,一个强度,速度,谱宽占用的字节数,观察结束精确时间等信息。数据的存放容都严格按照数据格式存储。根据雷达体扫数据的格式,解析对应部分的具体参数组成,在雷达扫描方式上要注意,因为雷达的扫描方式不同将会带来产生的数据组成方式也不同,有些仰角只要强度信息,而没有谱宽和速度信息,而有的仰角层扫描里却没有

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!