In der Abbildung werden die Zellenwerte mit ihrem Gewichtungsfaktor multipliziert, und die Ergebnisse werden addiert, um das Ausgabe-Raster zu erstellen. Betrachten Sie beispielsweise die obere linke Zelle. Als Werte für die beiden Eingaben ergibt sich: (2,2 * 0,75) = 1,65 und (3 * 0,25) = 0,75. Die Summe von 1,65 und 0,75 beträgt 2,4.
Verwendung
Eine nützliche Möglichkeit, mehrere Raster hinzuzufügen, besteht darin, mehrere Raster einzugeben und alle Gewichtungen auf 1 festzulegen.
Eingabe-Raster können ganzzahlige oder Gleitkomma-Raster sein.
Als Gewichtungswerte kommen alle positiven oder negativen Dezimalwerte in Frage. Es besteht keine Einschränkung auf einen relativen Prozentsatz oder einen Wert gleich 1,0.
Die Gewichtung wird auf das angegebene Feld für das Eingabe-Raster angewendet. Felder können den Typ "Short Integer", "Long Integer", "Double" oder "Float" aufweisen.
Dieses Werkzeug verwendet standardmäßig Mehrkernprozessoren, wenn diese verfügbar sind. Es können maximal vier Kerne verwendet werden.
Mit der Tabelle der gewichteten Summe können Sie unterschiedliche Gewichtungen auf einzelne Eingabe-Raster anwenden, bevor sie summiert werden.
Raster: Das zu gewichtende Raster.
Feld: Das Feld des für die Gewichtung zu verwendenden Rasters.
Gewichtung: Der Gewichtungswert, mit dem das Raster multipliziert werden soll. Alle positiven oder negativen Dezimalwerte kommen in Frage.
WSTable
Rückgabewert
Beschriftung
Erläuterung
Datentyp
Ausgabe-Raster
Das gewichtete Ausgabe-Raster.
Es weist einen Gleitkommatyp auf.
Raster
WeightedSum(in_rasters)
Name
Erläuterung
Datentyp
in_rasters
Das Werkzeug Gewichtete Summe dient zum Überlagern mehrerer Raster, wobei jedes mit der jeweiligen Gewichtung multipliziert und anschließend die Summe gebildet wird.
Eine Overlay-Klasse wird verwendet, um die Tabelle zu definieren. Das Objekt WSTable wird verwendet, um eine Python-Liste der Eingabe-Raster anzugeben und sie entsprechend zu gewichten.
Das Objekt hat folgendes Format:
WSTable(weightedSumTable)
WSTable
Rückgabewert
Name
Erläuterung
Datentyp
out_raster
Das gewichtete Ausgabe-Raster.
Es weist einen Gleitkommatyp auf.
Raster
Codebeispiel
WeightedSum Beispiel 1 (Python-Fenster)
In diesem Beispiel wird ein Eignungs-Raster für die Suche nach einem Skigebiet erstellt, indem mehrere Raster kombiniert und geeignete Gewichtungsfaktoren angewendet werden.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
# Run WeightedSum
outWeightedSum = WeightedSum(WSTable([["snow", "VALUE", 0.25], ["land", "VALUE",0.25],
["soil", "VALUE", 0.5]]))
outWeightedSum.save("C:/sapyexamples/output/outwsum")
WeightedSum Beispiel 2 (eigenständiges Skript)
In diesem Beispiel wird ein Eignungs-Raster für die Suche nach einem Skigebiet erstellt, indem mehrere Raster kombiniert und geeignete Gewichtungsfaktoren angewendet werden.
# Name: WeightedSum_Ex_02.py
# Description: Overlays several rasters multiplying each by their given
# weight and summing them together.
# 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"
WSumTableObj = WSTable([[inRaster1, "VALUE", 0.25], [inRaster2, "VALUE", 0.25],
[inRaster3, "VALUE", 0.5]])
# Run WeightedSum
outWeightedSum = WeightedSum(WSumTableObj)
# Save the output
outWeightedSum.save("C:/sapyexamples/output/weightsumout")