ArcGIS教程:加權疊加


  摘要

  使用經常使用測量比例疊加多個柵格數據,並依據各柵格數據的重要性分配權重。

  插圖

  

  插圖中,兩個輸入柵格已又一次分類為 1 至 3 三種公共測量級別。為每一個柵格均分配了一個影響百分比。這些像元值與其影響百分比相乘,兩者所得結果相加創建輸出柵格。以左上角像元為例。

這兩個輸入的值變為 (2 * 0.75) = 1.5 與 (3 * 0.25) = 0.75。1.5 和 0.75 的和為2.25。

由於加權疊加獲得的輸出柵格為整數,所以終於值取整為 2。

  使用方法

  · 全部輸入柵格數據必須為整型。

浮點型柵格數據要先轉換為整型柵格數據,然后才干在加權疊加中使用。

重分類工具是運行換轉的有效方法。

  · 依據評估等級為輸入柵格中的各個值類分配一個新值。這些新值是原始輸入柵格值的重分類。

對於要從分析中排除的區域,將使用受限值。

  · 依據各個輸入柵格數據的重要性或者影響力百分比對其進行加權。

權重是相對百分比,而且影響力百分比權重的總和必須等於 100。

  · 通過更改評估等級或影響力百分比能夠改變加權疊加分析的結果。

  代碼實例

  WeightedOverlay 演示樣例 1(Python 窗體)

  本演示樣例創建的適宜性 IMG 柵格能識別出可作為滑雪區域的位置。

  import arcpy

  from arcpy import env

  from arcpy.sa import *

  env.workspace = "C:/sapyexamples/data"

  outsuit = WeightedOverlay(WOTable(

  [

  ["snow", 50, 'VALUE', RemapValue([[1,"Nodata"],[5,3],[9,10],["NODATA","NODATA"]])],

  ["land", 20, '', RemapValue([["water","1"],["forest",5],["open field",9],["NODATA", "NODATA"]])],

  ["soil", 30, 'VALUE', RemapValue([[1,"Restricted"],[5,5],[7,7],[9,9],["NODATA", "Restricted"]])]

  ],[1,9,1]))

  outsuit.save("C:/sapyexamples/output/outsuit.img")

  WeightedOverlay 演示樣例 2(獨立腳本)

  本演示樣例創建的適宜性 IMG 柵格能識別出可作為滑雪區域的位置。

  # Name: WeightedOverlay_Ex_02.py

  # Description: Overlays several rasters using a common scale and weighing

  # each according to its importance.

  # Requirements: Spatial Analyst Extension

  # Import system modules

  import arcpy

  from arcpy import env

  from arcpy.sa import *

  # Set environment settings

  env.workspace = "C:/sapyexamples/data"

  # Set local variables

  inRaster1 = "snow"

  inRaster2 = "land"

  inRaster3 = "soil"

  remapsnow = RemapValue([[0,1],[1,1],[5,5],[9,9],["NODATA","NODATA"]])

  remapland = RemapValue([[1,1],[5,5],[6,6],[7,7],[8,8],[9,9],["NODATA","Restricted"]])

  remapsoil = RemapValue([[0,1],[1,1],[5,5],[6,6],[7,7],[8,8],[9,9],["NODATA", "NODATA"]])

  myWOTable = WOTable([[inRaster1, 50, "VALUE", remapsnow],

  [inRaster2, 20, "VALUE", remapland],

  [inRaster3, 30, "VALUE", remapsoil]

  ], [1, 9, 1])

  # Check out the ArcGIS Spatial Analyst extension license

  arcpy.CheckOutExtension("Spatial")

  # Execute WeightedOverlay

  outWeightedOverlay = WeightedOverlay(myWOTable)

  # Save the output

  outWeightedOverlay.save("C:/sapyexamples/output/weightover2")


免責聲明!

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



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