新型气象图等值线内插算法及其C++编程实现
时间:2018-08-25 17:36 来源:毕业论文 作者:毕业论文 点击:次
摘要本文以数字图像处理技术和计算机模式识别的基础上,通过编程与实践,分析了气象传真图的特点,分析传统的气象传真图等值线差值算法并提出了一种新型的气象图等值线内插算法。本文的主要结论为: (1)本文提出一种通过确定等值线圆心,然后按照极坐标搜索方向角 0°-180°的方式沿方向轴对待插值等值线进行数据采集,再通过线性插值得到所求的数据点。经过多次采集数据,多次插值,可得到大量的数据点,最后对所得数据点进行筛选,去除无效数据点并压缩数据得到指定数值的曲线等值线。 (2)使用 Visual C++软件编写了一个算法可以对经数据提取的等值线数据进行整合并按照上文所示等值线插值法进行较快速的运算,最终得到一系列指定数值的等值线数据点。 27402 毕业论文关键词 气象传真图,等值线,等值线内插,C++ Title A New Method for Counter Interpolation and C++ Implementation Abstract Based on the digital image information processing and information recognition method, through a large amount of analysis and experiments, combined with the own characteristics of weather fax map, key figure contour of weather fax was analyzed and researched in this paper. Follows are the main findings, (1) Data sampling on known contours was carried out by search along axis, locations of data points were determined by linear interpolations and the method of multiple sampling to acquire a large amount of data points; interpolated curve of contours after vectorization was get by data screening and data compaction on data points. (2) Using Visual C++ software to write an algorithm to the data extraction of contour data integration and contour as shown in the above interpolation method for relatively rapid operation, finally got a series of numeric contour data points. Keywords Weather fax maps, contour, within the contour interpolation, c plus plus 目次 1绪论1 1.1研究背景及意义.1 1.2设计平台工具简介.1 1.3国内外研究现状.2 1.4本文主要工作及章节安排.4 2等值线的内插6 2.1等值线内插方法.6 2.2数据点采样.7 2.3数据点的插入.9 3等值线的生成10 3.1曲线拟合.11 3.2本文的等值线生成方法.12 3.3实验结果.13 4算法的C++编程实现.16 4.1数据的提取与整合.16 4.2数据的处理.18 4.3本章小结.20 结论21 致谢22 参考文献23 附录A程序流程图24 1 绪论 1.1 研究背景及意义 气象传真图预报范围基本覆盖了地球上所有的海洋,因此近几年发展非常迅速。气象传真图已经成为气象分析和天气预报的重要工具。世界气象组织将世界各地的气象传真广播台分为亚洲、欧洲、北美洲、南美洲、非洲和西南太平洋优尔个区域,我国普遍采用来自北京和东京气象传真中心的气象传真资料。一些沿海国家也会发布天气与海况传真图,比如日本东京 1台JMH会每天发布西北太平洋上空的天气、海况图。 在航海中有效应用气象传真图,能大大改善船舶的航行条件,减少因恶劣天气和海况导致的海难事故,为保障船舶的安全航行起到了一定的作用。现在,气象传真图重要通过气象传真台和气象传真机来发送贵在海上航行的船舶。但与此同时气象传真图的使用是完全依赖于航海人员对气象传真图的识别、分析及应用能力,要求驾驶员通过自身的气象知识的专业水平来正确的理解天气图的符号释义,并作出相应的天气预测。因为这种人工因素的存在,我们在综合分析和处理海洋气象信息的能力是有限的,为了提高海洋气象处理能力信息,应改变现在的信息处理方式。 在已有的等值线基础上,等值线内插是指自动的内插出一条与已知等值线一致的等值线。等值线的内插在气象分析与预报中起到非常大的作用。例如,有时像素气压图中某些局部的等值线很密,自动矢量化时非常困难,需要频繁的用户交互;而手工绘制这些等值线是根据已知等值线认为画出的,不是实测,存在较大误差,此时可以采用只矢量化部分等值线,再在已矢量化的等值线之间自动使用等值线内插的方法生成。再如,根据等压面图生成三文等压曲面时,内插一些等压线能使重建出的三文曲面更加逼真。等值线的内插是气象学、地图学等学科研究中的一个热门话题。 1.2 设计平台工具简介 计算机作为信息处理的重要工具正在影响和改变着人们的工作、学习和生活方式。使用计算机进行信息处理要通过相应的应用软件进行,如使用Word 进行文本编辑、使用MATLAB进行科学计算等,这些软件均由专业软件开发人员设计编程。一般来说,日常工作中遇到的任务大多数可借助现成的应用软件完成,但有时仍需为具体问题自行开发相应的软件。特别是要解决工程应用领域中遇到的大量具体问题,使用通用的软件不仅效率低,还可能无法完成任务。在这种情况下,自行编写具有针对性的相应软件可能是唯一的解决办法。编写计算机软件需要使用程序设计语言。目前可用的程序设计语言很多,各有特点。随着 Windows 操作系统的崛起,由传统的面向控制台的字符软件开发转向面向窗口的可视化编程已成为必然趋势。 Visual C++ 正式 Windows 环境下最强大、最流行的程序设计语言之一。 Visual C++ 语言是在 C 语言的基础上逐步发展和完善起来的。1969 年 Martin Richards 为计算机软件人员在开发系统软件时,作为记述语言使用而开发了 BCPL语言(Basic Combined Programming Language)。1970 年,Ken Thompson 在继承 BCPL语言的许多优点的基础上发明了实用的 B语言。 1972年,诺贝尔实验室的 DennisRitchie 和 Briankernighan 在B语言的基础上,作了进一步的充实和完善,设计出了 C 语言。当时,设计C 语言是为了编写 UNIX操作系统,以后,C 语言进过多次改进,并开始流行。目前,国际上标准的 C 是 87 ANSIC,常用的有 MicrosoftC、TurboC、QuickC 等。不版本略有不同,但基本的部分是兼容的。随着 C 语言应用的推广,C 语言表现出一些缺陷和不足。为克服 C 语言本身存在的缺点,并保持C语言的简洁、高效,且与汇编语言接近的特点, 1980年贝尔实验室的Bjarne Stroustrup博士及其同事对 C 语言进行了改进和扩充,并把 Simula67 中类的概念引入到 C 中,后于1983年由 Rick Maseitti 提议正式命名为 C++(C Plus Plus)。后来又把运算符的重载、引用、虚函数等功能加入到 C++中,使 C++ 的功能日趋完善。当前运用得较为广泛的 C++有Visual C++ (Visual C Plus Plus)、BC++(Borland C Plus Plus)、AT&TC++等。 Visual C++支持面向对象的程序设计方法(Object-Oriented Programming,OOP),支持 MFC(Microsoft Foundation Class)类库编程,有强大的集成开发环境Developer Studio,可用来开发各种类型、不同规模和复杂程度的应用程序,开发效率很高,声场的应用软件代码品质优良。这一切使得 Visual C++成为许多专业程序开发人员的首选。Visual C++本身就是一个GUI图形表示的开发界面,它提供了丰富的关于位图操作的函数,对开发图像处理系统提供了极大的方便,因此它现在已经成为开发 Win32 平台应用程序,包括开发图像处理程序的主要工具。 1.3 国内外研究现状 近几年来,国内外对于气象传真图的持续研究取得了大量的成果,涌现出了不少优秀的产品。青岛远洋船员学院与国家海洋局第一海洋研究所开发的一款“气象传真图的计算机接受识别系统”,能接收全球海洋高空及地面天气图,改进了国外的技术,建立了一套自己的天气传真图识别原理和方法。但是,这套系统也存在着不少缺陷,例如,识别过程较复杂,要求人工干预较多,不能完全自动化处理等等。国内的清华大学、中国科技大学、华中科技大学等也都相继推出了自己的气象传真图矢量化软件,这些软件又普遍存在自动化程度低,易受干扰,精度不高等不少缺点,目前还不能真正用于实际使用。 目前国外的技术普遍领先于国内。英国 Weather Wizard 公司的一款气象传真图处理系统可以将经矢量化处理后的气象传真图数据资料与电子海图叠加显示出来,这款软件的精度和自动化程度都很高,处在世界前列。日本古野开发的图形处理软件,能实现对气象传真图的多种操作,如旋转、缩放、去噪、色彩处理等等。除此之外,日本 TOSGRAPH、德国 Softelec、挪威 Rasterex 等公司也研发了一系列例如 VPRaster Pro、 RxAutoImage Pro 2000 等商业化程度较高的成熟产品。 与国外相比,国内在一些关键技术的研究在气象传真图处理方面还有着比较大的差距,但是国内关键技术近些年来的发展速度比较迅速,这些关键技术主要在以下几个方面: 1)气象传真图去噪。 气象传真图在从发射台传输到气象传真机的过程中容易受到外部干扰,这些干扰会对气象传真图产生噪声污染,产生传真图模糊、图中曲线断裂的情况,使接收到的传真图质量下降,难以使用。目前,已有专门的算法针对气象传真图进行噪声去除,例如《中值滤波在气象传真图中的降噪分析》中,柴宝仁提出了一种基于改进过的自适应中值滤波法对存在大量噪声的气象传真图进行降噪处理,起到了不错的效果。《基于线性灰度变换的无线气象传真图降噪方法》中,刘慧敏提出了一种基于灰度变换的方法来增强图像,这种方法不仅能有效地去除图像噪声,还能增强图像中的有效信息。 2)气象传真图关键信息提取。 气象传真图中融合了大量气象元素,信息量大并且形态复杂。对气象传真图中的等高线、锋线、经纬线、字符等信息元素的提取也成为了近几年来国内外研究的热点之一。《气象传真图信息提取方法研究》中,李存东基于多区域特征点匹配和向量积提出了传真图交叉线和等位势涡度线的识别方法。《基于区间树索引的等高线提取算法》中王涛等重新设计了在高程格网中遍历提取等高线的策略,并提出了基于区间树的等高线起点查找算法。 3)气象传真图矢量化。 气象传真图在通常情况下是以矩阵位图的形式储存和显示的。把气象传真图转化为矢量图,不仅可以便利气象方面对气象传真图的使用,还可以节省存储空间。气象传真图的矢量化涉及到细化传真图,断线修复以及压缩数据等,是一个复杂的过程。矢量化气象传真图的关键,是怎样有效地融合并且达到最佳矢量化的效果,这要求不仅要考虑各个项目各自独立的实现过程,项目之间的相互影响也对结果有影响。 4)根据气象传真图分析天气情况。 对气象传真图进行数字化处理的最终目的是辅助进行天气的分析和预报,而目前只停留在利用计算机进行图像处理的阶段。目前,在这方面的研究分为两个主要部分:一是根据经数字化处理的气象传真图中的气象信息来反演模拟气象和水文信息,例如海浪场、风场、气压温度场等等。在点阵式气象传真图的矢量化研究技术》中,胡晓形研究出一种使用经矢量化的气象传真图来预报目标海域的温度。二是通过叠加气场传真图和电子海图来增强船舶在航行中能够获得的有效信息。例如,《气象传真图处理与信息识别关键技术的研究与实现》和《气象传真图与电子海图叠加技术的研究》中,刘慧敏和孙铭雪将矢量化的气象传真图与电子海图叠加显示,方便了船舶驾驶人的阅读与使用。 5)气象传真图中等值线的内插。 对气象传真图的处理过程中要求等值线的内插算法有着比较快的速度和相当高的准确度。传统上的等值线内插方法是在图形中提取特征点组成多边形来替换原始图形,再建立各个特征点之间的联系,使用局部内插的方法获得目标的插值结果,这种方法十分简便,且可以大幅提高等值线内插的速度。但是,理论上来说,这种方法并不完善,首先这种方法没有考虑到两条曲线之间的相互联系,其次这种方法使用随机提取的特征点来代替原始的等值线,容易使得曲线细节丢失,并且等值线之前的相互关系可能受到破坏,使最终得到的内插结果的质量大大下降。 目前,等值线的内插主要使用两种不同的基本方法:一是网格法,二是三角网法。而这两种方法也存在着明显的缺陷,首先,这两种方法没有考虑等值线的线属性,只考虑了等值线上的点的位置属性,这就导致了内插得到的等值线常常与母线相交,产生明显的错误。其次,这两种方法的计算复杂性高,无法实时生成所求曲线。 1.4 本文主要工作及章节安排 1.4.1 本文的主要工作 本课题研究的主要内容是气象传真图中部分等值线间距太宽、空白部分比较大的情况下,一种在两条等值线之间插入指定数值的曲线等值线的创新型内插算法,并通过 Visual C++软件编程实现对多幅已进行数据提取的等压线图进行此算法的运算。 首先,新型内插算法方面,本文提出了一种通过确定等值线圆心,然后按照极坐标搜索方向角 0°-180°的方式沿方向轴对待插值等值线进行数据采集,再通过线性插值得到所求的数据点。经过多次采集数据,多次插值,可得到大量的数据点,最后对所得数据点进行筛选,去除无效数据点并压缩数据得到指定数值的曲线等值线。 其次,在使用Visual C++编程方面,本文开发了一种算法可以对经数据提取的等值线数据进行整合并按照上文所示等值线插值法进行较快速的运算,最终得到一系列指定数值的等值线数据点。 (责任编辑:qin) |