朱宗奎,于雪濤,李金鴿,蔣之犇
(1.中國礦業大學資源與地球科學學院,江蘇徐州 221116; 2.中國礦業大學安全工程學院,江蘇徐州 221116;3.陜西師范大學旅游與環境學院,陜西西安 710062)
交通氣象預報制作系統的設計與實現
朱宗奎1?,于雪濤1,李金鴿2,蔣之犇3
(1.中國礦業大學資源與地球科學學院,江蘇徐州 221116; 2.中國礦業大學安全工程學院,江蘇徐州 221116;3.陜西師范大學旅游與環境學院,陜西西安 710062)
本文在指出當前交通氣象預報中預報公路少和細節層次低的缺陷后,以包頭市為例,結合ArcGIS Engine二次開發組件,設計并實現了針對包頭市范圍內公路的交通氣象預報制作系統。本系統能夠結合包頭市下各旗縣的天氣,快速地生成交通氣象預報圖和公路氣象文字描述,并且生成的交通氣象預報圖中自動地添加了圖例比例尺指北針等輔助要素。生成的交通氣象預報圖和文字描述可直接地發布到互聯網,供公眾出行查詢,填補了當前我國省級及地級市級氣象單位沒有發布交通氣象預報的空白。
交通氣象預報;ArcGIS Engine;交通氣象預報圖
中國氣象局網站每天發布的“全國主要公路沿線氣象條件預報”給人們的出行帶來了很大方便,但是該預報也存在著缺陷,即它只是對國道及部分高速路段做了氣象條件的標注,而對于省道等次級公路并沒有做標注[1]。而且,我國大部分省級及地級市級的氣象局也沒有發布本區域內的交通氣象條件預報情況。對于公眾,其不只是只走國道,而且還要在省道等次一級的道路上經過,因此迫切地需要當地氣象局能夠發布本區域內的交通氣象條件,指導公眾的出行。
為了解決以上突出問題,作者采用ArcGIS Engine作為二次開發組件,以包頭市為例,設計并實現了針對包頭市范圍內的旗縣級公路、高速路和國道的交通氣象預報制作系統。系統根據用戶設定好各旗縣的天氣情況后,自動生成包頭市范圍內交通氣象情況圖,然后自動地添加標題、圖例、比例尺和指北針等元素,并將生成的交通氣象圖根據用戶選擇的分辨率和保存的圖片格式進行保存,同時也將區縣天氣描述和沿線公路描述等文字信息一并導出。
系統的總體目標是:根據包頭市的公路網圖和每天的天氣預報信息,制作交通氣象圖并同時生成交通氣象文字描述信息,然后將交通氣象圖導出為圖片,對于文字描述部分導出為txt文檔,便于后面的網絡發布。系統在設計時遵循以下原則:①實用性;②可靠性;③開放性;④可擴充性。
2.1 系統研發平臺
ArcGIS Engine(AE)是一組跨平臺的嵌入式AO,它是ArcGIS軟件產品的底層組件,用來構建定制的GIS和桌面制圖應用程序,或是向原有的應用程序增加新功能,通過它,可以構建非GIS為中心的應用。開發者使用ArcGIS Engine開發包構建應用程序,并通過ArcGIS Engine Runtime的軟件許可將這些程序發給最終用戶。ArcGIS Engine開發包包括三個關鍵部分:控件、工具條和工具對象庫。它的控件包括:MapControl、PageLayoutControl、ToolbarControl、TOCControl、Reader-Control、SceneControl和GlobeControl。其中前面4個控件用得比較多。由于ArcGIS Engine控件為嵌入式組件,故可以任意地添加到編譯環境的窗口和對話框中去,而且開發者能夠訪問ArcGIS Engine控件的屬性菜單項。每一個ArcGIS Engine控件既封裝了粗粒度的ArcObject,同時又提供了對細粒度的ArcObject的訪問。因此,采用ArcGIS Engine的控件、工具條和工具對象庫,可輕松實現空間數據的存取、地圖的表達及專業的空間分析[2]。所以,作者采用C#編程語言,結合ArcGIS Engine實現交通氣象制作系統的研發。
2.2 功能設計
在實際的應用中,地級市中各旗縣的天氣預報可每天獲得,而具體的云雨天氣等情況的實際范圍不易獲得。由于預報的范圍比較小,故可以大致認為旗縣的天氣情況就是該旗縣范圍內所有區域的天氣情況。根據以上系統的總體目標及數據的處理流程圖(圖1)作出設計。系統共分為三大模塊,即錄入氣象參數模塊、添加圖例比例尺指北針等輔助要素模塊和導出交通氣象預報圖及預報文本模塊。
錄入氣象參數模塊,主要負責根據用戶錄入的各旗縣的天氣參數(包括小到中雨、大到暴雨、小到中雪、大到暴雪、凍雨、霧、沙塵、雷暴和未受影響,共9項),在錄入完成后,則對地理底圖中的公路圖層中的圖元根據所屬旗縣的天氣情況更改圖元的顏色。具體的顏色設置,參考中國氣象局發布的“全國主要公路沿線氣象條件預報”中的各種天氣的顏色設置。同時還要保存旗縣和道路的天氣描述文字信息。添加圖例比例尺等輔助要素的模塊是在ArcGIS Engine的Pagelayout控件中添加比例尺、指北針等要素。導出模塊則是負責把添加了輔助要素的交通氣象預報圖導出為圖片,同時將保存的旗縣和道路的天氣描述文字信息導出到一個txt文件中。經過上述步驟得到的交通氣象預報圖和道路的天氣描述文字信息,則可以直接發布到網絡中,供公眾出行時查詢。

