设为首页 加入收藏

Computer Science and Application
Vol.2 No.1(2012), Article ID:535,5 pages DOI:10.4236/csa.2012.21001

Meteorological Symbol and Technology and Method of Signifying Graphics Based on Font Library*

Jinzhou Wang, Jing Feng, Lei Jiang

Institute of Meteorology, PLA University of Science and Technology, Nanjing

Email: xlz211314@163.com

Received: Jan. 12th, 2012; revised: Jan. 26th, 2012; accepted: Feb. 5th, 2012

ABSTRACT:

Be geared to the needs of the graphical meteorological symbol in lively showing meteorological information, the text treatises the whole procedure of fabricating meteorological symbol font library with graphics software, CorelDraw, and font editing program, Font Creator Program. Based on applying of font library, the text also designs symbol mapping tables and presents mentality of signifying graphics. Finally, the style libraries of ArcGIS are expanded by the font library, and programmed method for visually displaying meteorological information is illustrated by combining an example.

Keywords: Meteorological Symbol Font Library; Mapping Table; Signifying Graphics; Style Library

基于字库的气象符号及图形符号化技术与方法*

王锦洲,冯  径,蒋  磊

中国人民解放军理工大学气象学院,南京

Email: xlz211314@163.com

摘 要:

面向气象信息实况显示对图形化气象符号需求,论述了利用绘图软件(CorelDraw)和字体编辑软件(Font Creator Program)制作气象符号字体库的整个过程;基于气象符号字库的使用,设计了符号对照表,提出了图形符号化的思路;最后利用气象符号字库对ArcGIS样式库进行了扩展,并结合实例,对可视化显示气象信息的程序方法进行了说明。

收稿日期:2012年1月12日;修回日期:2012年1月26日;录用日期:2012年2月5日

关键词:气象符号字库;对照表;图形符号化;样式库

1. 引言

气象符号是直观表达气象要素的一种可视化工具,在实际应用中,主要表现为天气现象符号和云状符号,作为传递气象信息的手段之一,在气象信息的处理、实况显示和传递中起着不可替代的作用。气象符号由不同形状和大小的图形组成,在实况显示的相应区域呈现天气现象和云状。近年来,随着计算机技术和网络技术的飞速发展,各种气象资料实时处理软件和基于Web的气象专业网站无一例外地把如何便捷的制作、调用、管理和维护气象符号库作为系统开发的重点之一。

目前,业务中广泛使用的各种气象资料实时处理和显示软件对气象符号的图形化显示,大多是基于计算机程序语言中的绘图函数(类)实现的,灵活性、维护性和扩展性较差。由美国ESRI公司开发的ArcGIS中也提供了气象符号字体库,安装到Windows系统中的Font文件夹后,可以作为普通字体被系统调用,但在其提供的气象符号库中,可用的符号数量无法满足我国(我军)气象业务的需求,在使用中经常带来很多不便,因此有必要开发新的制作气象符号库的方法。

本文以应用需求为设计需求,充分考虑到现有实现方式的优缺点,采用代数的方法进行气象符号库的制作,这种符号化的方法是把符号的制作和调用、显示完全分开,首先使用绘图软件和字体编辑器制作气象符号库,然后将生成的TrueType字体进行安装,由系统调用,同时可用气象符号字库对ArcGIS符号库进行扩展。

2. 气象符号库的设计和制作

2.1. 字体库概述

字体,又称书体,是指文字的风格式样,是技术制图中的一般规定术语。常见的字体种类有光栅字体和矢量字体。

光栅字体(Raster Font)是针对特定的显示分辨率以不同大小存储的位图,用于Windows系统中屏幕上菜单、按钮等文字的显示。它并不是以矢量描述的,放大以后会出现锯齿,只适合屏幕描述。不过它的显示速度非常快,所以作为系统字体而在Windows中使用。

矢量字体(Vector Font),又叫轮廓字体(Outline Font),通常使用贝塞尔曲线、绘图指令和数学公式进行绘制,其中每一个字形是通过数学曲线来描述的,包含了字形边界上的关键点,连线的导数信息等,字体的渲染引擎通过读取这些数学矢量,然后用一定的数学运算来进行渲染。这类字体的优点是字体实际尺寸可以任意缩放而不变形、变色。矢量字体主要有以下几类。

1) PostScript字体(.PFM)。这种字体基于另一种矢量语言(Adobe PostScript)的描述,常用于PostScript打印机中,不过Windows并不直接支持这类字体,要在Windows使用这类字体需要安装“Adobe Type Manager”(ATM)。

2) TrueType字体(.TTF)。这是我们日常操作中接触最多的一种字体类型,其最大的特点在于它是用一种数学模式进行定义的基于轮廓技术的字体,这使得它们比基于矢量的字体更容易处理,保证了屏幕与打印输出的一致性。同时,这类字体和矢量字体一样可以随意缩放、旋转而不必担心会出现锯齿。

