MICAPS系统中云图数据转换为位图的实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:fangduohui129
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:通过对气象信息综合分析处理系统(MICAPS)中第十三类数据格式和Windows系统的BMP位图格式的结构进行分析研究,将只能在MICAPS中显示的卫星云图转换为位图图像,从而扩展了卫星运图的查看方式,方便了工作。
  关键词:MICAPS;位图;数据格式;转换
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11603-01
  
  1 引言
  MICAPS系统中的云图以其简单、直观的方式显示了红外、水汽等云物理信息。但是在脱离了Micaps环境后,如何在Windows环境中再现云图呢?只需要在了解了Micaps第十三类数据格式和BMP位图的数据格式后,我们就可以编制一个转换程序用来在Windows操作系统环境下直接查看云图了。
  
  2 数据格式说明
  2.1 Micaps第十三类数据格式[1]
  此格式规定了云图在Micaps中的文件存储格式。其前128字节为文本格式,记录了云图的时间、类型、长宽等信息。后512*512字节为二进制数据格式,以256级灰度表示云图的颜色。例如:
  diamond 13 2005年9月7日22时0分FY2C红外图像200597 22512512 86.59 -0.64 11.0 1 ir.dat 110.00 30.00下面是256级灰度表示值。
  2.2 BMP位图格式[2]
  位图文件格式是Windows采用的图像文件存储格式,在Windows环境下运行的所有图像处理软件都支持这种格式。Windows 3.0以前的BMP位图文件格式与显示设备有关,因此把它称为设备相关位图(device-dependent bitmap,DDB)文件格式。Windows 3.0以后的BMP位图文件格式与显示设备无关,因此把这种BMP位图文件格式称为设备无关位图(device-independent bitmap,DIB)格式,目的是为了让Windows能够在任何类型的显示设备上显示BMP位图文件。BMP位图文件默认的文件扩展名是BMP或者bmp。
  位图文件由文件头、信息头、彩色表和定义位图的字节阵列四部分组成。位图文件头长度固定为14字节,包含文件类型、文件大小、存放位置等信息;位图信息头长度也是固定的40字节,包含图像的宽和高、图像的颜色位数、实际的位图数据占用的字节数、图像分辨率、本图像实际用到的颜色数等信息;彩色表也既是调色板,有些位图需要调色板,而有些位图,如真彩色图,不需要调色板;最后就是实际的图像数据。对于用到调色板的位图,图像数据就是该象素颜色在调色板中对应的索引值,对于真彩色图,图像数据就是实际像素的R、G、B值。
  
  3 转换中的细节处理
  3.1 BMP文件头区的处理
  BMP位图文件头与信息头可以按其格式要求直接在程序中生成,各占14字节和40字节。在Micaps系统中,云图显示时的颜色表示来之于云图调色板,为256色。因此,在转换为BMP格式时,需要建立256色的位图彩色表。此时,就需要将Micaps中的云图调色板信息提出,生成BMP中的彩色表信息,为显示BMP格式云图做好准备。
  3.2 数据区的处理
  在Micaps第十三类数据格式中前128字节为文件头,数据格式为文本格式。转换时弃之不用。后面紧跟着以二进制存储的用256级灰度值表示的色彩索引值。在BMP中,图像的每一扫描行由表示图像像素的连续的字节组成,每一行的字节数取决于图像的颜色数目和用像素表示的图像宽度。扫描行是由底向上存储的,这就是说,阵列中的第一个字节表示位图左下角的像素,而最后一个字节表示位图右上角的像素。在我们的Micaps系统中,第十三类数据格式的数据存储也正是以这种方式存储的。因此,在将第十三类数据格式转换为BMP格式时,数据的迁移不需要做过多的处理,只需采用流数据读取文件方式原样读取后转存就可以了。
  
  4 程序实现
  了解了上述信息后,就可通过程序来实现转换了。这里用Delphi来实现这一过程。文中只列出程序的主要语句部分。
  4.1 生成BMP文件头
  with BitmapFileHeader do// 设置位图文件头信息
  begin
  bfType:= $4D42; // 'BM' 标志, BITMAP 文件头
  bfReserved1 := 0; //保留
  bfReserved2 := 0; //保留
  bfOffBits := SizeOf(BitmapFileHeader) + SizeOf(BitmapInfoHeader) + 1024;
   //位图数据的起始位置,以相对于位图文件头的偏移量表示,以字节为单位
  bfSize := bitmapinfoHeader.biWidth*bitmapinfoHeader.biHeight+1024+SizeOf(BitmapFileHeader)+SizeOf(BitmapInfoHeader);
  //位图文件大小
  end;
  4.2 生成BMP信息头
  with BitmapInfoHeader do//位图信息头
  begin
  biSize := SizeOf(TBitmapInfoHeader);//本结构所占用字节数
  biWidth := 512; //位图宽度
  biHeight:= 512; //位图高度
  biPlanes:= 1; //目标设备级别,必须1
  biBitCount:= 8; //每个像素所需位数,256色为8
  biCompression := BI_RGB;//是否压缩,不压缩是0
  biSizeImage := 0; //位图的大小,以字节为单位
  biXPelsPerMeter := 0; //位图水平分辨率,每米像素数
  biYPelsPermeter := 0; //位图垂直分辨率,每米像素数
  biClrUsed := 0;//位图实际使用的颜色表中的颜色数
  biClrImportant:= 0; //位图显示过程中重要的颜色数
  end;
  4.3 生成彩色表
  在基于调色板的256色模式下,当一幅图像显示时,Windows把图像的逻辑调色板载入,并通过调色板映射把逻辑调色板映射到系统调色板,图像的每一像素的显示颜色都映射自系统调色板的一个颜色索引值,每个索引对应一个24位的RGB全彩色值。当系统调色板改变时,当前引用系统调色板的窗口的像素颜色也随之改变,而这种改变是系统在硬件刷屏中自动完成的,速度极快,这样就为我们利用调色板实现云图图像的显示提供了引擎。
  建立一基于系统调色板的数组tpal = array[0..255] of tpaletteentry,再新建一tpal数组的对象pal。然后采用二进制读文件方法将Micaps系统中的调色板文件Colormap.004中的R、G、B值读入到此对象中,就可形成彩色表。
  4.4 最终云图部分的实现
  整体BMP云图的实现按以下思路进行。BMP图形是以二进制数据保存的,因此需采用流式数据写文件,首先申请建立一MemoryStream,然后将前面准备好的各种信息头依次输出到此MemoryStream中,然后将此二进制流输出到磁盘文件中。
  MemoryStream := TmemoryStream.Create;
  MemoryStream.Position := 0;
  MemoryStream.Write(BitmapFileHeader, SizeOf(TBitmapFileHeader)); // 写入位图文件头
  MemoryStream.Write(BitmapinfoHeader, SizeOf(TBitmapinfoHeader)); // 写入信息头内容
  MemoryStream.Write(pal,sizeof(pal)); //写入调色盘内容
  BlockRead(From, Buf, SizeOf(Buf), NumRead); //读取Micaps系统十三类格式文件的数据部分。其中,From为所读十三类格式文件指针,Buf为一512×512字节的数组,用于存放十三类格式文件的数据部分
  MemoryStream.Write(buf,sizeof(buf)); //写入数据内容
  memorystream.SaveToFile('star.bmp'); //生成BMP图
  
  4 结束语
  本文通过分析BMP和Micaps系统中的相关数据格式,运用软件实现了云图格式的转换。便于今后云图的查看。同时,也可采用这种思路,完成其它相关图像类数据的转换。在本程序中,程序实现的关键在于使用了MemoryStream来完成BMP中各部分数据的合成,这钟方法在其它二进制文件的数据处理中也是适用的。
  参考文献:
  [1]中国气象局重点工程办公室9210工程项目组[M].MICAPS系统管理员手册.
  [2]Willian K.Pratt.数字图像处理[M].机械工业出版社,2005,1,第1版.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:在分析大多数工作流管理系统的现状以及移动Agent技术特点的基础上,提出一种基于移动Agent的工作流系统架构,并利用IBM的移动Agent系统——Aglet实现原型系统。该架构采用移动Agent的安全机制,同时通过RSA公开密钥加密算法保护移动Agent所携带的信息,提高了安全性能。实践证明,基于移动Agent的工作流管理系统是可行的和先进的,能够有效地解决现有工作流管理系统中存在的效率问