圖1 數據處理流程圖
系統選取的數據包括包頭市行政區劃圖、包頭市內的公路路線圖和旗縣點圖層。采用行政區區劃圖的目的是為了說明只預報該區劃范圍內的交通氣象條件,采用旗縣點圖層的目的是輔助用戶在交通氣象預報圖中大致定位。
為了實現系統快捷方便地打開數據,作者首先采用ArcGIS Desktop軟件建立一個mxd圖層工程文件,將三個圖層添加到該mxd地圖中,并對這些圖層的屬性表和圖層的顯示方式做些設置。對于行政區劃圖,在其屬性表中添加一個“TownName”字段,該字段記錄了包頭市內各個旗縣的名稱,然后設置不同旗縣不同的顯示顏色。在包頭市內,包括市轄區、固陽縣、土默特右旗、白云礦區和達爾罕茂明安聯合旗。對于公路圖,首先,采用公路圖線圖層和行政區劃圖面圖層做疊加分析(Overlay)中的交集操作(Intersect),經疊加分析后,獲得了新圖層就是行政區劃圖中各個旗縣范圍內的公路圖。并且該圖層的屬性表中,既有原公路圖層中的字段,又有行政區劃圖層的字段,如“Town-Name”字段。為了便于后面的計算,在該圖層的屬性表中,添加“weather”字段,該字段臨時保存該路段的氣象條件信息。對于旗縣點圖層,僅設置它的顯示方式即可。作者經過以上的設置后,得到的包頭市交通氣象制作底圖如圖2所示。

圖2 包頭市交通氣象制作底圖
4.1 生成交通氣象圖
生成交通氣象圖的實質就是首先根據各旗縣的名稱查找各旗縣下的所有公路,因為道路圖的屬性表中有“TownName”字段,故可以找到,然后對道路圖的“weather”字段進行賦值,賦的值即為錄入的所在旗縣的天氣信息。然后采用ArcGIS Engine中的唯一值的渲染方法,對“weather”字段的所有值進行唯一值渲染,從而更改道路圖層中各圖元即各道路段的顏色,具體的每種天氣對應的顏色設置則參考中國氣象局的交通氣象預報。同時,將預報的旗縣天氣描述信息和旗縣內具體道路的天氣信息保存到txt文件中,以待發布交通氣象時使用。如圖3所示,即為系統的錄入各旗縣天氣的界面及系統的主界面。其中,道路圖的渲染都是在MapControl控件中完成的。

圖3 系統的錄入各旗縣天氣的界面及系統的主界面
4.2 添加輔助要素
在ArcGIS Engine的MapControl控件中生成交通氣象圖后,還要添加圖例比例尺等輔助要素,這些一般都是在PageLayoutControl控件中添加的。因為雖然PageLayoutControl控件和MapControl控件都是用于地圖數據的可視化的顯示,但是PageLayoutControl控件提供的顯示類似ArcMap中的地圖制圖與輸出窗口。因此,在系統的實現過程中,實現MapControl控件與PageLayoutControl控件的聯動。

