前面打一個小廣告,歡迎關注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。
然后把選中的,直接拖進去,就可以顯示了,就能檢驗我們輸入正確與否。
這一博客,確實有些長了。
下一個博客,我們就要做發布前的准備了。
這是我的數據文件 下載