应用气象学报  2004, 15 (4): 506-509   PDF    
一个气象数据分析绘图软件的设计与开发
郑永光1, 陈炯2, 王洪庆1, 张焱1, 陈敏3, 刘淑媛1, 白洁4, 朱佩君1, 陶祖钰1     
1. 北京大学物理学院大气科学系, 北京 100871;
2. 国家气象中心数值室, 北京 100081;
3. 北京城市气象研究所, 北京 100089;
4. 空军第七研究所, 北京 100085

由于计算机性能的日益提高和普及, 计算机绘图软件成为科研人员工作中的不可缺少工具。目前虽有很多业务应用的气象图形系统, 如中国气象局9210工程开发的MICAPS系统等, 它们在气象业务预报方面发挥了巨大的作用, 但在气象科研工作上经常使用的微机二维绘图软件主要有GRADS、Surfer [1]和NCAR Plot [2]等, 这几款软件由于其自身所限, 使用起来有较多不便之处。此外, 北京大学在微机上开发了三维真立体可视化绘图软件PC-Vis 5D [3]。PC-Vis 5D具有友好的用户控制界面, 可快速地加工、显示多个物理变量的多种复杂美观的二维、三维图像[3]。但目前PC-Vis 5D还有进一步开发完善的必要。

为了方便地进行气象数据的分析诊断与绘图, 我们在Win 32操作系统 (Windows 9X/NT, ME, 2000, XP) 平台上开发了操作界面友好的气象数据分析与绘图软件———客观分析诊断图形系统 (图1)。我们曾在文献[1]中简单地介绍过这款软件功能, 本文将就该软件的设计、特点、解决的技术问题等方面做介绍。

图 1. 客观分析诊断图形系统的主界面 (图中为2002年12月17日00 :00 UTC的地面常规观测数据经客观分析后使用极射赤面地图投影绘制的北半球海平面气压分布图)

1 软件的设计开发原则与主要特点

客观分析诊断图形系统的设计与开发主要考虑了如下几个原则:准确性、稳定性、简单性、方便性、灵活性、兼容性与通用性。准确性使得该软件的数据分析结果是准确可信的; 软件的稳定性能够保证软件在运行期间不出现“非法操作”与死机的情况; 简单、方便、灵活、兼容与通用这是软件能够得到广泛应用的基本保证。

根据这些设计原则, 该软件的主要特点简述如下:①客观分析诊断图形系统使用图形化操作界面, 操作简单方便易学; ②支持多种数据接口, 如气象地面、探空常规观测原始数据, NCEP分析/再分析格点数据, V5D格式格点数据等; ③绘制多种图形; ④能够输出多种通用的图形图像文件, 可方便地与其它应用软件相衔接, 体现了软件设计的通用性原则; ⑤可编辑修改文本文件、RTF文件、绘图文件以及多种格式的图形图像文件。

2 解决的主要技术问题 2.1 客观分析与诊断

气象常规观测资料必须经过客观分析后, 才能进行物理量诊断。本软件可以使用多种格式的报文数据, 如原始气象报文格式、MICAPS填图或者tlogp格式数据进行客观分析。本软件提供了两种客观分析方法供用户选择使用:最优插值和Cressman逐步订正法。对于Cressman逐步订正法的初值场由分析程序根据观测资料直接插值生成, 不再需要用户提供, 因此这种分析方法不适合于资料稀少区域。客观分析使用对话框、批处理、命令行与资源管理器四种运行方式。

2.2 多线程技术 (后台运行客观分析)

Win32操作系统的多任务特性使程序员可以利用多线程技术让运行时间较长的工作后台运行, 而不影响系统其它任务的工作。

本软件系统设置了一个线程对象, 通过该对象使客观分析程序后台运行, 在该线程活动期间, 通过定时器消息查询工作线程的状态。线程是Windows操作系统需要分配CPU时间的基本执行单元。由于Windows操作系统为多任务的操作系统, 它决定哪一个线程将会得到中央处理器 (CPU) 的下一个可用时间片。使用多线程技术, 可以使应用程序具有更好的并发性, 能更有效地使用系统资源和提高操作系统的吞吐量。

