ArcGIS API for Silverlight 呼叫GP服務準備---GP模型建立、釋出、測試
第一篇、GP降雨量等值線建模、釋出及測試
在水利、氣象等行業中,要在WebGIS中實現空間分析功能,如繪製等值線、等高線、等直面、緩衝區等都是經常遇到,經過一段時間的學習和研究,查閱ESRI文件,請教他人,終於可以說是初步實現了等值線功能,這裡記錄下來詳細的操作步驟和圖片說明,一方面是對此次努力的總結,另一方面希望也能給後來用到這方面的其他同志們,起個拋磚引玉的作用。
以下是在ArcMap 10中操作詳細步驟:
1)、開啟ArcMap 10,載入一個縣界的面層,這裡只是演示用,只是便於後面用於等值線裁剪使用。
2)、在模型建立之前首先看一個GP檔案結構圖,如下:
圖一
這裡簡單介紹下:
a、<ToolShare>是本地磁碟下某個目錄下的一個資料夾,存放GP模型中所有使用到的資料夾、檔案、模型、地圖mxd文件等。
b、ToolData資料夾下存放Schema檔案地理資料庫,然後該地理資料庫中存放的是輸入要素點集。
c、Scripts資料夾下存放的是ArcGIS中模型中使用到的Python指令碼,Python指令碼是ArcGIS中的標準指令碼語言。
d、Doc資料夾下存放的是模型的使用手冊和幫助文件等內容。
e、Scratch資料夾下存放Scratch檔案地理資料庫,如果有shp等檔案也可以匯入到該檔案地理資料庫中去。並且GP模型的工作空間通常也是指向Scratch資料夾。
3)、在磁碟目錄,如D:\下新建一個資料夾,比如命名為SimpleGPService,然後拷貝該資料夾路徑D:\SimpleGPService,到ArcMap中的Catalog目錄找到Folder Connections,右鍵選擇Connect Folder,然後將拷貝的目錄貼上,並進行檔案關聯,如下圖所示:
圖二
圖三
接下來,右鍵該目錄,選擇新建Folder,命名為ContourService,如下圖
圖四
繼續在ContourService
圖五
然後分別在Scratch和ToolData下新建檔案地理資料庫,名稱分別為Scratch和Schema,如下圖所示:
圖六
按照上面的說明,建立完成後,檔案目錄結構的樣式應該如下圖所示:
圖七
右鍵點選Schema,選擇新建一個要素類Feature Class,如下圖所示:
圖八
這裡命名為RainPoint,要素型別選擇Point Features,如下圖所示:
圖九
接著選擇“下一步”,這裡的座標系統選擇“Unknow”即可,無需import常用的座標系統,如下圖所示:
圖十
點選“下一步”
圖十一
點選下一步
圖十二
繼續點選下一步,新增一個新的欄位,YL,欄位型別為Double,這個是降雨量數值欄位,根據需要按照命名規則可自定義,因為這裡定義的欄位,後來在GP呼叫時是需要名稱一致的,需要注意一下,如下圖所示:
圖十三
點選“finish”完成。現在資料夾目錄結構如下:
對於需要的剪下圖層,可以匯入到Scratch檔案地理資料庫中,如下圖:
圖十四
由於生成的等值線往往是一個地區,所以需要根據某個範圍進行裁剪操作,這裡我匯入的是一個縣界圖層的shp檔案,併為Output Feature Class命名,這裡為ClipFeature,如下圖:
圖十五
點選OK即可。
此時ArcMap中大致如下圖所示:
圖十六
4)、接下來建立工具,右鍵ContourService資料夾,新建一個Toolbox
圖十七
命名為CustomContourServiceTool,此時目錄結構如下:
圖十八
右鍵選擇”CustomContourServiceTool”工具,新建一個Model,如下圖所示
圖十九
此時會開啟一個建模視窗,如下圖:
圖二十
要修改模型的名稱,請在模型工作區內右鍵,選擇“Model Property”
圖二十一
在開啟的屬性視窗中,重新名稱模型,並勾選相對儲存路徑,如下圖所示:
圖二十二
5)、正式開始建模,開啟Toolboxes,選擇“克里金”,如下圖所示:
圖二十三
將Kriging工具直接拖到模型工作區中,如下圖:
圖二十四
右鍵選擇Kriging,即中間的圓角矩形框,新增輸入點要素的引數,如下圖:
圖二十五
新增後的效果圖如下所示:
圖二十六
由於該點要素是一個引數,首先給該點設定成模型引數,如下圖:
圖二十七
如上新增Model Parameter後,會自動新增一個P在上方顯示,右鍵選擇“Property”
圖二十八
切換到Data Type節,選擇資料型別為“Feature Set”
圖二十九
然後從GP檔案結構中的ToolData\Schema\RainPoint中匯入輸入要素和符號,如下圖
圖三十
圖三十一
點選確定後,如下圖
圖三十二
此時,需要修改工作空間,選擇“Geoprocessing”->“Enviroments”,如下圖:
圖三十三
將Workspace指向我們之前建立的GP目錄下的Scratch資料夾
圖三十四
完成後如下
圖三十五
雙擊開啟模型中的Kriging這個圓角矩形框,
圖三十六
修改輸出的Raster路徑為%scratchworkspace%,修改後應該如下圖所示:
圖三十七
接下來,我們繼續新增模型元素,這次我們要新增Contour等值線工具
圖三十八
將該工具直接拖到模型工作區域
圖三十九
點選模型工具欄中的Connect,將Kriging的輸出和Contour工具進行連線操作
圖四十
右鍵Contour,建立引數變數Contour interval
圖四十一
圖四十二
同樣為該變數建立模型引數P,並雙擊該變數,輸入一個值,比如10
圖四十三
此時的模型如下圖所示:
圖四十四
接下來需要進行的操作是裁剪,在工具箱中找到Clip工具,拖放到模型工作區域中來
圖四十五
同樣將Contour的輸出結果和Clip操作進行連線
圖四十六
右鍵Clip,建立Clip Features變數
圖四十七
雙擊新增的Clip Features,選擇之前匯入到Scratch目錄下的那個ClipFeature,如下圖
圖四十八
接下來修改模型中的輸出路徑,之前已經修改Kriging了,按照類似的方法,修改Contour和Clip即可,如下圖
圖四十九
圖五十
最後為輸出要素集新增輸出引數P
圖五十一
最終一個簡單的等值線模型建立成功,如下圖
圖五十二
6)、模型測試
圖五十三
在Catalog中選擇模型,右鍵選擇“Debug”,此時看到如下視窗
圖五十四
通過點選Add Feature向地圖上新增若干個要素點,並輸入YL值進行測試
圖五十五
點選“OK”按鈕,進行模型測試
圖五十六
等值線就出來了
7)、釋出GP服務,並新增Toolbox中進行再次測試
圖五十七
圖五十八
圖五十九
圖六十
這樣GIS伺服器上就有了這個名為CustomContourServiceTool的GP服務了。點選ArcMap中的工具欄中的ArcToolbox window
圖六十一
右鍵新增新的Toolbox
圖六十二
圖六十三
這樣之前我們建立併發布的GP服務就新增到了工具箱中了,再次測試,雙擊這個工具
圖六十四
圖六十五
同樣在地圖上新增要素點進行測試即可。
圖六十六
至此,整個GP建模及釋出及測試已經全部完成。
附註:GP服務的REST地址,右鍵GIS Server上的服務,選擇Service Properties
圖六十七
在開啟的視窗中,拷貝URL
圖六十八
類似這樣的Url,然後在arcgis和services之間加上一個rest,現在的URL形式如下
開啟瀏覽器,輸入以上URL,即可訪問
圖六十九
點選Task進入
圖七十
該URL即GP的URL地址,以後在程式開發中,會使用到。
從這個URL可以得到如下資訊:
URL:
輸入引數:Input_point_features和Contour_interval
輸出引數:Contour_Kriging1_Clip_shp