摘要:以重慶市涪陵區第二次土地調查結果為源數據,根據《重慶市鄉(鎮)級土地利用總體規劃數據庫標準》要求,利用ArcGIS中的圖解建模工具和C#語言編譯的程序,對鄉級土地利用總體規劃數據庫的入庫流程及建立鄉級土地利用規劃數據庫的幾個關鍵技術(提取現狀數據入庫、規劃要素變更技術、規劃表格的輸出、數據的拼接問題)進行了探討,達到上輪規劃無法實現的“圖數表一致”的目標,提高了建庫效率和精度,為下一輪土地利用總體規劃修編的數據庫建設奠定了基礎。
關鍵詞:ArcGIS;入庫流程;土地利用總體規劃;數據庫
中圖分類號:P285.2+3;P273 文獻標識碼:A 文章編號:0439-8114(2013)03-0691-05
中國的土地利用規劃主要有國家級、省級、市級、縣級和鄉級5層不同行政級別的土地利用規劃體系。鄉級土地利用總體規劃是五級規劃體系中最基層、最具有操作性的規劃,也是用地審批等日常土地管理的直接依據。因此,如何建立好鄉級土地利用總體規劃數據庫是目前急需解決的問題。
關于土地規劃數據庫建設的研究成果很多,如何宗宜等[1]通過Arc/Info進行矢量數據的轉換、投影變換來達到數據庫多數據轉換,Peerbocus等[2]對時態地籍數據庫進行了研究,保證數據庫的適時更新,劉大杰等[3]對應用最小二乘法平差處理規則圖形數字化數據的方法進行了研究,劉緯等[4]分析了基于MapGIS建設土地利用數據庫的方法,對其中的數據采集、拓撲建立、數據入庫等技術作了探討。此外,國土資源部有土地利用規劃數據庫標準,且各省(市、區)也有數據庫標準規程,如重慶市的《重慶市鄉(鎮)級土地利用總體規劃數據庫標準》,這些研究和規程為數據庫建設奠定了基礎。但是在各平臺數據之間的轉換, 數據庫的更新和維護及數據庫的空間要素、屬性要素和表格要素之間的聯動性存在缺陷,針對這些問題,擬基于ArcGIS對建庫流程和幾個關鍵技術進行探討和分析。
1 建庫平臺選擇
目前,國內通過國土資源部審查的鄉級土地利用總體規劃數據庫的建庫專用軟件主要有蒼穹土地利用規劃建庫工具軟件V1.0及平臺軟件MapGIS、ArcGIS。蒼穹土地利用規劃建庫工具軟件V1.0的主要優點有數據采集方式多樣,支持與VCT、ArcGIS、MapGIS、SuperMap交換;系統功能簡捷;圖、文、表、庫四者一體化的管理方式;遵循相關行業標準,系統具有高度兼容性和規范化;嚴格的指標控制與規劃實施管理。而主要的缺點有成本較高;操作不靈活,建庫者無法得到過程數據,當最終結果出現問題時無法進行手動修改;數據量較大時處理速度慢,且容易出錯。MapGIS建庫的主要優勢是全中文的操作系統、高效海量空間數據的存儲與索引、大尺度多維動態空間信息數據庫、三維實體建模和分析等,它的缺點是操作界面比較繁瑣,系統管理功能較弱,缺乏專用數據庫的支持[5]。相對于平臺軟件來說,蒼穹土地利用規劃建庫工具軟件V1.0是針對全國鄉級土地利用總體規劃建庫開發的,而重慶市數據庫標準與全國數據庫標準存在差異,例如重慶市匯總數據庫要求提交TDZZZDQY這個圖層,蒼穹軟件最終結果不會輸出此圖層;重慶市標準要求的各個空間數據的字段與全國標準不同;重慶市匯交成果時需提交社界線等,蒼穹軟件是無法解決這些問題的。而ArcGIS具有空間幾何圖形與屬性數據同步編輯、管理以及查詢的功能,支持不同格式的數據和對海量數據的有效管理,具有便捷的二次開發能力,提供一體化的地圖繪制、顯示、編輯和輸出的集成環境,方便的屬性數據管理、圖解建模與模塊開發功能,ArcGIS可以建立自身支持的數據類型的元數據,也可以建立用戶定義數據的元數據[6],為鄉級土地利用數據庫提供快捷的元數據查詢環境。綜上對比,優先選擇ArcGIS作為建庫的軟件平臺。
2 建庫流程探討
數據入庫流程是規劃數據庫建立的核心問題,科學合理的建庫流程能提高建庫效率,降低建庫成本,并能使其易于查詢、更新和維護。傳統的建庫流程可簡單概括為“規劃編制—制圖—數據整理檢查—建庫—成果輸出”,其存在的主要問題是空間布局上無法精確落實上級下達的指標,數據庫中的空間數據易出現碎小圖斑和拓撲錯誤,圖斑凈面積不能精確統計。依據ArcGIS的功能特點和《重慶市鄉(鎮)級土地利用總體規劃數據庫標準》,結合土地利用規劃數據庫建庫經驗,對鄉級土地利用規劃數據庫建庫流程進行了探討,得出的建庫流程(圖1)。此流程具有靈活、操作性強、便捷的特點,能解決傳統數據庫建設中存在的基礎數據質量參差不齊、形式不規范、坐標體系不正確、空間圖形數據的拓撲錯誤、確實有效的屬性信息及元數據建設相對滯后等問題。
3 關鍵技術探討
3.1 提取現狀數據入庫
根據縣鄉兩級土地利用規劃規程對數據庫成果的要求,建立土地利用規劃數據庫必須以全國第二次土地調查(以下簡稱“二調”)的現狀數據庫為源數據,而全國大多數地區的二調成果都是基于MapGIS平臺形成的。對于用ArcGIS建立鄉級土地利用總體規劃數據庫的建庫者,面臨的首要問題是把MapGIS格式文件轉換成ArcGIS的通用格式,由于轉換后數據存在拓撲錯誤和面積誤差等問題,且拓撲錯誤類型復雜、量大、細碎、重復(圖2),修改起來十分繁復和困難,所以采用ArcGIS提供的圖解建模工具Model Builder (模型生成器),將輸入數據、輸出數據、空間處理工具以及它們之間的連接關系有機組合在一起,將復雜的數據處理過程封裝和集成在模型中,使數據處理變得簡單化和高效化[7]。構建的模型主要通過Select Layer by Attribute從全區地類圖斑數據中提取各鄉鎮的基期地類圖斑,然后通過Polygon to Line、Feature to Point、Feature to Polygon等工具重新成點成面,從而達到修改基期地類圖斑拓撲錯誤的目的,且在模塊中加入用Python語言操作ArcObject組件對象編寫自定義的CopyFeature工具,實現基期數據入庫的自動化。數據庫中的各種點、線、面的數據都可以采用相同的方法從全區提取并入庫。其計算模型圖如圖3和圖4。
3.2 規劃要素的變更技術
規劃要素變更的問題是鄉級規劃數據庫的建庫者常會遇到的,規劃要素的變更通常都會涉及到圖斑的切割、合并和相關土地利用面積的計算,傳統的修改方法是將變更的規劃要素和前期的規劃要素重新同基期地類圖斑做疊加,核對指標,其工作量大且浪費時間和人力。因此,基于ArcGIS的Model Builder(模型生成器)生成Modify TDGHDL模型,將前期的土地規劃地類圖斑(TDGHDL)和需變更的規劃要素做疊加,并用面積分攤法和空間位置關聯法(Spatial Jion)重新計算涉及到切割、合并的圖斑面積和規劃地類面積等相關面積,實現規劃要素變更的自動化。其計算公式和計算結果(圖5)如下:
圖斑面積(新)=圖斑面積(原)/Shape_Area(原)× Shape_Area(新);
線狀地物面積=長度×寬度×扣除比例;
田坎面積=[圖斑面積(新)-線狀地物面積-零星地物面積]×田坎系數;
圖斑凈面積=圖斑面積(新)-田坎面積-線狀地物面積-零星地物面積。
經驗證,此種方法對土地相關面積的計算很準確,該變更圖斑的相關面積為:
圖斑面積(B)=圖斑面積(A)/Shape_Area(A)×Shape_Area(B)=15 143.60 m2
線狀地物面積=313.5×4.3×0.5+4.13×1.1×0.5=676.29 m2
田坎面積=[15 143.60-676.29-0]×0=0 m2
圖斑凈面積=15 143.60-0-676.29-0=14 467.31 m2。
3.3 規劃表格的輸出
為解決 “圖數表一致”的問題,《重慶市鄉(鎮)級土地利用總體規劃數據庫標準》要求,在數據庫成果匯總數據中需要提交由規劃數據庫得出的8個表格(土地利用結構調整表,耕地保有量、基本農田情況表,新增建設用地指標控制表,土地整治規劃表,重點建設項目用地規劃表,土地用途分區面積統計表,規劃期間各類用地平衡表和基本農田調整分析表),便于核查數據庫中的數據和分解到鄉級的指標是否一致、規劃前和規劃后的數據是否一致等。針對這一問題,通過OLEDB連接數據庫,遍歷輸入數據庫中的表格,讀取配置表中地類名稱和地類代碼的對應關系,用SQL語言查詢單個要素的各項指標加入到數組中,對于不同要素中數據通過疊加查詢進行累加,并將結果以記錄的形式插入到數據表中,實現表格輸出的自動化,有效避免了人工操作中出現的錯誤和誤差,大大提高建庫工作的效率和精度。
3.4 數據的拼接問題
在建立鄉級土地利用總體規劃數據庫時,考慮到數據的龐大性和鄉鎮的社會經濟發展,大部分建庫者采用分鄉鎮建立數據庫,但是上報成果時需提交區(縣)匯總數據庫,那么如何快速高效地實現數據的拼接也是個關鍵問題。這里采用C#語言編譯的程序,基于ArcEngine的Geoprocessor類,調用ArcGIS的append工具條,循環各鄉鎮mdb數據庫,將要素集中數據按類別拼接到目標數據層中,實現數據的拼接,其簡略算法如下:
Geoprocessor geoprocessor = new Geoprocessor(); //新建geoprocessor類
Append process = new Append();
geoprocessor.OverwriteOutput = true;//設置文件可覆蓋
for (int i = 0; i < this.chklstLyr.Items.Count; i++)//實現數據的逐步拼接
{if (this.chklstLyr.GetItemChecked(i))//
檢查數據有效性
{for (int j = 1; j < (this.lstFileNames.Count - 1); j++)
{object obj2 = process.inputs;
process.inputs = string.Concat(new object[]
{obj2, this.lstFileNames[j].FullName, @\"\DataSet\\",
geoprocessor.Execute(process, 1);
process.inputs = \"\"; }}
4 小結
基于ArcGIS軟件的圖解建模工具和C#語言編譯的程序進行的數據庫建設的探討,為土地利用規劃數據庫的建立節省了大量的人力和時間,具有非常靈活的操作性,后期結果數據也有較強的修改性,直接實現了土地利用規劃圖件數據與規劃數據庫數據的統一。通過土地利用規劃數據庫直接導出規劃數據表格與規劃圖件,便于土地利用規劃大綱文本直接運用數據庫中的規劃數據,從而實現圖數表數據的高度一致。但是在基于高級語言編寫擴展組件人性化、多格式數據源轉換與共享、系統運行穩定性等關鍵技術研究方面還存在較大局限,需加強研究與改進。
參考文獻:
[1] 何宗宜,譚 芬,魏秀琴.地圖矢量數據處理研究[J]. 測繪科學,2006,31(6):74-76.
[2] PEERBOCUS A, JOMIER G. The management of the cadastral evolution using documented cadastral plans[J]. Computers, Environment and Urban Systems,2004,28(6):487-509.
[3] 劉大杰,劉 春.GIS空間數據不確定性與質量控制的研究現狀[J].測繪工程,2001,10(1):6-10.
[4] 劉 緯,嚴 琳,張 莉,等.縣級土地利用數據庫建設[J].測繪與空間地理信息,2005,28(6):72-74,84.
[5] 韓桂梅.土地利用現狀變更調查方法研究[D]. 山西太谷:山西農業大學,2005.
[6] 黨安榮,賈海峰,易善楨,等.ArcGIS 8 Desktop地理信息系統應用指南[M].北京:清華大學出版社,2005.
[7] 田永中,徐永進,黎 明,等.地理信息系統基礎與實驗教程[M].北京:科學出版社,2010.