2.3 动态使用内存

在程序运行过程中, 根据程序的实际需求确定所需要的内存空间, 就是动态内存分配。在动态分配的内存不再需要时, 需要对其进行动态释放, 以方便其他应用程序继续使用。动态使用内存能够更加有效地使用计算机有限的内存资源。因此, 本系统在进行客观分析与绘制图形时全部进行动态内存分配, 使用过的内存自动释放以减少本软件对系统资源的占用。

2.4 绘制与输出多种图形

在绘图文档中, 能够绘制多种大气科学上经常使用的图形, 绘制图形类别主要有:地图 (支持Lambert、极射赤面、Mercator正形投影)、平面等值线图、垂直剖面等值线图、流线图、矢量图 (网格点与不规则分布点)、T-lnp图、散点图等。如图2所示的T-lnp图以及垂直剖面图形。

图 2. 2000年5月23日00 :00 UTC (a) 北京 (54511) 的温度 (实线)、露点 (虚线)、风垂直廓线与 (b) 沿115°E垂直剖面上的温度 (虚线)、位温 (实线) 与风速 (填充区) 的垂直分布 (下方阴影区为地形高度)

本软件能够自由地对多个图形对象进行叠加与组合, 并能够对图形的属性进行任意修改, 也可以根据需要对图形进行裁剪。修改完善后的图形, 可以使用多种格式输出, 还可以通过复制粘贴操作插入到Office、Photoshop等其它应用软件中。

绘图文档中可以多页显示图形 (见图1)。为了使熟悉Word软件的用户更快地操作本软件, 可以把多个图形对象分布到多个页面上, 每一个显示页面就是一个可打印页。

2.5 Win 9x中绘图GDI的16位问题

由于Win 9x不是真正的纯32位操作系统, 其滚动条与绘图GDI的坐标范围受16位表示的最大无符号整数 (最大为65536) 的限制。通过运用分页绘图技术, 使得每一页的绘图坐标限制在65536范围之内, 解决了Win 9x中绘图GDI函数的16位限制问题; 本软件不再调用Win 9x中16位滚动条函数而是调用32位的函数就解决了Win 9x中滚动条范围的16位限制问题。

利用Bresenham算法[4]编写的画线函数成功地解决了Win 9x中GDI函数画“划线”、“点线”等宽度只能有一个像素的问题及在Windows NT/2000/XP操作系统中绘图对象拷贝到Office系列软件中“划线”、“点线”等变形的问题。

2.6 全屏幕显示与无级缩放

系统能够支持在全屏幕状态下显示文档, 能够最大限度地使用显示屏幕。软件支持无级缩放功能, 可以把显示页面缩放为任意大小, 并且可以自由改变图形对象的大小。

3 结论

客观分析诊断图形系统是一款运行在Win 32操作系统 (Windows 9X/NT, ME, 2000, XP) 下的二维气象数据分析、绘图软件系统。

客观分析诊断图形系统的设计与开发考虑了准确性、稳定性、简单性、方便性、灵活性、兼容性与通用性等几个原则。该软件解决了如下几个关键技术问题:客观分析与诊断、多线程技术、动态使用内存、绘制与输出多种图形、多页显示图形、Win 9x中的16位问题、全屏幕显示与无级缩放、多种地图投影等。

客观分析诊断图形系统功能较强, 该软件不但能够对气象常规观测资料进行客观分析与诊断, 而且能够绘制精美的气象图形。该软件的绘图功能不仅能够应用到大气科学领域, 也能够应用其它地球科学领域。

参考文献
[1] 郑永光, 王洪庆, 陶祖钰, 等. Windows下二维气象绘图软件--客观分析诊断图形系统. 气象, 2002, 28, (3): 42.
[2] 赵远东, 王盘兴. NCAR绘图软件在Windows下的编程. 南京气象学院学报, 2001, 24, (2): 269.
[3] 王洪庆, 张焱, 陶祖钰, 等. 五维大型复杂数据集计算机可视化. 自然科学进展, 1998, 8, (6): 742.
[4] 孙家广,杨长贵编著. 计算机图形学(新版). 北京:清华大学出版社,1994. 169~170.