期刊
摘要:S3C4510B是一种以ARM7TDMI为内核的嵌入式网络微处理器。对S3C4510B的HDLC模块的基本结构和工作原理进行了阐述,对S3C4510B的HDLC控制器驱动程序的基本设计思想及具体实现进行了研究。  关键词:S3C4510B;HDLC;驱动程序  中图分类号:TP316文献标识码:A文章编号:1009-3044(2007)06-11606-03    1 引言  HDLC作为一
期刊
摘要:本文阐述了Java中泛型的概念和特点,介绍了简单泛型创建和使用,探讨了泛型应用中存在的陷井。泛型最重要的特点是类型安全,泛型还可以消除类型转换等。泛型的创建和使用比较简单,但在使用中存在一定的陷阱,需要引起程序员的注意。  关键词:泛型;类型安全;类型通配符  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11612-03    1 前言  1.1泛型概念
期刊
摘要:介绍分析了SVM基础理论和目前多类SVM分类算法及其优缺点,提出了一种边界向量抽取算法,并基于该算法改进了1ar和1a1两种多类SVM算法。实验结果表明该边界向量抽取算法可以有效的减少训练样本的数量,在保持分类器推广能力的条件下缩短SVM的训练时间,特别是在大样本训练数据时1arΔ可以提供最好的训练性能。  关键词:向量机;多类支持向量机;支持向量;边界向量;分类   中图分类号:TP391
期刊
摘要:本文介绍了移动计算的特点,根据目前无线网络和移动设备应用程序设计的局限性,提出了基于J2ME+Agent的多线程的移动应用平台的设计方案,并引入了中间件思想。本文最后把该方案应用一个面向移动用户的云南省大型仪器协作共用网,从而证实了该平台在移动系统环境中具有较高的适应性和良好的使用性。  关键词:移动计算;MAP;J2ME;MIDP;无线消息API(WMA);Agent  中图分类号:TP3
期刊
摘要:对带CAN总线的智能小区多功能对讲系统进行设计。对讲部分以PIC16C55型单片机为核心,配上DTMF发送接收器件MT8880构成;安防报警部分采用带有CAN模块的MC68HC05X16构成CAN总线式系统,具有防盗、防火、防煤气泄漏、紧急情况报警等功能。  关键词:对讲;CAN总线;安防  中图分类号:TP933文献标识码:A文章编号:1009-3044(2007)06-11619-03 
期刊
摘要:分析并讨论了过采样Σ-ΔADC中过采样技术和噪声整形技术的工作原理,Σ-Δ调制器的级数对整形效果的影响及调制器的结构选择,并用MATLAB语言的simulink工具箱进行了系统级的仿真。  关键词:过采样;Σ-Δ调制器;噪声整形  中图分类号:TN761文献标识码:A文章编号:1009-3044(2007)06-11631-01    1 引言  传统A/D转换器,如逐次积分型、折叠型和流水
期刊
摘要:基于图像的建模语言GXML不同于以往的图像编码,它能够将图像的内容和样式分离,这使得图像能在网络上进行高速传输,并能适应不同的客户端浏览器。利用该特点对学科知识体系结构进行描述,可以得到一个图像的灵活布局。  关键词:GXML;样式;知识体系结构;灵活布局   中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)06-11624-03    1 引言  随着功能更为强
期刊
摘要:关于窗体的卸载往往被程序设计者尤其是一些初学者所忽视。本文从事件Queryunload和Unload参数的作用及事件的使用两方面对事件Queryunload和Unload进行了详细的探讨。并且给出了两个比较重要的观点。  关键词:Queryunload;Unload;参数  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)06-11665-01    1 引言 
期刊
摘要:文章主要介绍一种简易通用的UART IP核的设计。UART作为一种短距离、低成本通信的串行传输接口,随着嵌入式系统的迅速发展,已成为SoC(System on Chip)芯片中的一个重要部件,在数字通信中得到了广泛的应用。本设计在对UART的串行通信协议进行详细分析的基础上,采用Verilog HDL语言对ALTERA的Cyclone系列FPGA进行设计,用一片FPGA实现了UART的发送、
期刊