Flyingis

          Talking and thinking freely !
          Flying in the world of GIS !
          隨筆 - 156, 文章 - 16, 評論 - 589, 引用 - 0
          數據加載中……

          GIS 緩沖區應用及算法實現

          作者: Flyingis

          地理信息空間幾何關系分析主要包括鄰近度 (proximity) 分析、疊加分析、網絡分析等。緩沖區分析是鄰近度分析的一種,緩沖區是為了識別某一地理實體或空間物體對其周圍地物的影響度而在其周圍建立具有一定寬度的帶狀區域。緩沖區作為獨立的數據層進行疊加分析,可應用到道路、河流、環境污染源、居民點、輻射源等的空間分析,為某種應用目的提供科學依據,另外,結合不同的專業模型,可以在生活、軍事、城鄉規劃等領域發揮重要的作用。

          針對點、線、面不同的幾何類型,建立緩沖區的方式相互有所不同。建立點緩沖區比較簡單,即以某點要素為圓心,以緩沖半徑 R 作圓,得到點要素的緩沖區;線要素的緩沖區是以線為軸,以 R 為距離作兩側的平行線,在線的兩端構建兩個半圓弧段,和平行線一起組成緩沖區;面緩沖區的建立,是以面要素的邊界為基線向內外側作平行線,平行線和基線里的區域就是面緩沖區。除此之外,還可以對柵格數據建立緩沖區,根據不同的模型方程建立動態緩沖區,不論對什么樣的數據建立緩沖區,其基本方法都是相似的。

          緩沖區實現算法有矢量方法和柵格方法兩種。其中矢量方法數據量小,方法相對成熟,柵格圖像需要進行柵格像元之間進行布爾運算,當緩沖區較大時會帶來較重的運算負荷,實際運用中存在一定的局限性。矢量方法算法一般遵循以下步驟:

          :確定中心點——以中心點為圓心、 R 為半徑生成一個圓——得到緩沖區邊界

          線、面 :確定軸線——以距離 R 生成中心軸線的平行曲線——處理轉角弧段——對生成的弧段進行求交、合并運算——生成緩沖區邊界

          常用的矢量數據中心線擴張算法:

          角分線法

          基本思想:即“簡單平行線法”,在軸線的兩邊作出平行線,在轉角處形成尖角,兩端形成弧段,組成緩沖區。

          缺陷:難以保證在尖角處緩沖區左右邊線等寬;校正過程復雜,主要體現在軸線折角很大和很小時的情況;算法模型復雜,主要是因為幾何生成過程中需要處理較多的異常。

          凸角圓弧法

          基本思想:顧名思義,即是在轉角外側用圓弧來代替尖角,內側仍然使用尖角的方法,生成緩沖區。

          實施步驟:

          1.??????? 直線性判斷,判斷相鄰三點是否在同一直線上;

          2.??????? 折點凸凹性判斷,確定轉角的地方哪側使用直線求交,哪側使用圓弧連接;

          3.??????? 凸點圓弧的嵌入,即將轉角外側形成的圓弧和兩邊的線段相連;

          4.??????? 邊線關系的判別與處理,島嶼多邊形參與緩沖區邊界的構成,重疊多邊形不參與緩沖區邊界的構成;

          5.??????? 緩沖區邊界的形成,具體是將重疊區域進行合并,繪制外圍的邊線,包括島嶼多邊形的輪廓,形成最終的緩沖區邊界。

          在緩沖區算法中,需要注意的一個問題是緩沖區多邊形的重疊與合并,包括同一要素緩沖區的重疊和多個要素之間緩沖區的重疊。柵格數據緩沖區內的柵格具有一個與其影響度對應的一個值,如果重疊區域具有相同影響度則任取一值,如果不同則采取影響度大的代替影響度小的方法處理。對于矢量數據的處理算法有三種:數學運算法;矢量-柵格轉換法;矢量-柵格混合法。?

          posted on 2006-04-17 15:25 Flyingis 閱讀(7735) 評論(9)  編輯  收藏 所屬分類: GIS-GPS-RS

          評論

          # re: GIS 緩沖區應用及算法實現  回復  更多評論   

          可否有現成算法可以給我研究學習。
          zhanzhenbo@126.com
          2006-10-09 10:11 | piaoyi

          # re: GIS 緩沖區應用及算法實現  回復  更多評論   

          @piaoyi
          研究GIS底層算法,可以選擇各種GIS開源軟件。
          2006-10-11 18:46 | Flyingis

          # re: GIS 緩沖區應用及算法實現  回復  更多評論   

          是的,現在看來.確實有很多優秀的開源項目值得研究.

          呵呵.
          2006-12-07 20:35 | zhanzhenbo

          # re: GIS 緩沖區應用及算法實現[未登錄]  回復  更多評論   

          能否給我一份算法或代碼,謝謝!
          shenyegh@scfast.com
          2007-06-10 18:44 | 小高

          # re: GIS 緩沖區應用及算法實現  回復  更多評論   

          fangkai@163.com

          # re: GIS 緩沖區應用及算法實現  回復  更多評論   

          想研究源代碼的朋友可以看看Geotools源代碼。
          2007-06-28 10:00 | Flyingis

          # re: GIS 緩沖區應用及算法實現  回復  更多評論   

          我用的是VC,不懂Java,現在急需實現緩沖區分析,不知有沒有詳細的算法或源碼
          2007-08-28 20:28 | jeo2007

          # re: GIS 緩沖區應用及算法實現  回復  更多評論   

          @jeo2007
          給你推薦一本書:《地理信息系統算法基礎》,科學出版社。
          2007-08-29 10:11 | Flyingis

          # re: GIS 緩沖區應用及算法實現  回復  更多評論   

          gujiacheng1@sohu.com
          萬分感謝
          2014-02-17 23:01 | SGu
          主站蜘蛛池模板: 云林县| 吐鲁番市| 岑巩县| 青铜峡市| 南通市| 交城县| 柳林县| 湾仔区| 沂南县| 关岭| 林州市| 宣汉县| 讷河市| 阆中市| 靖州| 卢龙县| 望江县| 阜宁县| 尤溪县| 胶南市| 长岛县| 卢氏县| 涟水县| 昆山市| 精河县| 顺义区| 紫阳县| 平南县| 鹰潭市| 红桥区| 武山县| 崇州市| 彭泽县| 无极县| 双峰县| 女性| 博兴县| 元谋县| 葫芦岛市| 武穴市| 石嘴山市|