一种应用多线程创建三维云图的方法和装置制造方法及图纸

技术编号:6343801 阅读:196 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种应用多线程创建三维云图的方法,包括:将获取的云图数据划分为预设份数;将划分的各份数的云图数据交给对应的线程处理,所述线程的数量与预设份数相同;各个线程依据该线程接收的云图数据建立三角网格模型;将各个线程建立的三角网格模型经渲染得到三维云图模型。对于现有技术,本发明专利技术的方法采用多线程对数据进行处理缩短了云图数据处理的时间,进而缩短了得到三维云图的时间。

【技术实现步骤摘要】

本专利技术涉及动画制作
,特别是涉及一种应用多线程创建三维云图的方法和装置
技术介绍
在天气预报系统中常常需要用到三维云图,三维云图的数据处理量比较大,现在常用的三维云图数据大小为512*512像素,要显示较好的三维云图的效果,建立的云图模型大小至少为像素。目前通过单线程建立三角网格模型的方法来处理读取的三维云图的数据,采用单线程建立三角网格模型需要耗费的时间较长,经测试建立三角网格模型需要耗费的时间> 40ms。在天气预报系统中播放三维云图的时候,为了使得播放流畅、图像清晰,要求每秒钟播放25帧经过处理的三维云图,这样就要求建立三角网格模型的时间要< 40ms,否则就无法达到播放三维云图时的要求。
技术实现思路
本专利技术所要解决的技术问题是提供一种创建三维云图的方法,能够缩短创建三角网格模型的时间,进而缩短创建三维云图的时间。为了解决上述问题,本专利技术公开了一种创建三维云图的方法,包括将获取的云图数据划分为预设份数;将划分的各份数的云图数据交给对应的线程处理,所述线程的数量与预设份数相同;各个线程依据该线程接收的云图数据建立三角网格模型;将各个线程建立的三角网格模型经渲染得到三维云图模型。进一步的,划分云图数据是对云图数据按大小相同进行等分。进一步的,划分云图数据后得到的预设份数的云图数据量的大小差别在预设范围内,所述预设范围为5^--5 ^进一步的,将获取的云图数据划分为预设份数时,相邻预设份数之间至少有一行数据重合。进一步的,将获取的云图数据划分为预设份数即将获取的云图数据划分为4份。进一步的,将获取的云图数据划分为预设份数之前还包括对云图数据进行预处理的步骤,所述预处理的步骤包括调节云图数据灰度的对比度。进一步的,调节云图数据灰度的对比度包括预设第一参数、第二参数,所述第一参数小于第二参数,所述第一、二参数介于 0155之间;如果获取的云图数据的灰度值小于和/或等于第一参数时,则云图数据灰度的对比度为0 ;如果获取的云图数据的灰度值介于第一参数和第二参数之间,则云图数据灰度的对比度为云图数据灰度值同第一参数的差值*255/第二参数同第一参数的差值;如果获取的云图数据的灰度值大于和/或等于第二参数时,则云图数据灰度的对比度为255。进一步的,预处理的步骤还包括按照预设高度和亮度对云图数据进行调节。进一步的,各线程之间通过CMutex实现线程同步。本专利技术实施例还提供了一种创建三维云图的装置,包括划分单元,用于将获取的云图数据划分为预设份数;提交单元,用于将划分的各份数的云图数据交给对应的线程处理,所述线程的数量与预设份数相同;处理单元,用于各个线程依据该线程接收的云图数据建立三角网格模型;渲染单元,用于将各个线程建立的三角网格模型经渲染得到三维云图模型。与现有技术相比,本专利技术具有以下优点本专利技术将云图数据划分为预设的份数,提交给对应的线程处理,每个线程处理一份云图数据,之后将各个线程处理的云图数据渲染得到三维云图模型。相对于现有技术采用单线程处理云图数据的方法来说,本专利技术的方法采用多线程对数据进行处理缩短了云图数据处理的时间,进而缩短了得到三维云图的时间。进一步,本专利技术采用的方法还对获取的云图数据进行预处理,根据云图数据灰度值,对改灰度值进行调节,解决了原始的云图数据大都偏亮或偏暗的问题。附图说明图1是本专利技术一种创建三维云图的方法实施例一的流程图;图2是本专利技术一种创建三维云图的方法实施例二中调节云图数据灰度的对比度的流程图;图3是本专利技术一种创建三维云图的方法实施例二中调节云图数据灰度的对比度的示意图;图4是云图数据在预处理前的云图显示效果图;图5是采用本专利技术方法对云图数据进行预处理之后的云图显示效果图;图6是本专利技术一种创建三维云图装置结构示意图。具体实施例方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。实施例一参照图1,示出了本专利技术一种创建三维云图的方法流程图,包括步骤101,将获取的云图数据划分为预设份数;为了知道如何划分云图数据,需要先介绍一下云图数据的格式,云图数据包括文件头和数据组成。文件头(文件头为TEXT格式)diam0nd(8个字符)13(3个字符)数据说明(40个字符)年(5个字符)月(3个字符)日(3个字符)时次(3个字符)X方向图象大小(5个字符)Y方向图象大小(5个字符)图象左下角经度坐标(8个字符)图象左下角纬度坐标(8个字符)投影方式O个字符,1-lambert 2-mecator 3-北半球4-南半球) 放缩系数(5个字符)图象类型O个字符,1-红外云图2-雷达拼图3-地形图4-可见光云图5-水汽图)象素值与相应物理量对照表文件名(12个字符)中心经度(8个字符)、 中心纬度(8个字符)。文件头部分共1 个字符。目前9210工程通讯系统传输的GMS5云图左下角经纬度(86. 4,-1. 3)。数据(数据格式为二进制数据)一个象素点占一个字节,先沿X方向后Y方向。下面就是一个云图数据的具体例子diamond 13 97 年 2 月 10 日 08 时红外云图 1997 02 10 08 1280 1024 86.4-1.3 11.01 ir.dat cloud。划分云图数据可以是等分也可以不等分。按照云图数据的大小,可以将云图数据等分为4份,分别交给4个进程处理;也可以是将云图数据划分为大小大概相等的若干份,将划分的数据分别交给对应的线程处理。总之,不论如何划分云图数据,只要保证划分的云图数据之间的大小相差不是很大。为了保证划分的云图数据之间的大小相差不是很大,可以预设一个大小差别的阈值,可以设置划分的云图数据之间的大小相差的范围在 5% —5%之间。在划分云图数据时,为了保证在后期不同线程处理完毕的云图数据相互整合渲染得到的三维云图数据不出现缝隙,使得各个线程处理的数据能够无缝连接,在划分时需要保证相邻的云图数据之间至少有一行数据重合。例如整个云图数据块大小为128*128, 将云图数据划分为4等分,则划分的四块数据大小分别为应该是1观*32,128*32,128*32, 128*32 ;为了保证划分后的数据块在整合渲染时能够无缝连接,则上述大小的数据块划分为4等分后,各个数据块大小为1观*32,128*33,128*33,1观*32,这样就可以保证相邻数据块之间有一行重合,进而保证各个数据块整合渲染时能够无缝连接。步骤102,将划分的各份数的云图数据交给对应的线程处理,所述线程的数量与预设份数相同;将云图数据划分之后,在实现本专利技术的时候还需要注意的就是要保证有多个线程,每个线程处理一份数据,这样才可以保证本专利技术的目的的实现。因为多个线程对数据的处理效率当然要比单个线程处理数据的能力要强。多个线程在处理云图数据时,可以保持同步,这时的处理时间最短,效率最高。当然也可以相互有个时间差,但是不能是顺序进行或者是一个线程处理完数据之后另一个线程再开始处理数据。否则就同单线程处理数据没有什么差别了,达不到本专利技术的目的了。在本专利技术方法实施例中,可以通过CMutex实现各个线程同步。步骤103,各个线程依据该线程接收的云图数据建立三角网格模型;步骤104,将各个线程建立的三角网格模型经渲染得到三维云图本文档来自技高网...

【技术保护点】
1.一种创建三维云图的方法,其特征在于,包括:将获取的云图数据划分为预设份数;将划分的各份数的云图数据交给对应的线程处理,所述线程的数量与预设份数相同;各个线程依据该线程接收的云图数据建立三角网格模型;将各个线程建立的三角网格模型经渲染得到三维云图模型。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡守刚
申请(专利权)人:新奥特北京视频技术有限公司
类型:发明
国别省市:11[中国|北京]

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

1