劉夢牽 曾微波 張貝爾 孫京祿
摘 要:自主體功能區(qū)戰(zhàn)略實施以來,指標計算體系總是顯得過于龐大。為了更準確、合理、快速的對主體功能區(qū)評價指標進行分析計算,本文針對功能區(qū)評價指標體系的特點,提出將所有指標分類后從數(shù)據(jù)源獲取、配置計算方法、計算過程流程化等方面進行規(guī)范化計算的方法。該方法在運算思維的條理性、計算的簡便性、后期修改的靈活性方面有大幅提升。這種基于GIS的主體功能區(qū)評價指標計算方法可以極大的簡化系統(tǒng)程序,同時對于加強程序的獨立性以及計算功能的簡便靈活方面具有較強的意義和較高的應用價值。
關鍵詞:GIS;主體功能區(qū);指標計算
中圖分類號:TU982 文獻標識碼:A 文章編號:1671-2064(2018)22-0036-02
1 數(shù)據(jù)來源與處理
1.1 數(shù)據(jù)內容
要實現(xiàn)主體功能區(qū)域從劃分、規(guī)劃到監(jiān)測、調控的實施,需要相對完備的、連續(xù)的、精度相對較高的數(shù)據(jù)系統(tǒng)支撐。其中,數(shù)據(jù)類型包含多種,如:矢量數(shù)據(jù)、影像數(shù)據(jù)、統(tǒng)計數(shù)據(jù)、文本數(shù)據(jù)與成果數(shù)據(jù)。
(1)矢量數(shù)據(jù):主要為境界數(shù)據(jù)、土地利用數(shù)據(jù)、交通數(shù)據(jù)等基礎地理數(shù)據(jù)、氣象數(shù)據(jù)、大氣與水環(huán)境數(shù)據(jù)以及森林空間分布數(shù)據(jù)等資源環(huán)境矢量數(shù)據(jù)。氣象數(shù)據(jù)選取的是安徽省各氣象站點數(shù)據(jù),包括日數(shù)據(jù)、月平均和年平均數(shù)據(jù),數(shù)據(jù)逐月更新,通過空間插值方法可獲取到用于土壤侵蝕、水資源量等指標計算的數(shù)據(jù)。土壤圖為基礎底圖,數(shù)據(jù)來源自安徽省農委的土壤二次普查數(shù)據(jù),或分縣土種志,需要人工數(shù)字化。森林數(shù)據(jù)包括森林統(tǒng)計和森林分布,其中森林統(tǒng)計數(shù)據(jù)包括分縣的面積、覆蓋率、蓄積量等,以上數(shù)據(jù)均來源自安徽省森林普查。
(2)影像數(shù)據(jù):包括低分、中分、高分三種,用于土地利用、自然地理等數(shù)據(jù)的修正與更新、災害與突發(fā)情況應急監(jiān)測與監(jiān)督、高分辨率制圖等。
(3)統(tǒng)計數(shù)據(jù):主要包括人口、經(jīng)濟、產業(yè)等經(jīng)濟社會數(shù)據(jù)以及土地資源調查數(shù)據(jù)、基本農田數(shù)據(jù)、森林統(tǒng)計數(shù)據(jù)等資源環(huán)境統(tǒng)計數(shù)據(jù)?;诰纫螅y(tǒng)計數(shù)據(jù)要落實到縣域行政單元。故數(shù)據(jù)為分縣數(shù)據(jù),年度更新。其中經(jīng)濟社會數(shù)據(jù)來源為統(tǒng)計年鑒。土地資源調查數(shù)據(jù)、基本農田數(shù)據(jù)為統(tǒng)計數(shù)據(jù),統(tǒng)計每年分縣各類土地利用面積和基本農田面積,數(shù)據(jù)來源為國土局年度統(tǒng)計數(shù)據(jù)(現(xiàn)有合肥市部分數(shù)據(jù)),未來考慮補充永久基本農田分布圖,作為基本農田紅線用于決策支持。
(4)文本數(shù)據(jù):主要包括規(guī)劃文本、專題研究報告、主體功能區(qū)政策文本等。
(5)成果數(shù)據(jù):主要包括分縣監(jiān)測數(shù)據(jù)、分縣單項評價數(shù)據(jù)、分縣綜合評價數(shù)據(jù)、預警結果數(shù)據(jù)以及自定義的其他成果數(shù)據(jù)。
1.2 數(shù)據(jù)處理
對于統(tǒng)計數(shù)據(jù)的處理,僅需按照數(shù)據(jù)種類設計出數(shù)據(jù)表的不同結構,基本結構包括年份,行政區(qū)代碼,行政區(qū)名稱以及對應指標的數(shù)據(jù),再將統(tǒng)計數(shù)據(jù)錄入對應數(shù)據(jù)庫,以實現(xiàn)提取數(shù)據(jù)時可以準確定位到每張表每個行政區(qū)的每一年。
對于矢量和影像數(shù)據(jù)的處理,利用GIS軟件中的配準工具,對行政區(qū)劃、地形地貌、土地利用等空間地圖數(shù)據(jù)進行有效配準,根據(jù)統(tǒng)一的空間參考、投影方式和橢球體整合數(shù)據(jù),按照數(shù)據(jù)的層次存入FileGeodatabase。空間數(shù)據(jù)中的柵格數(shù)據(jù)根據(jù)后續(xù)的評價方法要求,使用柵格化、重采樣、重分類、領域分析等工具,將不同的柵格數(shù)據(jù)進行轉換、分類、統(tǒng)計處理。
最后將該地理數(shù)據(jù)庫和統(tǒng)計數(shù)據(jù)的數(shù)據(jù)庫進行關聯(lián)形成整個系統(tǒng)的最終數(shù)據(jù)庫。
2 指標計算
通過將計算方法與指標相分離,從而加強系統(tǒng)的靈活性。屆時需要綜合考慮不同指標計算涉及的數(shù)據(jù)源、計算公式及指標之間的相互依賴關系,因此,通過配置文件進行指標計算數(shù)據(jù)源和計算公式的靈活配置,再利用C#的動態(tài)編譯技術,創(chuàng)建配置文件,在該文件里配置指標計算所需相關內容,如該指標的名稱、數(shù)值單位、計算公式等。
2.1 數(shù)據(jù)源配置與直接獲取數(shù)據(jù)
針對只需提取結果數(shù)據(jù)的簡單指標,若該項數(shù)據(jù)已錄入Access數(shù)據(jù)庫,只要在配置文件里配置好取出數(shù)據(jù)的SQL索引語句,運行代碼即可自行提取數(shù)據(jù)并將結果輸出顯示在系統(tǒng)內。
因此類簡單指標用SQL語句將數(shù)值提取出來即可,無需計算,且提取數(shù)據(jù)的SQL語句框架大致相同,所以在配置文件里,就可以在這些指標后配置相同框架的SQL語句如:"SELECT {0} FROM {1} WHERE NF='{2}' AND XZQDM='{3}'",只要在該指標下同時配置出數(shù)據(jù)所存在的表名、字段名,就可從表里選取某年某個行政區(qū)該指標的值。此類指標的配置情況如下:
其中aliasname是指標的中文名,formula為計算公式,因該指標是直接提取所以沒有計算公式,function即為SQL語句,item name為存有此值的數(shù)據(jù)表的表名,field name為數(shù)據(jù)表里該指標的字段名。而在代碼里對應的邏輯過程就是:讀取配置文件,遍歷尋找到指定指標的節(jié)點,到function節(jié)點時,如果function里包含“SELECT”,必含有SQL語句,就可繼續(xù)向下讀取子節(jié)點里的數(shù)值。
根據(jù)表名,繼續(xù)獲取字段名,然后根據(jù)SQL語句將獲取的字段名,表名,年份,行政區(qū)代碼對應放進框架的{0}、{1}、{2}、{3}中,一條完整的SQL語句編寫完成,而此時,結果值就可從數(shù)據(jù)庫里取出并利用系統(tǒng)的輸出功能得以顯示。
2.2 利用公式的計算方法配置
(1)公式動態(tài)編譯。大多指標計算后得出的值可以作為最終結果直接存入結果數(shù)據(jù)庫的數(shù)據(jù)表,而有些指標計算后只是得出數(shù)值并不能作為最終結果,需要根據(jù)文件中描述的規(guī)則分出值域得出最終結果,例如水源涵養(yǎng)功能指數(shù)的要求是將值分為小于1,大于1小于12.5,大于12.5的三個值域,分別對應水源涵養(yǎng)功能指數(shù)高、中、低三個層級,針對不同指標的計算公式不同,得出結果的要求也不盡相同,此時為了避免將混亂的公式計算過程放入系統(tǒng)主代碼影響邏輯,就可以利用C#動態(tài)編譯的方法,創(chuàng)建一個只用于存放計算公式函數(shù)的對象,將每一個指標的相關計算函數(shù)寫入,賦上不同的函數(shù)名以便調用。在系統(tǒng)運行時,選中不同的指標,就可以調用不同的函數(shù),代入?yún)?shù)運行公式計算。
(2)配置方法。對于需要配置計算公式的指標,分兩種情況:一種是從某個數(shù)據(jù)表中獲取計算所需各項參數(shù)然后代入公式計算,另外一種是某個指標的計算依賴于另外一個指標的計算結果,即獲取另一個指標的計算結果作為此指標計算公式中的參數(shù)。
此類指標的計算都有固定的計算公式,因此編寫該類指標的配置文件時,就需要配置出公式,同時不再需要SQL語句,而是通過不同的函數(shù)名找到對應的函數(shù)執(zhí)行公式進行計算。
以指標“土地資源利用效率”為例,Le代表該指標,GDP和L為計算所需參數(shù),而function后的GetEfficiency就是執(zhí)行計算公式時的函數(shù)名,在系統(tǒng)里通過這個函數(shù)名可以查找到函數(shù)的具體內容。
基于以上配置方法,若所有參數(shù)都是數(shù)據(jù)庫直接獲取的,就可在編歷配置文件時獲取存有參數(shù)的數(shù)據(jù)表名和參數(shù)的字段名,放入框架SQL語句,拼好的SQL語句可直接提取出參數(shù)值放入內部存儲空間,即可根據(jù)函數(shù)名找到對應函數(shù)傳入?yún)?shù)進行計算。若計算參數(shù)是依賴于另一個指標的計算結果,那么在配置文件里并無差異,但因所有計算結果的值都統(tǒng)一存入結果數(shù)據(jù)庫的表里,所以存有該類參數(shù)的表,表名一致。在代碼里僅需判斷遍歷到的表名是否為此表名:如果是,就說明計算參數(shù)為某個指標的結果值。此時的SQL語句框架即為"SELECT JSJG FROM B_SJ_ZBJSJG WHERE ZBMC='{0}' AND NF='{1}' AND XZQDM='{2}'",將參數(shù)名,年份,行政區(qū)代碼對應放入即可獲取該類指標的參數(shù)。
2.3 基于ArcGISModelbuilder的流程化計算
隨著GIS技術的改進, 空間分析由原來的圖形與屬性分離逐步轉變?yōu)榭臻g數(shù)據(jù)與屬性數(shù)據(jù)的一體化。而在評價指標中,有一類指標的計算過程非常復雜,只靠查找統(tǒng)計年鑒等相關資料無法獲取,它的計算正是需要通過對矢量和影像數(shù)據(jù)的屬性及圖形進行空間操作,才能得出較為準確的指標值。例如土地資源壓力指數(shù)、土地建設開發(fā)適宜性等指標,就需要先將多種矢量數(shù)據(jù)柵格化重分類之后再通過柵格計算器將這些數(shù)據(jù)集成得到強限制因子和較強限制因子。將兩個因子相乘得到土地開發(fā)適宜性評價。
如下為利用ArcGIS modelbuilder工具對強限制因子進行建模的過程:
通過對基本農田、濕地、生態(tài)保護紅線和水工建筑的矢量數(shù)據(jù)進行柵格化處理,將得到的柵格數(shù)據(jù)進行重分類。其中,濕地_重分類與生態(tài)保護紅線_重分類結果帶入柵格計算器后篩選出生態(tài)保護紅線_柵格計算結果;最終將基本農田_重分類數(shù)據(jù)與濕地_重分類數(shù)據(jù)與生態(tài)保護紅線_柵格計算結果帶入柵格計算器后得出強限制因子。
將以上建模過程運行得出處理結果并檢查無誤后,即可按此模型過程在代碼中調用GP工具編寫程序,點擊每一步的功能按鈕即可將復雜的操作在后臺執(zhí)行完成,最后順利得出指標值。
3 結語
本文以主體功能區(qū)評價指標計算方法為主題進行研究,提出將龐大指標體系中的所有指標進行分類從而簡化計算過程和計算難度。將所有需要統(tǒng)計數(shù)據(jù)的指標均配置在一個配置文件中,利用C#動態(tài)編譯法將相關函數(shù)存入新建對象,從而可以在需要修改時進行具有針對性的細微調整。對于復雜的流程化操作指標,也可利用輔助工具進行建模,最后與代碼關聯(lián)一次性完成操作和計算,大大加快了計算速度的同時也使邏輯更加清晰。
因目前利用統(tǒng)計數(shù)據(jù)簡單計算的指標較多,而流程化計算的指標極少,所以在對矢量數(shù)據(jù)進行操作時步驟會比較復雜,且會出現(xiàn)前一步操作失誤導致后續(xù)結果不準確的情況,因各地矢量數(shù)據(jù)不完整,沒能進行多次實驗來加強操作準確性,日后將深入探討搜尋數(shù)據(jù)以完善程序的完整性。
參考文獻
[1]楊瑞霞,張莉,閆麗潔,等.省級主體功能區(qū)規(guī)劃支持系統(tǒng)研究地域研究與開發(fā)[J].地域研究與開發(fā),2009,28(1):22-26.
[2]李雯燕,米文寶.地域主體功能區(qū)規(guī)劃研究綜述與分析[J].經(jīng)濟地理,2008,28(3):357-361.
[3]王傳勝,朱珊珊,樊杰,劉慧.主體功能區(qū)規(guī)劃監(jiān)管與評估的指標及其數(shù)據(jù)需求[J].地理科學進展,2012,31(12):1678-1684.