

[關鍵詞] 國土空間基礎信息平臺;地理分析模型;地理處理工具;服務化封裝;可視化建模
近年來,全國各級自然資源主管部門積極組織建設開放共享、安全可靠的平臺,為國土空間相關規劃和決策提供了強有力的信息支撐[1]。在計算機領域,地理分析模型成為一種重要的可執行程序,有助于用戶理解和解決現實地理問題。應用服務體系是平臺向用戶提供服務能力的基礎[2],其中,地理分析模型是構建平臺應用服務體系的關鍵工具之一。
王杰[3]等利用ArcGIS構建了一套國土數據庫數據檢驗模型,該模型能夠滿足第三次國土調查數據質檢工作的要求,簡化了程序、提供了數據精度。此外,李夢琴[4]利用GIS軟件構建耕地破碎度評價模型,分析了海南省耕地破碎度的時空變化特征。而趙天瑞[5]等使用ArcGIS建立基于夜間燈光的網格化模型,揭示城鄉垃圾產量的空間不均衡性。這些應用通常需要借助GIS軟件構建地理分析模型,有較高的使用門檻。
1. 研究目標
1.1 構建地理分析模型存在的問題
在平臺中,地理分析模型的典型構建流程是:首先使用GIS軟件、各類地理處理工具等,搭建地理處理工作流,然后定制應用服務[6],將定制化的服務提供給用戶。然而,上述構建流程存在如下難點:(1)地理分析模型的構建需要借助GIS軟件(例如,ArcGIS、超圖、SAGA等)、各類地理處理工具(例如,TauDEM、Ge?oTools、WhiteBox等)、動態建模平臺(例如,OpenGMS、CSDMS、OpenMI等)等第三方軟件和平臺,其編程語言、運行環境、執行方式存在巨大差異,平臺難以直接使用;(2)地理分析模型的建模過程與GIS軟件緊耦合。常用工具如ArcGIS的ModelBuilder、超圖的Geo?processing Modeler,難以直接與平臺集成,其他不同軟件體系的地理處理工具也不易聯用[7]。
1.2 研究目標
針對上述難點,本文提出一種面向平臺的地理分析模型構建方法。該方法通過統一不同GIS軟件和各類地理處理工具的調用方式,使平臺能夠充分利用豐富的第三方軟件工具。此外,設計并實現可視化工作流構建工具,獨立于GIS軟件,以降低地理分析模型的構建難度,以及建模過程與GIS軟件的耦合性。最后,對構建好的地理分析模型進行標準化封裝,通過統一共享門戶對外發布,向用戶提供平臺的各類應用服務能力。
2. 技術路線
技術路線如圖1所示,主要分為三個步驟:(1)對第三方地理處理工具進行服務化封裝;(2)采用可視化建模方法和工作流技術實現模型構建器,構建地理分析模型;(3)基于REST架構,實現地理分析模型的服務化封裝和調用,通過統一共享門戶向服務對象提供應用服務能力。
3. 地理分析模型構建方法
3.1 第三方地理處理工具服務化封裝
服務化封裝的目的是對第三方地理處理工具資源進行匯聚,屏蔽它們使用方法的異構性,實現網絡環境下的服務化共享[8]。Java編程語言具有高性能、平臺獨立性等特點,借助其第三方類庫,能夠實現平臺與不同編程語言、不同格式的地理處理工具的互操作。使用Java HTTP客戶端框架Forest,能夠便捷地開發和使用REST API。本方法使用Java 編程語言和Forest框架,基于REST架構,對第三方地理處理工具進行服務化封裝和調用,開發統一的內部調用RESTAPI,使其具備服務化能力,實現第三方地理處理工具的統一匯聚,以及不同工具之間的串聯使用。
3.1.1 ArcGIS地理處理工具服務化封裝
使用Python語言編寫ArcGIS地理處理工具調用腳本,將其在ArcMap 中發布為GP 服務,然后使用Java和Forest框架對GP服務的執行和管理進行封裝,得到內部調用REST API。
3.1.2 超圖地理處理工具服務化封裝
超圖的處理自動化提供了基于Java實現的地理處理工具,具備基于標準HTTP協議的REST API。通過Forest框架集成使用,再編寫標準調用接口,封裝得到內部調用REST API。
3.1.3 其他第三方地理處理工具服務化封裝
TauDEM是一套開源工具,能夠利用數字高程模型進行地形分析。它提供了windows操作系統下的可執行程序。使用Java 的Runtime 和Process 模塊進行調用封裝[9],得到內部調用REST API。在開放網絡環境中,還有許多其他網絡服務化的地理分析模型、地理處理工具和建模平臺,同樣可以通過Forest進行使用,經過服務化封裝,得到內部調用REST API。
3.2 地理分析模型可視化構建
采用可視化建模方法和工作流技術,設計并實現B/S架構的地理分析模型構建器,用于地理分析模型的構建、運行和管理。其特點如下:(1)支持經過服務化封裝的第三方地理處理工具的注冊和使用;(2)使用系統結構框圖表達模型構成要素,可視化的建模方法降低了模型構建難度;(3)具備模型導入和導出功能,支持模型的共享和復用。
模型構建器的主要模塊包括算子配置、模型構建與管理、參數配置、工作流執行引擎等。算子是構建地理分析模型的基本單元,對應經過服務化封裝的第三方地理處理工具。算子配置提供地理處理工具的注冊、編輯和分類功能。模型構建與管理模塊提供基于HTML5的可視化建模界面,以及模型管理功能,支持模型的保存、共享和復用。工作流執行引擎用于工作流的調度和運行,接收相關指令,然后返回執行結果。
3.3 地理分析模型服務化封裝
平臺應用服務體系要求通過統一共享門戶對外提供應用服務能力,以及服務的統一訪問入口。因此,采用Java編程語言對平臺構建好的地理分析模型進行服務化封裝,生成REST API。設計并實現在線的統一共享門戶,為用戶提供應用服務接口使用說明和訪問入口。用戶通過調用REST API發起服務使用請求,門戶的服務管理模塊進行調度,運行地理分析模型,返回結果數據。此外,統一共享門戶還根據不同應用服務的業務需求,定制交互界面,提供一系列功能,包括空間數據的瀏覽、查詢、地圖疊加顯示、二次開發支持等。
4. 應用實例
本方法在南京國圖國土空間基礎信息平臺中進行應用,通過構建一鍵上圖服務,驗證本方法的可用性與有效性。該服務允許用戶一鍵上傳空間數據至平臺,設定相關參數后,平臺自動將數據發布為Arc?GIS或超圖地圖服務,并將其疊加到在線地圖上,供用戶瀏覽和分析。
4.1 地圖服務發布工具服務化封裝
首先安裝ArcGIS 和超圖軟件。針對ArcGIS,編寫基于ArcPy的ArcGIS地圖服務發布腳本,將其發布為GP服務,然后使用Java編程語言進行服務化封裝,得到內部調用REST API。對于超圖,其自身已提供地圖服務發布相關的REST API,在此基礎上使用Java開發超圖服務發布的內部調用REST API。
4.2 地圖服務發布模型可視化構建與服務化封裝
在模型構建器中,注冊ArcGIS地圖服務發布和超圖地圖服務發布兩個算子。在圖形化建模界面中,搭建地圖服務發布工作流,并將其保存為相應地圖服務發布模型。以超圖地圖服務發布模型為例,如圖2所示,該模型的地理處理流程是:(1)接收輸入的空間數據,存儲到系統數據目錄下;(2)進行數據校驗,如果校驗不通過則返回提示信息,通過校驗則進行下一步處理;(3)獲取超圖服務管理器的安全模塊訪問令牌;(4)攜帶令牌執行HTTP 請求,調用封裝好的超圖地圖服務發布REST API,發布服務;(5)返回服務地址。
最后,再使用Java編程語言對構建好的地圖服務發布模型進行服務化封裝,得到調用模型所需的REST API。
4.3 應用服務交互設計與實現
在平臺統一共享門戶中,開發一鍵上圖服務交互界面,通過模型的REST API集成地圖服務發布模型,向用戶提供地圖服務發布功能。用戶還可以借助平臺的交互界面方便地使用該功能。在平臺的在線地圖工具中,用戶只需點擊“添加”按鈕,選擇數據上圖,在彈出窗口上傳空間數據,設置地圖服務類型,然后點擊確認,見圖3。平臺會調度對應模型,將空間數據發布為地圖服務,并疊加顯示到在線地圖上,見圖4。
4.4 與傳統方法的對比
傳統方法在平臺中展示空間數據通常需要繁瑣的步驟,一般流程是:用戶首先使用ArcGIS的Model?Builder,或超圖的Geoprocessing Modeler 等構建數據處理與服務發布模型,生成地圖服務,然后將地圖服務注冊到平臺,最后在平臺地圖上進行疊加顯示。相比之下,本文方法具有明顯優勢:(1)操作簡化:本文方法簡化了平臺用戶的操作流程,平臺提供了預先封裝好的地圖發布服務,省去了用戶使用GIS軟件進行數據處理和建模的復雜步驟。(2)減少耦合:本文方法消除了平臺地理分析模型構建與GIS軟件的緊耦合,可視化建模方法提升了平臺的用戶友好性。(3)擴展性好:本文方法擴展了能夠用于地理分析模型構建的第三方軟件工具來源,不僅限于傳統的GIS軟件,還可以利用豐富的第三方地理處理工具和建模平臺,為平臺提供了更大的靈活性和選擇空間。
5. 結語
針對平臺地理分析模型構建中存在的難點,本文提出一種新的模型構建方法。該方法實現了如下內容:(1)第三方地理處理工具的服務化封裝。使平臺能夠使用豐富的第三方軟件資源,為用戶提供強大的地理分析能力。(2)可視化地理分析模型構建器。采用可視化的方法設計實現了在線工作流構建工具,顯著降低了模型的構建難度,提升了平臺的易用性。(3)地理分析模型的服務化封裝。提高了平臺的服務能力,方便了用戶的使用。通過構建地圖服務發布模型,驗證了該方法的可行性和實用性。這些成果將為未來平臺的建設和應用提供有力支撐,促進國土空間規劃和決策的進一步發展。