趙大清,姚正蘭
(貴州省遵義市氣象局,貴州 遵義 563002)
貴州區域自動氣象站數據等值線應用系統簡介
趙大清,姚正蘭
(貴州省遵義市氣象局,貴州 遵義 563002)
該文以繪制貴州省等值線雨量圖為例,著重介紹利用Surfer軟件繪制區域圖和在底圖上繪制等值線圖的方法,展示用Delphi7.0編程語言調用Surfer8.0的繪圖函數,實現Surfer8.0與Delphi7.0之間的API自動化接口,從而實現區域等值線圖的程序化輸出。
區域圖;氣象要素;等值線;Delphi;Surfer
結合氣象信息在社會發展中的應用和需求,需要對各個時次的數據進行批量的或任意的處理。氣象信息只有有效、準確、及時、直觀的發布出去,才能更好地應用本系統通過專業數據庫軟件設計程序(Delphi7.0)[1],結合有 API自動化接口的專業圖形繪制軟件(Surfer8.0)[2]制作出等值線圖形。
Golden Software Surfer(簡稱Surfer)是一款繪制三維圖和等值線圖的軟件,最大的特色是具有插值功能和填色繪制。用此軟件繪制的區域等雨量線圖能直接形象地反映出區域雨量的分布。雖然有很多文獻對Surfer軟件都進行了較為詳盡的介紹,但由于其幫助文件大多是英文版,因此在基層臺站的應用還待進一步提高。如何制作區域底圖,并將區域自動站數據疊加在底圖上以及怎樣利用delphi7.0編程語言調用Surfer8.0的繪圖函數,實現等值線繪圖的程序化操作,是本文所要解決的主要問題。
貴州省區域地圖通過Surfer8.0繪制,區域自動站點的經緯度資料取自貴州省氣象信息中心自動站數據庫中臺站信息數據表,并作十進制計算以方便在Surfer8.0的繪圖時使用。本文以調用貴州省區域內2012年8月1日22時前24 h降水資料為例,介紹該時次貴州省區域自動站等值線圖的繪制方法。
首先調用讀出貴州省邊界經緯度資料,生成閉合無縣界的bln文件guizhoubase.bln,其文件格式如下:

其中,X1、Y1是閉合曲線初始點的經緯度數據,Xn、Yn是閉合曲線終點的經緯度數據。X是某一點上的緯度數據,Y是某一點上的經度數據。Length是底圖曲線中點坐標的個數,當flag=1時,底圖區域內的等高線可以消除,當flag=0時,可以消除底圖區域以外的等高線,本例選flag值=0。
同時單獨制作出帶市縣界的bln文件guizhou.bln,便于與guizhoubase.bln文件的圖層疊加。
在Surfer8.0中繪制出應用程序所需要的bln文件和shp文件,bln文件將數據文件作經緯度的規范,使其在規定范圍內、shp文件添加進市縣界使區域更加直觀。在應用程序用到這兩個文件時,就已經是默認狀態,所以不用考慮自己去制作。
bln文件和shp文件格式都是同樣:


經緯度資料從省氣象信息中心自動站數據庫的臺站信息數據表取出作核實,制作出詳細的數據文件;在設計程序計算時需要用到對應的數據類型和格式。基本設計如下:

應用程序將數據通過下面過程調用處理,并與基本數據結合生成出新的字符串列表,保存給Surfer8.0 調用。

通過過程調用后的數據文件guizhoudata.txt,其格式如下:

Surfer從7.0版本開始增加了Automation技術,提供了程序化制圖的擴展空間。如何利用Delphi7.0編程語言調用Surfer繪圖函數自動繪制等值線圖呢?這里介紹一個簡便的基于Surfer 8.0的Delphi7.0代碼實現方法。


圖1 加載guizhou.bln文件


在繪制區域等雨量線圖過程中,閉合區域底圖的制作至關重要,閉合就是要求數據要首尾相連,從頭到尾圍成一閉合的圖形。閉合區域底圖、閉合分縣界底圖和自動站站點所采用的經緯度數據一定要取自同一個數據源,兩圖的制作方法有所不同,所起的作用也是完全不同的。

圖3 通過美化后的最終出圖
利用Delphi7.0編程語言調用Surfer函數聯合編程,實現了雨量圖的自動顯示和輸出,操作簡捷,如連接自動雨量站網數據庫實現ADO連接數據庫自動采集,則可達到實時繪制雨量圖的效果。
[1]Surfer 8.0 初學者手冊[M]. 原創 Addison,2003,(5)21.
[2]Delphi7.0程序設計基礎教程與上機指導[M].北京:清華大學出版社,2002.
TP311.52
B
1003-6598(2012)05-0044-03
2011-09-07
趙大清(1982—),男,助工,主要從事計算機網絡管理和雷達應用等工作。
貴州省科學技術廳項目“貴州省交通安全氣象風險區劃及應用平臺研究-以遵義為示范點”(黔科合SY字[2012]3054號)。