通過GeometryService+gp服務實現河流污染模擬


首先來看看最終的效果圖:

本文將說一下實現該功能的思路和方法,鑒目前項目涉及到一些保密文件,在此不便貼出代碼,不過在后續的工作中,我會抽時間來一一整理本博客的所有代碼,並全部共享。

下面就來看看具體實現的思路。

1.河流的網格划分

關於河流的網格划分,可以參考前一篇博文:

http://www.cnblogs.com/potential/archive/2012/12/20/2826143.html

該文給出了網格划分的思路,在此不再多說。

2.河流的污染預測模型的選擇。

這里本文采取了二維的河流污染擴散模型,並以中心排放為例,其他模式也是一樣。這里涉及到一個比較難的問題是:如何求出每一個網格點的(X,Y)坐標,即網格點到河流中心線的距離以及沿河流方向到污染源的距離。

本文這里提供一個解決方案是:

(1):對於求沿河流方向到污染源的距離,可以通過路徑服務實現,首先提取出河流的中心線,將該中心線構建成網絡數據集,發布成網絡分析服務,那么我們隨便選取的兩個點(兩個點分別到中心線的距離都要小於網絡分析服務設置的搜索容差,否則無法求出距離),通過網絡分析服務可以求出其沿河流方向(中心線)的距離。

(2):對於網格點到河流中心線的距離可以通過GIS的GeometryService的Distance操作來實現,這個比較容易。

求得每一個網格點的(X,Y)后,接下來就是根據選定的污染擴散模型,計算每一個點的濃度。

3.污染物濃度分布的可視化

在得到每一個點的濃度之后,那么接下來就是進行插值渲染。但是這里我們需要注意的就是,我們要保證渲染的圖層落在河流之內。也就是上圖的彩色區域都在河流中。然后我們會注意到一個問題,默認插值時的范圍都是矩形,如果不進行其他的操作,那么我們的得到的圖層將是一個矩形區域,這顯然不符合河流污染物的擴散,因此需要裁剪掉河流以外的區域。這里實現插值的過程采用的是GP服務,GP服務的模型如下所示:

這里通過掩膜提取對插值的刪格圖像進行裁剪,以保證插值圖層在河流的之內。

關於GP服務的發布可參考這里:

http://www.cnblogs.com/potential/archive/2012/10/27/2742355.html

關於Web端調用GP服務可參考這里:

http://www.cnblogs.com/potential/archive/2012/11/03/2752289.html

 

(版權所有,轉載請標明出處)

 


免責聲明!

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



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