地學服務通過發布地理處理模型和腳本工具可以創建任務。地學處理的主要目的在於使您能夠自動執行GIS任務以及執行空間分析和建模任務。地學處理提供一組豐富的工具和機制來實現工作流的自動化操作,這些工具和機制能夠使用模型和腳本將一系列的工具按照一定操作順序結合在一起,自動處理復雜任務。
在ArcGIS Desktop中,可通過以下兩種方法創建地學處理服務:
發布地學處理工具箱。工具箱中的每個工具都將成為地理處理服務中的一個任務。
發布包含地學處理工具圖層的ArcMap文檔。各工具圖層都將成為地學處理服務中的一個任務。
地學處理服務及其任務可以通過公共Internet和私有Intranet訪問,並且可以ArcGIS Desktop、ArcGIS Explorer和Web應用程序(如使用ArcGIS Server管理器構建的網站)中使用。在 ArcGIS Desktop 中,可以將地學處理服務作為工具箱添加到 ArcToolbox 窗口中,而任務將成為工具箱中的工具[1]。
本次試驗利用ArcGIS Server 10發布Geoprocessing Services,通過調用服務用戶可以根據提供的要素集自動處理並生成要素集的等值線,並自動顯示。筆者對地學服務的兩種創建方法都進行了嘗試,認為發布包含地學處理工具圖層的ArcMap文檔對用戶而言更為直觀。
一、數據准備
1. ArcGIS對Geoprocessing Services輸入、輸出的數據有嚴格的控制,詳細情況請參考[2]。
2. 在合適的位置新建文件夾(Contour),在Contour下新建文件夾(ToolData)和(Scratch),下新建一個Scratch數據庫。將試驗數據存放在ToolData中,Scratch將作為地學處理的臨時工作空間(workspace)。
3. 將eqpointIdentityfinal.lyr在ArcMap中保存為Contourbasemap.mxd,作為地圖服務發布,地圖服務只需有制圖(mapping)功能即可。在后續調用GP服務時該地圖服務將作為底圖。
二、構建模型
本次試驗的目的是根據給定的數據自動生成點要素集的等值線。簡單說來,由點要素集生成等值線只需兩個步驟:對點要素集進行插值,由插值后的柵格數據集生成等值線。模型構建如下:
1.打開ModelBuilder,畫布任意地方右單擊,選擇Create Variable,重命名Input Point,將Data Type設置如下:
關於數據類型如上所述參考[1]
2.在ArcToolbox中搜索插值工具IDW,直接拖曳到ModelBuilder中,將IDW的output重命名IDW output,右單擊IDW選擇make Variable from Parameter—Z value field,右單擊Z value field將其設置為參數,會看到一個字母“P”。雙擊IDW設置如下:
IDW output是模型的中間數據,在任務執行完后就沒有意義了,右單擊選擇managed(托管),將IDW output存儲在…\Contour\Scratch,注意是Scratch不是Scratch.gdb。
3.同樣在ArcToolbox中搜索Contour工具,直接拖曳到ModelBuilder中,將Contour的輸出重命名Output Contour並設參,雙擊Output Contour將其輸出路徑設置為%scratchworkspace%\Contour_Idw.shp,右單擊選擇Add to Display,右單擊Contour選擇make Variable from Parameter—Contour interval,並將Contour interval設參。雙擊Contour,設置如下:
Contour的輸出路徑可以為以下幾個方式:
- %scratchworkspace%/<dataset>
- %scratchworkspace%/scratch.gdb/<dataset>
- in_memory/<dataset>唯一的情況是GP服務沒有輸出結果。
4.(這一步非常重要)單擊模型界面菜單欄的Model,選擇Model Properties,設置環境變量輸出坐標系和工作空間,如下:
5.在Contour文件夾下新建一個工具箱Contour.tbx,將模型保存到Contour.tbx中。
三、建立地圖符號庫
1.在ArcMap中打開地圖文檔Contourbasemap.mxd,打開ArcToolbox並加載自定義工具箱Contour.tbx,雙擊模型Contour,參數設置如下:
單擊OK,執行結果如下圖:
2.在Table of Contents中設置等高線的符號,並將Contour_idw1以圖層Contour_idw1.lyr保存到ToolData文件夾中。
3.編輯模型,右單擊Output Contour,將輸出圖層符號設置為E:\takeoff\Contour\ToolData\Contour_Idw1.lyr。
四、發布Geoprocessing Services
1.同Contourbasemap.mxd一樣將eqpointIdentityfinal.lyr另存為Contour.mxd存放在文件夾Contour中。
2.在ArcMap中打開地圖文檔,加載工具箱Contour.tbx,將模型Contour直接拖曳到Table of Contents中,設置如步驟3建立符號庫一樣,將生成的等值線圖層一並保存,作為發布GP服務的准 備。生成的等值線圖層將作為GP工具發布。
3.地學處理服務的創建方式在文章的開始就已經介紹,本文采用的是發布包含地學處理工具圖層的ArcMap文檔,即Contour.mxd。服務配置如下:
需要注意的是服務器最大返回值的設置,默認的是1000,本次采用數據有5000多點要素,因此需要修改最大返回值為10000。或者發布服務后,停止服務,修改Service Properties。
五、檢驗Geoprocessing Services
1.以空白文檔打開ArcMap,單擊Add Data,由服務器導入地圖服務Contourbasemap。
2.打開ArcToolbox,右單擊,由服務器添加Geoprocessing Services,即ContourGP。Geoprocessing Services在ArcToolbox顯示為工具。
3.雙擊,在彈出的窗口進行設置,因為創建模型時將Z value和Contour interval設為參數,參數設置如下:
模型中Input Point也可以設置為參數,用戶就能提供自己數據(必須是GP服務支持的)生成等高線。執行后的效果如下圖:
六、補充
1.IDW:反距離權重插值法。反距離權重插值使用一組采樣點的線性權重組合來確定像元值。權重是一種反距離函數。進行插值處理的表面應當是具有局部因變量的表面。此方法假定所映射的變量因受到與其采樣位置間的距離的影響而減小。
2. Extend:在使用ArcMap中經常會出現一個低級錯誤,但是又常常忘記。 Error000824:the tool is not licensed 解決方法就是選中Customize—Extensions選中需要的工具即可。