圖4 添加了輔助要素的交通氣象圖
在ArcEngine對象模型中,圖名、圖例、指北針和比例尺輔助要素都是從IElement對象繼承過來的。在系統的研發實現中,分別利用ArcGIS Engine中的ITextElement、ILegend、IMarkerNorthArrow和IScaleBar 4個接口實現創建圖名、圖例、指北針和比例尺的實例,然后利用IEnvelope接口實現各要素的位置和大小的鎖定,具體各要素的位置和大小需經多次試驗調節后才能找到比較合適的參數。從而,通過以上步驟就完成了各輔助要素的添加,如圖4所示,即為添加了各輔助要素的交通氣象圖。
4.3 導出為圖片
ArcGIS Engine支持地圖視圖以圖形形式輸出的格式常用的主要有:BMP格式、GIF格式、JPEG格式、PDF格式、PNG格式、TIFF格式等。對于每種格式,ArcGIS Engine都提供了該格式所對應的輸出對象來管理圖形的輸出。如對于BMP格式,ArcGIS Engine提供了ExportBMPClass類來管理該格式的地圖圖形輸出。所有這些格式輸出對象都實現了IExport接口,該接口定義的屬性和方法用于管理地圖的圖形輸出。
將地圖以圖形文件形式輸出通常包含4個步驟:
(1)創建一個某種格式的圖形輸出對象;
(2)定義地圖圖形顯示源文件和目標文件的分辨率;
(3)定義屏幕顯示目標矩形區域和地圖打印范圍的矩形區域;
(4)對輸出對象發送輸出指令,開始制定格式地圖輸出文件創建過程。

圖5 系統輸出的公路氣象預報圖
系統采用以上步驟,輸出的包頭市公路氣象預報圖如圖5所示。將該圖與先前輸出的旗縣天氣和旗縣內公路氣象條件的文字描述部分綜合起來,就可發布到互聯網上,便于公眾的出行查詢。
作者結合交通氣象預報資料,以包頭市為例,設計并實現了基于ArcGIS Engine的交通氣象預報制作系統。系統能夠結合包頭市公路和每天的天氣預報數據,可直接生成帶有比例尺圖例等輔助要素的交通氣象預報圖和交通氣象文字描述部分,并且這兩部分可直接發布到互聯網,方便地區公眾的出行查詢。系統生成的交通氣象預報圖,雖能部分地說明市域范圍內的交通氣象情況,但若是結合一手的氣象數據,同時將研究區內更多公路添加進來,將能制作更為準確和全面的交通氣象預報系統。
[1] 中國氣象局.全國主要公路沿線氣象條件預報.http:// www.cma.gov.cn/tqyb/v2/product/traffic.php,2010-7-26
[2] 吳瑋,李小帥,張斌.基于ArcGIS Engine的GIS開發技術探討[J].科學技術與工程,2006,6(2):176~178
[3] 韓鵬,王泉,王鵬等.地理信息系統開發—ArcEngine方法[M].武漢:武漢大學出版社,2008,222~265
Design and Realization of the Traffic Weather Making System
Zhu ZongKui1,Yu XueTao1,Li JinGe2,Jiang ZhiBen3
(1.School of Resources and Earth Science,China University of Mining&Technology,Xuzhou 221116,China;2.Faculty of Safety Engineering,China University of Mining&Technology,Xuzhou 221116,China;3.College of Tourism and Environment,Shaanxi Normal University,Xi’an 710062,China)
After pointing out the defects that these are only a few road lines in the current traffic weather forecast,selecting ArcGIS Engine as the secondary development components,this paper designs and releases the traffic weather making system for the Baotou city.Integrating the weather forecast data form the county in the Baotou city,this system can generate the traffic weather description and the traffic weather forecast maps quickly.Besides,the legend,north arrow,title and scale bar can be added to the map automatically.The description and the maps can be published to the Internet serving for the public directly.So this system fills the missing gaps in our country that provincial and city level meteorological offices do not publish the traffic weather forecast.
Traffic Weather Forecast;ArcGIS Engine;Traffic Weather Forecast Map
1672-8262(2011)01-16-04
P208
A
2010—08—02
朱宗奎(1981—),男,助教,從事學生行政管理工作。
國家自然科學基金資助(40972207)