3) OpenType字体(.TTC)。这是一种可缩放字型(scalable font)电脑字体类型,采用PostScript格式,是Microsoft与Adobe公司联合开发,用来替代TrueType字型的新字型。这类字体的文件扩展名为.OTF,类型代码是OTTO,现行标准为OpenType 1.4。

2.2. 字库制作的技术方案

由于矢量字体的优点是不随符号本身的放大缩小而失真,同时TrueType字体所占用的空间比其他格式要小,因此,采用字体编辑器生成字体符号的方式制作气象符号字体库。

考虑到用字体编辑软件绘制矢量符号较难控制符号的尺寸和形状[1,2],采用先在图形绘制软件中按图式尺寸绘制标准的图形符号,转换为位图(bmp)格式后,导入到字体编辑软件中矢量化建立字体库。

CorelDraw是功能强大的绘图软件,能精确绘制复杂的图形符号。Font Creator Program是一种编辑各种不同字体的软件,具有可视化性能好,人机交互界面,形状大小和位置的定位精确,易于编辑和修改等许多优点。可以很简便地进行各种编辑操作,如添加、删除、移动、合并和分割节点以及对图形进行大小、位置的设定和镜射、旋转、缩放等[3]。因此,本文采用CorelDraw 12绘图工具,采用Font Creator 5.6字体编辑软件。

2.3. 字库制作具体步骤

• 利用CorelDraw 12绘制气象符号图形。在CorelDraw 12中将窗口缩放到适中的大小,按图式尺寸一一绘制气象符号,如图1所示。将绘制好的图形保存为统一大小的位图。

Figure 1. Draw meteorological symbol with CorelDraw 12

图1. 利用CorelDraw 12绘制气象符号图形

• 新建字体文件。在Font Creator 5.6中新建字体,输入字体名称,选择字符集,如图2所示。其中,符号字符集内部不包含索引表,自由性比较大,通常用来存储一些非标准符号,在一些软件中可以作为图形插入;而Unicode字符集(编码字体)是目前最常见的一种类型,主要是为了协调东西方语言的字符数量相差悬殊而制定的一种16位符号编码策略,可以表达65,536个字符并为每个符号建立唯一的字码,从而保证了字符编码的正确性[4]。本文选择Unicode字符集。新建字体默认有236个字符,而天气现象符号有96个,可保留前边的96个字符,将后面多余的删除。

• 导入图形生成字符并进行必要调整。将绘制好的符号位图一一导入,经过矢量化,将气象符号由栅格转换为矢量的字体符号,对需要调整的字符,双击后可在如图3所示的小窗口中对字符大小、间距、位置以及线条宽度、弧度进行调整。

• 保存生成字库。按照以上步骤将所有字符图形一一导入字体文件,调整好大小、位置、间距之后,选择“文件”菜单中“保存”选项,即可得到预期的字体文件。

Figure 2. New font named Weather_Now

图2. 新建字体Weather_Now

Figure 3. Adjust characters if necessary

图3. 对字符进行必要调整

3. 图形符号化的方法

制作好的符号库和字体库占用空间非常小,可以保存到任何文件夹中,可以分发给任何一台安装Windows操作系统的计算机中。在气象资料实时处理、实况显示中对天气现象和云状要素进行符号化显示可采用手工选取的方法和程序自动实现的方法,手工方法较简单,这里只介绍程序自动实现的方法。不论采用哪种方法,都需要编制气象要素符号对照表[5]

3.1. 符号对照表的编制

在字体编辑软件中制作的每个符号都有名称,都对应某一种天气现象,为了进行图形符号化时能将天气现象与字体符号有效对应,需要编制天气现象的符号对照表。符号对照表可存于SQL Server或Oracle数据库中。符号对照表的表结构如表1所示,表2是符号对照表的部分内容。

3.2. 图形符号化的程序方法

本文介绍基于.Net平台的气象图形符号化的程序方法,符号显示程序一般为实况显示系统的子模块,在应用系统项目根目录下新建cs文件,在显示天气现象的代码中设置字体为天气现象符号字库 (Weather_Now.ttf),在显示云状的代码中设置字体为云状符号字库(Cloud_Show.ttf)。在显示时,根据气象要素对应电码查询数据库,获得相应气象要素符号名,根据符号名显示相应气象符号。

在应用系统启动时,完成气象符号字体库的安装,在应用系统的图形窗口显示气象符号时,调用

Table 1. Table structure of symbol parallel table

表1. 符号对照表的表结构

Table 2. Partial content of symbol parallel table

表2. 符号对照表的部分内容

符号化程序,取得Sign_Name字段的符号名,将图形符号化后再显示出来。

4. 应用方法和实例

由本文所述技术制作的气象符号字库如图4所示。将字体文件拷贝到Windows的Font目录下,即完成气象符号字体库在操作系统中的安装。该字库除了在一些常用编辑软件(如Microsoft Office,WPS)中作为普通字体使用外,其主要作用在于对ArcGIS符号库的扩展以及可视化显示气象要素。

