使用ArcGIS GP服務之二手工建模


  前面打一個小廣告,歡迎關注WebGIS微博

  建模,是我們發布GP服務的第一步,這是基礎功。我們為什么要建模呢?

  對於現實的GIS業務來說,基本上都有相應的流程和規范,具體怎么做,都得按照步驟來。步驟少還好說,要是步驟多了,不僅效率低下,而且還容易出現工作錯誤,每一步都會產生中間文件。例如我們的天氣預報,將收集各個氣象站站點定位到地圖上,然后剪出中國的版圖來,再然后進行克里金差值等等,一些步驟以后,就可以得到相應的溫度線或者降雨線。步驟都是規定好的,為什么不做成一個工具,然后直接輸出結果呢?

  對,這就是建模的好處,我們通過將多個工具組合起來,生成一個工具,來完成整體的步驟化。

  上一篇博客介紹了,我們首先打開Model Builder。如果不知道怎么打開,請看上一篇博客吧。

  首先介紹一下,我們要實現的一個過程,某一個地方發生污染,周圍哪些城市將受影響,我們這里只考慮距離吧。

下面是我們整個建模的思想。

1:得到受污染的區域 2:進行緩沖 3:將在緩沖區的城市選出來。

第一步,新建模型


最右側的按鈕。 

第二步,拖入工具

  我們可以將現有的工具,直接拖到這里面來。比如我拖一個Buffer工具。

  其實如果找不到的話,我們可以進行一個搜索,快捷鍵Ctrl+F。

  拖進之后的樣子。

  我們雙擊Buffer,我們可以看到Buffer的很多參數,前面帶綠點的參數是必填的。

第三步,設置參數

  參數分為兩種方式填,一種直接填在這里面,另外一種是作為參數。有綠點是必填的,如果不輸入這些參數,這個工具是黑白色的,不是彩色的。

  比如我在這里輸入Linear unit :1 單位選擇為Decimal degrees。

  如果是以參數的方式,來添加的話,有兩種方法添加。

  • 先說第一種,右鍵buffer,選擇Make Variable-From Parameter。我們看到后面的參數,和上圖的參數是一樣的。不過還是缺少了一個Output Feature Class。看一下Buffer右側是什么?這是拖進來,自動就把這個參數添加進來了,我這里點擊選擇Distance[value or field]。

  由於之前,這個參數,我已經設好值,所以說顯示的是彩色的。后面的兩個還是沒有變成彩色,說明這個buffer還缺少一個必填參數。就是Input Features。

注意,我們點擊這個Distance參數,也是可以修改這個參數值的。

  我們這時候,使用第二種方式。

  在這里建模空白區域,右鍵選擇Create Variable(創建變量),選擇我們需要使用的參數類型,我們這里選擇Feature Set。

  點擊,然后點擊Feature Set,一直拖着鼠標不放到Buffer,然后松開。

  然后會出現和這個類型匹配的,參數名字,這里我選擇Input Features。

  按理說,這里我已經完所有的參數,應該變成彩色才對。回頭想一下,應該是Feature Set沒有設置成功,應該一些參數沒有設置對。我們點擊Feature Set。

  在這里我選擇了一個區的shp文件。點擊確定。

  我們再去看一下,我們的模型,都變成了彩色。說明我們這個必須參數已經設置正確,正確與否,還不能確定。

 

  我們先點擊那個,進行檢驗一下啊,是否正確。爭取的話,我們點擊

  運行完畢之后,可是並知道結果怎么樣。

  這個時候,我們可以右鍵這個Out Feature Class,選擇Add To Display。

  如果不這么辦的話,也是可以采用其他的方法的,點擊Out Feature Class,我們這樣就可以知道整個的輸出地址什么了,當然作為參數我們也可以自己進行手動的設置。

  現在完了嗎?其實對於輸入Feature Set,我想進行一個手動畫一些區域,然后進行一個緩沖區生成,來在Desktop上的一個檢驗。

  把原來的"Input Features"參數還原成最初的樣式吧。

  在這之前,我們需要在Geodatabase文件中新建一個Feature Class,其中類型選擇Polygon Feature。為什么要建立這個呢?因為我們需要將這個模板引入到這個參數中,讓Desktop知道我們要輸入的是點、線還是面之類的。

  右鍵這個屬性,選擇Properties。進入Data Type標簽,然后剛才我們新建的Feature Class。

  稍等,還有一 步需要完成,右鍵這個參數,然后選擇Model Parameter。這個時候,就會出現一個P。所有出現P的,這個模型作為使用,都需要在使用的時候,作為其中一個參數出現,沒有把它寫死。那個緩存長度,由於沒有加P,使用的時候,參數都是死的,不能進行改變,除非重新編輯這個Model,但是一旦發布成服務,就不能更改了。所以說,在使用之前,一旦要想好,那些參數是死的,哪些參數是在使用的時候,才能確定的。

  為了GP服務的使用,參數的名字將會作為參數名稱來提交的,為了更好的理解意思,最好更改一下名字,比如說,上圖的"Feature Set",更改為"ContaminatedAreas"。

  這個時候,我們來保存這個模型吧。

第四步,初入驗證模型

  打開這個模型。

    

  然后在Desktop畫區域吧。

  然后點擊"OK",等待整個的運行完畢。

  到了這里,我們緩沖區域基本上就夠完成了。下面我們就要整體構建我們模型了。根據模型選擇城市。

第五步,完成模型

  我們這個時候,需要添加一個新的工具,select layer by location。把第一步的輸出結果,作為第二個工具的參數Selecting Features。然后再添加一個Input Features參數,選擇相應的圖層。等等。。。。。

  最后我們實現整個模型,是這樣的。

第六步,最后驗證模型

  10.1版本,為了更加保證模型,沒有錯誤,需要先進行跑一遍才可以發布。

  在這里我添加了原來畫的區域,我是怎么做到的呢?很簡單。點擊Geoprocessing-results。

  然后把選中的,直接拖進去,就可以顯示了,就能檢驗我們輸入正確與否。

  這一博客,確實有些長了。

  下一個博客,我們就要做發布前的准備了。

       這是我的數據文件  下載


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM