杜鵬程
在Excel VBA中實(shí)現(xiàn)水環(huán)境質(zhì)量評(píng)價(jià)
杜鵬程
在環(huán)境質(zhì)量評(píng)價(jià)研究中,特別是水環(huán)境質(zhì)量評(píng)價(jià)時(shí),需要對(duì)地表水、地下水、湖泊等大量的監(jiān)測(cè)數(shù)據(jù)進(jìn)行水質(zhì)評(píng)價(jià),迄今還沒(méi)有一個(gè)通用的具有可比性的水質(zhì)評(píng)價(jià)方法。不同部門(mén)進(jìn)行水質(zhì)評(píng)價(jià)時(shí),選用數(shù)學(xué)模型的任意性很強(qiáng),常常不能反映本地的污染狀態(tài)。2011年3月9日,環(huán)境保護(hù)部發(fā)布了《關(guān)于印發(fā)〈地表水環(huán)境質(zhì)量評(píng)價(jià)辦法(試行)〉》的通知》(環(huán)辦〔2011〕2號(hào)),統(tǒng)一了地表水評(píng)價(jià)方法,而對(duì)于水質(zhì)評(píng)價(jià)采用何種計(jì)算軟件沒(méi)有作出規(guī)定,現(xiàn)行監(jiān)測(cè)數(shù)據(jù)的保存和水質(zhì)的評(píng)價(jià),仍沿襲以往人工運(yùn)用Excel表格,計(jì)算時(shí)經(jīng)常需要用到單元格填充功能,常用插入函數(shù)與填充柄來(lái)完成。這種重復(fù)性的填充和插入函數(shù)容易出現(xiàn)錯(cuò)誤,工作效率及準(zhǔn)確性差,這就給評(píng)價(jià)工作帶來(lái)了困難,甚至無(wú)法計(jì)算出正確的評(píng)價(jià)結(jié)果。因此,如何實(shí)現(xiàn)水質(zhì)環(huán)境質(zhì)量評(píng)價(jià)的自動(dòng)化、功能化將評(píng)價(jià)人員從單調(diào)耗時(shí)的工作中解放出來(lái),是一個(gè)急待解決的問(wèn)題。
本文應(yīng)用VBA語(yǔ)言編寫(xiě)嵌入式模塊,開(kāi)發(fā)了水質(zhì)監(jiān)測(cè)數(shù)據(jù)進(jìn)行自動(dòng)化的評(píng)價(jià)方法,通過(guò)實(shí)際應(yīng)用可以看出這種方法不僅對(duì)地表水?dāng)?shù)據(jù)評(píng)價(jià)的效率、準(zhǔn)確度高,而且可移植到湖泊、地下水、海水等水質(zhì)評(píng)價(jià)中,具有較強(qiáng)的通用性和擴(kuò)展性。
河流斷面水質(zhì)類(lèi)別評(píng)價(jià)采用單因子評(píng)價(jià)法,即根據(jù)評(píng)價(jià)時(shí)段內(nèi)該斷面參評(píng)的指標(biāo)中類(lèi)別最高的一項(xiàng)來(lái)確定。描述斷面的水質(zhì)類(lèi)別時(shí),使用“符合”或“劣于”等詞語(yǔ)。斷面水質(zhì)類(lèi)別與水質(zhì)定性評(píng)價(jià)分級(jí)的對(duì)應(yīng)關(guān)系見(jiàn)表1。
表1 斷面水質(zhì)評(píng)價(jià)表
因此,計(jì)算中首先需要對(duì)每一個(gè)斷面的參評(píng)指標(biāo)按照水質(zhì)標(biāo)準(zhǔn)計(jì)算出各參評(píng)指標(biāo)的水質(zhì)類(lèi)別,之后再按參評(píng)指標(biāo)的水質(zhì)類(lèi)別的最高一項(xiàng)求出斷面的水質(zhì)類(lèi)別,從而判斷出水質(zhì)狀況。
評(píng)價(jià)指標(biāo)的水質(zhì)類(lèi)別運(yùn)用了計(jì)算機(jī)語(yǔ)言最基本循環(huán)選擇語(yǔ)法,對(duì)每一數(shù)據(jù)值,首先找到其所屬標(biāo)準(zhǔn)類(lèi)別,然后根據(jù)標(biāo)準(zhǔn)值從優(yōu)往劣比較,看在哪一區(qū)間,從而判斷出其水質(zhì)類(lèi)別。
1.Excel水質(zhì)評(píng)價(jià)數(shù)據(jù)表設(shè)計(jì)
應(yīng)用計(jì)算機(jī)進(jìn)行科學(xué)計(jì)算,通常需要建立數(shù)據(jù)輸入和結(jié)果輸出兩個(gè)數(shù)據(jù)表,就水質(zhì)評(píng)價(jià)而言,為程序設(shè)計(jì)更優(yōu)化,還需要增加一個(gè)存放水質(zhì)評(píng)價(jià)標(biāo)準(zhǔn)的數(shù)據(jù)表以便程序調(diào)用和標(biāo)準(zhǔn)的增加及修改。程序設(shè)計(jì)之前,首先新建一個(gè)Excel,并在Excel中共建4個(gè)數(shù)據(jù)表,分別取名為“數(shù)據(jù)”、“數(shù)據(jù)”處理后、“結(jié)果”、“標(biāo)準(zhǔn)”,最后將該工作簿保存一個(gè)名為“水質(zhì)評(píng)價(jià)”的Excel文件。
2.程序設(shè)計(jì)
為了簡(jiǎn)化手工處理過(guò)程,筆者使用應(yīng)用程序開(kāi)發(fā)語(yǔ)言VBA在Excel下編寫(xiě)宏程序,自定義Excel工具欄,菜單欄和界面,簡(jiǎn)化模板的使用,使用戶(hù)在運(yùn)用水質(zhì)評(píng)價(jià)方法中,依次點(diǎn)擊“數(shù)據(jù)處理”和“水質(zhì)計(jì)算”按鈕,即可得到水質(zhì)評(píng)價(jià)結(jié)果?;谏鲜鏊|(zhì)評(píng)價(jià)方法和數(shù)據(jù)表設(shè)計(jì)后,用VBA實(shí)現(xiàn)水質(zhì)評(píng)價(jià)的程序代碼如圖1。
圖1 水質(zhì)評(píng)價(jià)方法程序代碼圖
以某河流不同斷面水質(zhì)監(jiān)測(cè)結(jié)果為例,從中篩選出溶解氧、高錳酸鹽指數(shù)、化學(xué)需氧量、五日生化需氧量、氨氮、總磷等6項(xiàng)作為河流水質(zhì)評(píng)價(jià)指標(biāo)。應(yīng)用程序進(jìn)行水質(zhì)評(píng)價(jià)時(shí),首先將原始數(shù)據(jù)輸入到“數(shù)據(jù)”表中(如圖2),然后將評(píng)價(jià)標(biāo)準(zhǔn)數(shù)據(jù)輸入到“標(biāo)準(zhǔn)”表中(如圖3),最后直接點(diǎn)擊“水質(zhì)計(jì)算”按鈕,便得到用戶(hù)所需要的結(jié)果(見(jiàn)圖4),即計(jì)算出了斷面各指標(biāo)的水質(zhì)類(lèi)別、斷面水質(zhì)等級(jí),對(duì)照表1可以得出斷面水質(zhì)狀況。
圖2 水質(zhì)數(shù)據(jù)輸入清單圖
圖3 水質(zhì)標(biāo)準(zhǔn)輸入清單圖
圖4 水質(zhì)評(píng)價(jià)結(jié)果輸出清單圖
(1)水質(zhì)監(jiān)測(cè)數(shù)據(jù)通常采用Excel表格進(jìn)行存儲(chǔ)、計(jì)算及分析,因此應(yīng)用Excel VBA平臺(tái)進(jìn)行水質(zhì)評(píng)價(jià)無(wú)需借助其他開(kāi)發(fā)軟件,協(xié)同性較好,開(kāi)發(fā)成本低,簡(jiǎn)單易行,編程工作量較小。
(2)應(yīng)用ExcelVBA程序?qū)λ|(zhì)數(shù)據(jù)進(jìn)行評(píng)價(jià),操作簡(jiǎn)單,運(yùn)算快速。實(shí)例的12組水質(zhì)數(shù)據(jù),只需單擊“水質(zhì)計(jì)算”按鍵,立即就能得到準(zhǔn)確的評(píng)價(jià)結(jié)果,數(shù)據(jù)處理速度大大加快,工作效率提高顯著。
(3)應(yīng)用Excel VBA對(duì)河流型水質(zhì)評(píng)價(jià)靈活應(yīng)用性有較大的提高。由于程序代碼具有可移植的特性,因此針對(duì)不同的地表水類(lèi)型的水質(zhì)評(píng)價(jià)問(wèn)題,只要對(duì)Excel VBA程序做少量的修改即可應(yīng)用于地下水、湖泊、海水類(lèi)型水質(zhì)評(píng)價(jià)■
(作者單位:淮河流域水資源保護(hù)局淮河水資源保護(hù)科學(xué)研究所 233001)