![]() Computer Science and Application 计算机科学与应用, 2012, 2, 1-5 http://dx.doi.org/10.12677/csa.2012.21001 Published Online March 2012 (http://www.hanspub.org/journal/csa) 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, Corel- Draw, and font editing program, Font Creator Program. Based on applying of font library, the text also designs symbol mapping tables and presents mentality o f 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 收稿日期:2012 年1月12 日;修回日期:2012 年1月26 日;录用日期:2012 年2月5日 摘 要:面向气象信息实况显示对图形化气象符号需求,论述了利用绘图软件(CorelDraw)和字体编辑软件(Font Creator Program)制作气象符号字体库的整个过程;基于气象符号字库的使用,设计了符号对照表,提出了图形 符号化的思路;最后利用气象符号字库对 ArcGIS 样式库进行了扩展,并结合实例,对可视化显示气象信息的程 序方法进行了说明。 关键词:气象符号字库;对照表;图形符号化;样式库 1. 引言 气象符号是直观表达气象要素的一种可视化工 具,在实际应用中,主要表现为天气现象符号和云状 符号,作为传递气象信息的手段之一,在气象信息的 处理、实况显示和传递中起着不可替代的作用。气象 符号由不同形状和大小的图形组成,在实况显示的相 应区域呈现天气现象和云状。近年来,随着计算机技 术和网络技术的飞速发展,各种气象资料实时处理软 件和基于 Web 的气象专业网站无一例外地把如何便 捷的制作、调用、管理和维护气象符号库作为系统开 发的重点之一。 目前,业务中广泛使用的各种气象资料实时处理 和显示软件对气象符号的图形化显示,大多是基于计 算机程序语言中的绘图函数(类)实现的,灵活性、维 护性和扩展性较差。由美国 ESRI 公司开发的 ArcGIS 中也提供了气象符号字体库,安装到 Windows系统中 的Font文件夹后,可以作为普通字体被系统调用,但 *资助信息:本文受国家自然科学基金(61070174)和东南大学计算机 网络和信息集成教育部重点实验室开放研究基金(K93-9-2010-03) 资助。 Copyright © 2012 Hanspub 1 ![]() 基于字库的气象符号及图形符号化技术与方法 在其提供的气象符号库中,可用的符号数量无法满足 我国(我军)气象业务的需求,在使用中经常带来很多 不便,因此有必要开发新的制作气象符号库的方法。 本文以应用需求为设计需求,充分考虑到现有实 现方式的优缺点,采用代数的方法进行气象符号库的 制作,这种符号化的方法是把符号的制作和调用、显 示完全分开,首先使用绘图软件和字体编辑器制作气 象符号库,然后将生成的 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,现行标准为 O penType 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. 利用Core lDraw 12绘制气象符号图形 Copyright © 2012 Hanspub 2 ![]() 基于字库的气象符号及图形符号化技术与方法 新建字体文件。在 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. 符号对照表的表结构 序号 字段名 别名 类型 1 Code 电码 int 2 Weather 天气现象 text 3 Sign_Name 符号名 char Table 2. Partial content of symbol parallel table 表2. 符号对照表的部分内容 电码 天气现象 符号名 05 观测时有霾 ! 22 雪、米雪或冰粒 2 70 间歇性小雪 B Copyright © 2012 Hanspub 3 ![]() 基于字库的气象符号及图形符号化技术与方法 符号化程序,取得 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. Ar cGIS中符号样式库的使用 Figure 7. Visual display form of meteorological elements 图7. 气象要素可视化显示格式 Copyright © 2012 Hanspub 4 ![]() 基于字库的气象符号及图形符号化技术与方法 Copyright © 2012 Hanspub 5 中间一列依次为高云云状、中云云状、总云量、低云 云量和低云云高;右边一列依次为海平面气压、本场 气压和低(中)云总量;dd 为风向,ff 为风速。 利用本文字库实现气象信息可视化显示需依赖 表2所示对照表。在气象信息实时库中设置气象要素 电码字段,该字段对应对照表中的Code 字段,当显 示模块被调用时,依据 Code字段取得 Sign_Name 字 段符号名,完成气象要素的可视化显示。在基于 Web 的气象信息共享平台中,江苏省部分站点某时刻实况 如图 8所示。 Figure 8. Live show of some sites 其显示模块核心代码为: 图8. 部分站点实况显示 //定义要显示的气象要素变量 和实时显示的工作模式进行改造是发展的必然趋势。 本文介绍了利用绘图软件和字体编辑软件建立气象 符号字体库的设计思想和方法,提出了图形符号化的 程序实现方法,并基于字库对ArcGIS 符号样式库进 行了扩展和改进,在系统开发和实际应用可中与程序 的其他部分相独立,便于推广和重复使用,对于软件 系统中的气象符号规范化、标准化有重要意义。 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)); 参考文献 (References) [1] 牛芩涛, 盛业华. 基于 Arc GIS的地图符号库的设计与实现[J]. 现代测绘, 2003, 6(12): 41-44. DrawString(Sign_Name, new Font(font2,16), Brushes.Black,new PointF(x,y)); [2] 向红梅. Arc GIS 软件中地形图符号库制作及图形符号化的技 术与方法[J]. 矿山测量, 2008, 6: 38-41. ………………………… [3] 熊伟, 蒋洪波等. 应用Arc GIS软件制作国标地形图符号[J]. 测绘与空间地理信息, 2005, 6(3): 71-73. //将显示结果生成图片发往浏览器 [4] 强建华. 基于ArcGIS的矿产资源类型符号库的设计与实现[J]. 中国煤炭地质, 2009, 9: 127-128. Save(Response.OutputStream,ImageFormat.Gif); [5] 董箭, 彭认灿, 李改肖等. 基于ArcGIS 的海图符号库设计与 实现[J]. 海洋测绘, 2009, 6(11): 64-67. 5. 结束语 [6] 张俊岭, 熊卫东, 夏斌. 基于ArcGIS Engine的地图符号制作 工具的设计与实现[J]. 测绘信息与工程, 2006, 31(5): 43-44. 利用计算机和网络等各种技术对气象信息处理 |