ArcGIS API for Silverlight 呼叫GP服務準備---GP模型建立、釋出、測試

暖楓無敵發表於2012-09-03

                                                                                                                     第一篇、GP降雨量等值線建模、釋出及測試

 

       在水利、氣象等行業中,要在WebGIS中實現空間分析功能,如繪製等值線、等高線、等直面、緩衝區等都是經常遇到,經過一段時間的學習和研究,查閱ESRI文件,請教他人,終於可以說是初步實現了等值線功能,這裡記錄下來詳細的操作步驟和圖片說明,一方面是對此次努力的總結,另一方面希望也能給後來用到這方面的其他同志們,起個拋磚引玉的作用。

      下一篇是關於Silverlight呼叫GP服務的程式碼實現,地址:http://blog.csdn.net/taomanman/article/details/7937879,當然只是初步實現,關於等值線註記等還需繼續完善,歡迎大家一起探討技術。

       以下是在ArcMap 10中操作詳細步驟:

1)、開啟ArcMap 10,載入一個縣界的面層,這裡只是演示用,只是便於後面用於等值線裁剪使用。

2)、在模型建立之前首先看一個GP檔案結構圖,如下:

圖一

這裡簡單介紹下:

a<ToolShare>是本地磁碟下某個目錄下的一個資料夾,存放GP模型中所有使用到的資料夾、檔案、模型、地圖mxd文件等。

bToolData資料夾下存放Schema檔案地理資料庫,然後該地理資料庫中存放的是輸入要素點集。

cScripts資料夾下存放的是ArcGIS中模型中使用到的Python指令碼,Python指令碼是ArcGIS中的標準指令碼語言。

dDoc資料夾下存放的是模型的使用手冊和幫助文件等內容。

eScratch資料夾下存放Scratch檔案地理資料庫,如果有shp等檔案也可以匯入到該檔案地理資料庫中去。並且GP模型的工作空間通常也是指向Scratch資料夾。

3)、在磁碟目錄,如D:\下新建一個資料夾,比如命名為SimpleGPService,然後拷貝該資料夾路徑D:\SimpleGPService,到ArcMap中的Catalog目錄找到Folder Connections,右鍵選擇Connect Folder,然後將拷貝的目錄貼上,並進行檔案關聯,如下圖所示:

圖二

 

圖三

接下來,右鍵該目錄,選擇新建Folder,命名為ContourService,如下圖

圖四

繼續在ContourService資料夾下新建2個資料夾,分別為ScratchToolData目錄,如下圖

圖五

然後分別在ScratchToolData下新建檔案地理資料庫,名稱分別為ScratchSchema,如下圖所示:

圖六

按照上面的說明,建立完成後,檔案目錄結構的樣式應該如下圖所示:

圖七

右鍵點選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了,按照類似的方法,修改ContourClip即可,如下圖

圖四十九

圖五十

最後為輸出要素集新增輸出引數P

圖五十一

最終一個簡單的等值線模型建立成功,如下圖

圖五十二

 

6)、模型測試

圖五十三

Catalog中選擇模型,右鍵選擇“Debug”,此時看到如下視窗

圖五十四

通過點選Add Feature向地圖上新增若干個要素點,並輸入YL值進行測試

圖五十五

點選“OK”按鈕,進行模型測試

圖五十六

等值線就出來了

7)、釋出GP服務,並新增Toolbox中進行再次測試

圖五十七

圖五十八

圖五十九

圖六十

這樣GIS伺服器上就有了這個名為CustomContourServiceToolGP服務了。點選ArcMap中的工具欄中的ArcToolbox window

圖六十一

右鍵新增新的Toolbox

圖六十二

圖六十三

這樣之前我們建立併發布的GP服務就新增到了工具箱中了,再次測試,雙擊這個工具

圖六十四

圖六十五

同樣在地圖上新增要素點進行測試即可。

圖六十六

至此,整個GP建模及釋出及測試已經全部完成。

 

附註:GP服務的REST地址,右鍵GIS Server上的服務,選擇Service Properties

圖六十七

在開啟的視窗中,拷貝URL

圖六十八

http://localhost/arcgis/services/CustomContourServiceTool/GPServer

類似這樣的Url,然後在arcgisservices之間加上一個rest,現在的URL形式如下

http://localhost/arcgis/rest/services/CustomContourServiceTool/GPServer

開啟瀏覽器,輸入以上URL,即可訪問

圖六十九

點選Task進入

 

圖七十

URLGPURL地址,以後在程式開發中,會使用到。

從這個URL可以得到如下資訊:

URL

http://localhost/arcgis/rest/services/CustomContourServiceTool/GPServer/ContourServiceTool%20Model

輸入引數:Input_point_features和Contour_interval

輸出引數:Contour_Kriging1_Clip_shp


 

相關文章