張凱
摘要:針對鄭州市大氣污染防治中PM2.5污染這一熱點問題,采取分層架構、功能引導、模塊劃分的設計思路,以GIS技術為支撐,基于VS平臺使用C#語言編程,結合TE的二次開發技術,實現對鄭州轄區的PM2.5污染情況進行定量分析、二三維可視化呈現、趨勢預測和控制輔助決策,為環保部門決策和疾病預防提供理論依據和技術支撐。
關鍵詞: GIS 顯示 控制 預測 Surfer
PM2.5 pollution diffusion display system supported by GIS
Zhang Kai
Shijiazhuang mechanized infantry academy
Abstract:Aiming at the hot issue of atmospheric pollution protection about PM2.5 in Zheng Zhou, this topic will take layered architecture, function guiding and module partition designed ideas. It supported by GIS technology, based on VS 2010 platform and used of C# programming language. The topic also combined with secondary development technology of TE implementation. It can realize the quantitative analysis in2D&3D visualization rendering, trend prediction and control of power plant auxiliary decision making to the PM 2.5 pollution. The main purpose is to providetheoretical evidence and technical supporting for environment protection department's decision making and disease prevention.
Key words:GIS revealcontrol forecast Surfer
1概述
河南省作為全國第一人口大省,用電量巨大,但由于地處內陸,煤炭資源豐富,電力供應絕大多數依靠火電,霧霾已成為人們的健康殺手。鄭州市作為河南的省會城市,空氣污染十分嚴重,空氣質量常年“爆表”,污染問題亟待解決。
本文以鄭州市為例,探究鄭州市內13座火電站的污染排放對市區各地PM2.5(主要指二氧化硫、氮氧化物和懸浮顆粒三種污染物)的影響,并繪制等值線圖,形象地顯示各種污染物的變化情況,以便對市區空氣質量變化趨勢進行分析、預測。
設計的總體布局為“數據+算法+前臺展示”;首先使用XML數據加工處理技術對原始數據進行數據庫設計,再將加工好的數據提供給Surfer軟件,利用軟件自帶的等值線算法生產等值線圖,并對圖形的顯示進行一系列調整,增強圖形對數據的表現力。最后在開發環境中使用C#語言編寫WinForm應用程序,作為系統的前臺展示部分,通過Active X Automation接口編程調用Surfer的繪圖功能,快速、批量生成繪圖,從而在界面上進行顯示。
2研究背景和現狀
空氣污染監測是一個復雜的系統工程,它不但需要對海量的實時數據進行快速處理,更牽涉到不同部門、不同領域。隨著在網絡傳輸、軟件開發和大數據等領域的許多技術難題得以攻克,越來越多的空氣污染監測系統被研發出來,為環保、電力部門對空氣污染進行監測和控制提供了有力的技術支持。
各類污染監測系統種類繁雜,其實現方法各不相同,但在設計思路上大同小異,都是結合了編程語言與功能軟件的相應功能來對系統進行實現的。目前在PM2.5污染防治和檢測中,GIS技術運用較局限,大都運用于分析,沒有利用GIS可視化的優點對PM2.5進行實時監測,將污染情況顯示到地圖上。
本文針對這一突破口進行創新,在地理信息系統中直觀形象地展示鄭州地區13座火力發電站對空氣質量的影響情況,以便電力、環保部門查詢和分析,進而制定相應的手段措施應對空氣污染。
3基于XML的PM2.5污染數據庫設計
鄭州市一共有13個火力發電站,本文只考慮假設火電站產生的灰分Dust、硫化物SO2以及氮化物NOx三種污染物,而忽略汽車尾氣等其他因素對環境產生的惡劣影響。鄭州市市區包含有9個PM2.5的監測點,分別是:市環保局院內監測站、鄭州煙廠、醫學院、鄭紡機、省銀行學校、西開發區供水公司、經開區管委會、鄭東新區47中校內和崗李水庫(黃河邊)。為了首先了解火電站數據會產生什么影響,構建基于XML的污染數據庫模塊,設計中僅考慮13個電站產生的污染物會對環境產生影響。
本模塊對XML數據庫的設計,考慮到是基于使用XMLSpy的數據庫開發工具,它具有工業界標準的XML專業開發環境,支持Unicode、多字符集,支持Well-formed和Validated兩種類型的XML文檔,同時也具有很強大的樣式表設計功能,它可以利用圖形化的XML文檔編輯手段,將污染因素的文本信息及結構直觀的呈現給用戶。XMLSpy在不需要直接編寫XML代碼的情況下,利用編輯器可視化編輯功能會自動生成和定義需要的結構化數據。
在建立數據庫過程中,分別根據電站實際位置和監測點位置,建立電站表和監測點表,數據選擇2016年1月1號零時零分和2016年1月8號零時零分,由于數據量比較大,僅以該時間點的數據進行分析參考,并以此構建數據庫和數據查詢舉例。構建基于XML的污染數據庫[ZZPM25_Dev]。對數據庫的構造,先構建了一個Schema的模型模板,如圖3-3所示,是block字段的相關詳細信息,具體包括位置信息、污染信息以及13個電站的具體權重貢獻率。
對每個監測站而言,13個電站對它都會產生污染貢獻率,確定這個監測點的準確位置,能得到13個電站三種污染物的權重。對已建好的XML數據庫ZZPM25_Dev,利用索引來對XML數據庫進行查詢優化。
4基于Surfer的PM2.5污染等值線設計與實現
Surfer軟件可以通過OLEDB、ODBC或其他方式鏈接任何被MS支持的數據庫。因為本文所要處理的數據量巨大,為了便于后續的數據處理工作,先將數據庫文件轉換為Excel的表格文件,在場景窗口中,通過“網格”—“數據”選項,在對話框中選擇已經從數據庫中處理好的數據文件打開,并按需求修改網格數據信息。點擊生成的等值線圖,左下方會出現屬性管理器,在這里可以對等值線圖的各種屬性進行修改,包括常規、層次、圖層、坐標系和信息等。
4.1 鄭州地區三維地圖與等值線圖疊加顯示
1、選取鄭州地區地圖作為基底圖,地圖范圍為“112.6698°E—114.2152°E,34.25367°N— 34.99295°N”,通過“圖形”—“新建”—“基底圖”選項,選擇合適的圖片文件作為基底圖。
2、生成該地區某一時刻某種污染物濃度等值線圖,在屬性管理器中選擇“圖層”選項,將不透明度按需求調整為45%。
3、將等值線圖與基底圖疊加,首先在“編輯”工具中選擇“全選”將等值線圖與基底圖全部選中,然后在“圖形”工具中選擇“按坐標疊加圖形”,完成疊加。
4.2 單污染物同高度等值線圖設計
本文選取二氧化硫、氮氧化物和灰塵等三種污染物,選取2016年1月1日0時至2016年1月2日23時期間的鄭州市污染物濃度數據,每一個小時為一個時間節點,共48個時間節點,選取0、2、4、6、10、20、30、40、50、100、150、200等12個高度節點,共1728張等值線圖。本部分不僅可以實現用戶對單污染物同高度等值線的查詢,也為動態演示模塊提供材料。
1、選取數據庫中海拔為0、時刻為2016年1月1日0時的數據,保存為PM25Value _H0_2012-1-1-0.bln。
2、生成網格數據, X軸、Y軸分別選擇經度緯度,Z軸選擇二氧化硫數據,網格化算法選擇克里金插值法。
3、等值線設計,生成等值線后,打開屬性管理器,分別設置最小等值線為-0.02,最大等值線為0.32,等值線間隔為0.02,主要等值線間隔為5,填充等值線顏色選擇為Rainbow,選擇比色刻度尺。
氮氧化物和灰塵的等值線圖同理可得。
4.3 單污染物多高度等值線圖設計
以2016年1月1日12時、灰塵數值為例,分別選取0、50、100、150、200海拔高度,在同一繪圖場景下生成五張等值線圖并進行堆疊。
通過“圖形”—“添加”—“刻度尺”選項,添加海拔高度刻度尺,并通過屬性管理器調整刻度尺屬性。將生成的所有等值線圖拖動至對應的海拔高度,通過“圖形”—“水平對準圖形選項”將所有圖形排列在同一豎直面內。
4.4 利用C#語言調用Surfer軟件實現等值線圖的自動化生成
僅在 “112.6698°E—114.2152°E,34.25367°N— 34.99295°N”的范圍內,48小時內就產生1萬多條數據,可想系統如果投入使用,這么大的數據量僅靠人工是難以完成的,所以本文在人工生成等值線圖的基礎上進一步研究如何利用C#語言調用Surfer軟件按需求自動生成上述的各種等值線圖。
4.4.1由表格文件生成網格數據
(1)創建Surfer應用
(2)設置相應參數
包括定義軟件地址、數據文件地址、文件路徑、表單名等。
(3)設置文件路徑
(4)設置表單名
(5)處理二氧化硫數據
處理氮氧化物和灰塵數據同理可得。
4.4.2數據生成等值線圖
(1)設置相應參數
包括定義軟件地址、網格文件命名、圖片文件命名等。
(2)添加基礎地圖
(3)加載網格文件
(4)網格文件和圖片文件命名
(5)顯示色柱和添加顏色填充
(6)設置等值線平滑和透明度
(7)導出等值線圖
處理氮氧化物和灰塵數據同理可得。
5GIS支撐下的PM2.5污染擴散顯示系統設計與實現
GIS系統,是構架在數據庫管理系統(DBMS)和計算機輔助設計(CAD)兩個軟件基礎之上,并加入了強大的空間數據管理、分析功能的一種系統。本系統的開發正是基于此點,使用C#語言調用TerraExplorer軟件的控件,進行二次開發,來獲取系統的3D顯示窗口。
5.1 系統運行環境
系統開發軟件:Skyline Terra Explorer Pro、Visual Studio 2010
系統開發語言: C#
運行平臺:Windows7及以上版本
數據庫:SQL Server 2008 R2
5.2 系統界面
5.2.1主界面
主界面是用戶借以完成各項操作的主要用戶交互界面,其主要包含以下幾個部分:
菜單和工具條:用戶通過菜單和工具條調用系統的各項命令,或選取某種工具,進行鼠標或鍵盤的交互操作。
圖形顯示區域:該區域主要用于進行地圖、專題圖等圖形的顯示,并完成選擇、編輯、查詢、分析等操作的鼠標或鍵盤交互。
顯示控制窗口:用于對顯示要素的疊加順序、顯示狀態進行控制。
屬性數據窗口:用于顯示和處理查詢結果集合中的屬性數據。
狀態顯示窗口:用于顯示狀態信息、視點位置、姿態信息以及查詢或分析的結果數據。
5.2.2數據處理界面
5.2.3AQI預測界面
AQI預測界面其主要功能是,根據當前的PM2.5數據情況,參照未來天氣條件,采用ARIMA、趨勢外推和BP神經算法等相關算法,對未來一段時間空氣質量情況進行預測,以便為相關部門制定生產計劃提供依據,為人們的日常生活出行提供參考。
6結束語
本文采用分層架構的總體思路,以功能為指引,將系統模塊化;在開發過程中,采用UML對系統進行了進一步的設計;在具體實現時,以GIS技術為支撐,基于VS2010提供的.NET框架,使用C#語言進行程序編寫,依托TE的二次開發技術,成功實現了系統的數據處理、污染呈現、動態展示、污染擴散、前后對比等功能。
通過監測污染源,借助直觀形象的GIS,對其進行PM2.5污染情況顯示控制,可以為電力部門在電廠選址、污染物排放點源位置選擇等問題上提供輔助決策信息,并協助環保部門對大氣污染進行更加科學的治理。
由于系統所需數據的數據量十分巨大,到達千萬數量級,所以導致系統進行業務處理時可能會出現等待時間較長的現象,使軟件的整體效率和用戶體驗打折扣。為解決此問題,可從以下兩方面進行系統優化升級:
優化系統內部結構,如改進算法,優化數據組織結構等;
引入云處理技術,將煩雜耗時的部分置于云內,利用云端強大的處理能力,縮短系統總體的運行時間。
參考文獻:
[1]徐藝斐.鄭州市灰霾與PM2.5污染水平及火電排放源對大氣環境的影響分析[D]鄭州大學,2012.
[2]劉瑞兵.GIS和SURFER軟件在城市大氣污染空間分析中的應用——以沂南縣城區SO2為例[D].青島大學,2007:1-3.
[3] 劉樹濤. Native XML數據庫存儲研究[D].中國石油大學,2008.
[4] SQL Server 2005及以上版本中XML操作函數詳解[EB∕OL]
http://www.poorren.com/sql-server-2005-xml/comment-page-1/
[5]蔡明.基于多層架構的數據庫系統開發中設計模式的應用[J].電腦知識與技術,2010年24期:6669-6670.
[6] 胡頡. 我國PM2.5的污染現狀及監測[J],城市建設理論研究(電子版),2013,(24)
[7] 白世彪,王建,常直楊. Surfer 10地學計算機制圖[M].北京:科學出版社,2012
[8] 劉燁焜. 基于VB與Surfer氣象要素等值線圖形繪制[J],現代農業,2014,(3):93—94