4.1. ArcGIS符号样式库的扩展

打开ArcGIS,选择Tools/Style/Style Manager菜单,打开Style Manager窗口,单击Styles按钮,创建新的样式库文件(气象符号.style)或打开已经存在的样式库。利用Style Manager的符号设计功能将已安装在字体文件中的符号逐一导入到刚才创建的气象符号样式库中,并利用预览窗放大确定其定位点和设置符号大小,最后设置符号名、颜色及其分类码,完成气象符号样式库的创建,如图5所示。

Figure 4. The completed font library of meteorological symbol

图4. 制作完成的气象符号字库

Figure 5. Create style library of symbol in ArcGIS

图5. 在ArcGIS中创建符号样式库

只要建立了完备的气象符号样式库,在ArcGIS中就能调用气象信息数据库以及ArcGIS所支持的一切格式的数据信息,完成对气象信息的可视化显示。在加载完数据后,选择Tools/Style/Style References菜单,打开Style References窗口,选择需要关联的符号样式,点击OK按钮。关联了符号样式后,在符号选择对话框中便可直接在左侧的窗口中按编码选择所对应的符号进行显示。图6示意了在ArcGIS中利用气象符号样式库可视化显示天气现象和云状的效果。

另外,在Style Manager窗口中,通过样式符号操作快捷菜单中的Properties命令,可对样式符号的大小、颜色、角度等进行个性化配置[6]

4.2. 可视化显示气象要素

目前,在我国(我军)气象业务中广泛使用的气象资料实时处理系统以及基于Web的气象信息共享平台中,一般都是按照如图7所示格式对气象要素进行可视化显示的。其中所示各气象要素分别为:左边一列依次为气温、现在天气现象、能见度和露点温度;

Figure 6. Use style library of symbol in ArcGIS

图6. ArcGIS中符号样式库的使用

Figure 7. Visual display form of meteorological elements

图7. 气象要素可视化显示格式

中间一列依次为高云云状、中云云状、总云量、低云云量和低云云高;右边一列依次为海平面气压、本场气压和低(中)云总量;dd为风向,ff为风速。

利用本文字库实现气象信息可视化显示需依赖表2所示对照表。在气象信息实时库中设置气象要素电码字段,该字段对应对照表中的Code字段,当显示模块被调用时,依据Code字段取得Sign_Name字段符号名,完成气象要素的可视化显示。在基于Web的气象信息共享平台中,江苏省部分站点某时刻实况如图8所示。

其显示模块核心代码为:

//定义要显示的气象要素变量

string Temp, Visibility,…, Cloud_Shape_H;

string font1 = "Weather_Now";

string font2 = "Cloud_Show";

…………………………

//显示温度、能见度、云高等数值化气象要素

DrawString(Temp,Brushes.Black,new PointF(x,y));

…………………………

//显示天气现象和云状等符号化气象要素

DrawString(Sign_Name, new Font(font1,16), Brushes.Black,new PointF(x,y));

DrawString(Sign_Name, new Font(font2,16), Brushes.Black,new PointF(x,y));

…………………………

//将显示结果生成图片发往浏览器

Save(Response.OutputStream,ImageFormat.Gif);

5. 结束语

利用计算机和网络等各种技术对气象信息处理

Figure 8. Live show of some sites

图8. 部分站点实况显示

和实时显示的工作模式进行改造是发展的必然趋势。本文介绍了利用绘图软件和字体编辑软件建立气象符号字体库的设计思想和方法,提出了图形符号化的程序实现方法,并基于字库对ArcGIS符号样式库进行了扩展和改进,在系统开发和实际应用可中与程序的其他部分相独立,便于推广和重复使用,对于软件系统中的气象符号规范化、标准化有重要意义。

参考文献 (References)

[1]       牛芩涛, 盛业华. 基于Arc GIS的地图符号库的设计与实现[J]. 现代测绘, 2003, 6(12): 41-44.

[2]       向红梅. Arc GIS软件中地形图符号库制作及图形符号化的技术与方法[J]. 矿山测量, 2008, 6: 38-41.

[3]       熊伟, 蒋洪波等. 应用Arc GIS软件制作国标地形图符号[J]. 测绘与空间地理信息, 2005, 6(3): 71-73.

[4]       强建华. 基于ArcGIS的矿产资源类型符号库的设计与实现[J]. 中国煤炭地质, 2009, 9: 127-128.

[5]       董箭, 彭认灿, 李改肖等. 基于ArcGIS的海图符号库设计与实现[J]. 海洋测绘, 2009, 6(11): 64-67.

[6]       张俊岭, 熊卫东, 夏斌. 基于ArcGIS Engine的地图符号制作工具的设计与实现[J]. 测绘信息与工程, 2006, 31(5): 43-44.

NOTES

*资助信息:本文受国家自然科学基金(61070174)和东南大学计算机网络和信息集成教育部重点实验室开放研究基金(K93-9-2010-03)资助。

期刊菜单