胡家明
(廣東省地質(zhì)測繪院,廣東 廣州 510800)
隨著我國社會經(jīng)濟的穩(wěn)固發(fā)展及鄉(xiāng)村振興戰(zhàn)略的逐步施行,農(nóng)村設施農(nóng)用地管理的重要性愈發(fā)突顯[1]。為此,自然資源部印發(fā)了《自然資源部 農(nóng)業(yè)農(nóng)村部關于設施農(nóng)業(yè)用地管理有關問題的通知》(自然資規(guī)[2019]4 號),并研發(fā)了“設施農(nóng)用地監(jiān)管系統(tǒng)”,要求設施農(nóng)用地上圖入庫,納入自然資源“一張圖”監(jiān)管。設施農(nóng)用地上圖入庫監(jiān)管是掌握和分析設施農(nóng)用地情況的必要手段,是加強設施農(nóng)用地監(jiān)管、保障用地規(guī)范有序和設施農(nóng)用地健康發(fā)展的有力支撐。由于時間緊,任務重,而傳統(tǒng)的圖形編輯方法耗費較多的人員和時間,研究利用Model Builder 建模,可實現(xiàn)從DWG 格式的宗地圖到監(jiān)管系統(tǒng)要求的TXT 格式拐點坐標流程化批量處理,減輕人工編輯工作量,減少錯誤,提高工作效率。
模型構建器Model Builder 是ArcGIS 提供的構造地理處理工作流和腳本的圖形化模型工具[2],能夠?qū)崿F(xiàn)數(shù)據(jù)處理的自動化、流程化,將復雜的流程簡化為一個工具。在模型中,可以按照一定的次序?qū)⑺璧墓ぞ吆蛿?shù)據(jù)連接起來構成一個工作流,其基本單元為“輸入數(shù)據(jù)→工具或腳本→輸出數(shù)據(jù)”。ArcGIS 支持的數(shù)據(jù)類型均可作為輸入數(shù)據(jù)或輸出數(shù)據(jù),比如要素類、柵格數(shù)據(jù)集等。模型中的工具可以是ArcToolbox中的工具和腳本,也可以是由模型或腳本文件生成的工具[2]。同時,創(chuàng)建的模型可以共享,直接生成Python、JScript 和VB-Script 等形式的腳本語言[3],擴展了ArcGIS 的功能。
在取得用地階段,縣級自然資源主管部門收到鄉(xiāng)鎮(zhèn)政府匯交的信息后要及時進行核驗,在10 個工作日內(nèi),將項目名稱、位置、用途、類型、生產(chǎn)期限等項目概況,以及項目用地總面積和地塊坐標、使用農(nóng)用地和耕地面積、用地破壞耕地耕作層面積和地塊坐標等用地情況,在監(jiān)管系統(tǒng)上圖入庫。監(jiān)管系統(tǒng)上圖入庫主要分為登錄設施農(nóng)業(yè)用地監(jiān)管系統(tǒng)平臺錄入項目概況內(nèi)的基本信息、錄入各類用地面積和導入坐標數(shù)據(jù)三大部分。
通過模型構建器Model Builder的FeatureToPolygon、AddField 等關鍵工具的組合,自動將DWG 格式設施農(nóng)用地范圍生成SHP 數(shù)據(jù);利用SpatialJoin、CalculateField、Python 表達式“!shape.Area!”、DeleteField 等關鍵工具的組合,自動對必要SHP 文件字段進行信息錄入;利用Intersect、Select、CalculateField、Python 表達式“!shape.Area!”、DeleteField 等關鍵工具的組合,自動生成設施農(nóng)用地破壞耕地SHP 圖層,并錄入必要字段信息;最后通過編寫Python 代碼并導入腳本文件,自動將設施農(nóng)用地和破壞耕地SHP 圖層分別轉(zhuǎn)換為設施農(nóng)用地監(jiān)管系統(tǒng)要求的標準TXT 格式坐標文件,從而實現(xiàn)設施農(nóng)用地上圖入庫操作流程的可視化、流程化、批量化,提高工作效率和準確性。思路流程如圖1 所示。
圖1 思路流程
在ArcGIS 平臺中,通過ArcToolbox 添加工具箱,命名為“設施農(nóng)用地處理工具箱”,并在該工具箱中新建第一個模型,將模型命名為“1.制作SHP 文件”,用于制作設施農(nóng)用地SHP 格式數(shù)據(jù)。在模型中添加FeatureToPolygon 工具,將DWG 格式農(nóng)業(yè)設施宗地圖上的設施農(nóng)用地范圍生成SHP 面文件數(shù)據(jù)。添加AddField 工具,分別為設施農(nóng)用地SHP 文件新建“界址點數(shù)”“地塊面積”“地塊編號”“地塊名稱”“圖形類型”“圖幅號”“地塊用途”“地類編碼”“描述”等必要字段。
最后,利用以上幾種工具,通過重復利用與串聯(lián)的方式形成組合工具,運行模型即可自動實現(xiàn)將DWG格式設施農(nóng)用地范圍生成SHP 格式面文件數(shù)據(jù)。模型運行結(jié)果、SHP 格式數(shù)據(jù)模型制作、模型執(zhí)行窗口分別如圖2、圖3 和圖4 所示。
圖2 模型運行結(jié)果
圖3 制作SHP格式數(shù)據(jù)模型
圖4 模型執(zhí)行窗口
在“設施農(nóng)用地處理工具箱”中新建第二個模型,將模型命名為“2.自動錄入必要字段”,用于對“地塊面積”“地塊名稱”“圖幅號”“地塊用途”等必要字段進行信息錄入。
首先在模型上添加SpatialJoin 工具,將設施范圍與所在行政區(qū)的1∶10000 圖幅結(jié)合表進行空間連接,自動獲取設施農(nóng)用地圖斑的圖幅信息。
然后添加CalculateField 工具,將設施農(nóng)用地所在圖幅號自動計算到“圖幅號”字段上;添加CalculateField 工具,通過Python 表達式“!shape.Area!”來自動獲取“地塊面積”字段值;添加CalculateField 工具,將“地塊名稱”字段賦值為“設施范圍”,將“地塊用途”字段賦值為“設施農(nóng)用地”;添加DeleteField 工具,對字段進行維護,刪除冗余字段。
最后,利用以上幾種工具,通過重復利用與串聯(lián)的方式形成組合工具,運行模型即可自動實現(xiàn)對必要設施農(nóng)用地SHP 文件的字段進行信息錄入,形成屬性值完善的設施農(nóng)用地SHP 文件。模型運行結(jié)果、自動錄入字段模型、模型執(zhí)行窗口分別如圖5、圖6 和圖7所示。
圖5 模型運行結(jié)果
圖6 自動錄入字段模型
圖7 模型執(zhí)行窗口
在“設施農(nóng)用地處理工具箱”中新建第三個模型,并將模型命名為“3.農(nóng)用地破壞耕地層”,用作生成設施農(nóng)用地破壞耕地圖層。
首先在模型中添加Intersect 工具,將設施農(nóng)用地SHP 圖層與最新年度的土地利用現(xiàn)狀數(shù)據(jù)進行疊加分析,得到設施農(nóng)用地的土地利用現(xiàn)狀。
然后添加Select 工具,篩選土地利用現(xiàn)狀地類名稱為“水田”“水澆地”“旱地”的圖斑(即為設施農(nóng)用地破壞耕地層的圖斑);添加CalculateField 工具,通過Python 表達式“!shape.Area!”來自動獲取“地塊面積”字段值;添加CalculateField 工具,將“地塊名稱”字段賦值為“設施農(nóng)用地破壞耕地層”,將“地類編碼”字段賦值為對應的土地利用現(xiàn)狀地類編碼;添加DeleteField 工具,對字段進行維護,刪除冗余字段。
最后,利用以上幾種工具,通過重復利用與串聯(lián)的方式形成組合工具,運行模型即可實現(xiàn)自動生成設施農(nóng)用地破壞耕地SHP 圖層,并錄入必要字段信息。模型運行結(jié)果、生成破壞耕地層模型、模型執(zhí)行窗口分別如圖8、圖9 和圖10 所示。
圖8 模型運行結(jié)果
圖9 生成破壞耕地層模型
圖10 模型執(zhí)行窗口
(1)標準TXT 數(shù)據(jù)要求
標準格式分為屬性描述和地塊坐標兩部分,TXT格式要求如圖11 所示。其中,①地塊編號:填寫地塊順序編號,如建設項目勘測定界技術報告書中地塊的編號。
圖11 TXT格式要求
②地塊名稱:填寫地塊名稱,也可以按照地塊數(shù)命名為“地塊1、地塊2……”。
③記錄圖形屬性:填寫“面”。
④地塊用途:留空。
⑤點號:填寫界址點順序編號,如“J1、J2……J1”“1、2……1”。
⑥地塊圈號 :不涉及扣除內(nèi)部面積時,統(tǒng)一填“1”;涉及扣除地塊坐標的,依次填寫“2、3……”。
⑦X 坐標、Y 坐標:X 坐標整數(shù)部分為7 位,小數(shù)部分保留3 位;Y 坐標整數(shù)部分為8 位,小數(shù)部分保留3 位。
(2)實現(xiàn)方法
在“設施農(nóng)用地處理工具箱”中新建腳本,并將腳本文件命名為“4.shp 轉(zhuǎn)txt”。編寫Python 代碼并導入該腳本文件,生成SHP 轉(zhuǎn)TXT 的腳本工具,通過運行該腳本文件,即可自動將設施農(nóng)用地和破壞耕地SHP 圖層分別轉(zhuǎn)換為系統(tǒng)要求的標準TXT 格式坐標文件(符合粵國土資利用發(fā)〔2018〕25 號附件2 中對坐標格式的要求)。模型參數(shù)設置時,輸入SHP 的數(shù)據(jù)類型設置為 “要素圖層”;格式的數(shù)據(jù)類型設置為“字符串”;輸出TXT 的數(shù)據(jù)類型設置為“文件夾”。
腳本關鍵部分代碼如下:
通過上述“設施農(nóng)用地處理工具箱”,按順序依次運行各模型和腳本文件(腳本運行結(jié)果如圖12 所示),選擇相應的輸入文件、設置輸出的格式和文件路徑,點擊“確定”即可自動輸出符合要求的文件數(shù)據(jù),從而高效完成自然資源部要求的設施農(nóng)用地上圖入庫工作,SHP 轉(zhuǎn)TXT 執(zhí)行窗口如圖13 所示。
圖12 腳本運行結(jié)果
圖13 SHP轉(zhuǎn)TXT執(zhí)行窗口
為了驗證建模工具的有效性和實用性,利用Model Builder 建模工具在廣東省羅定市的設施農(nóng)用地上圖入庫工作中進行了測試。
由一名專業(yè)技術員人工處理100 個設施農(nóng)用地圖斑,人工制作破壞耕地SHP 圖層和標準TXT 格式數(shù)據(jù),耗時1.5 天;另外由一名普通技術員利用Model Builder 建模工具進行處理,耗時0.5 天。通過人工檢查發(fā)現(xiàn),人工處理的成果中有2 處字段值缺漏,1個TXT 數(shù)據(jù)入庫失??;利用Model Builder 建模工具處理的成果字段值正確、內(nèi)容齊全,而且100 個TXT數(shù)據(jù)全部入庫成功。
另外,在廣東省江門市、陽江市等地區(qū)的設施農(nóng)用地上圖入庫工作中,也成功地應用了該技術,通過ArcGIS 平臺的Model Builder 模型構建器和Python站點包ArcPy 訪問地理處理工具、函數(shù)、類和模塊編寫腳 本,在ArcToolbox 工具箱中添加工具和腳本,并建立了可視化、流程化、批量化的操作界面[4]。
本文基于Model Builder 模型構建器,實現(xiàn)了設施農(nóng)用地上圖入庫操作流程的可視化、流程化、批量化,適用于一般技術員操作。使用該方法可以降低生產(chǎn)成本、提高工作效率,同時避免了人為因素引起的錯誤,實現(xiàn)了設施農(nóng)用地的快速、批量上圖入庫,也能為自然資源部門的建設用地報批、墾造水田、土地整理等同類日常業(yè)務的上圖入庫工作提供借鑒。