Взвешенная сумма (Spatial Analyst)
Краткая информация
Выполняет наложение нескольких растров, умножая каждый растр на заданный для него вес и складывая растры между собой.
Более подробно о том, как работает инструмент Взвешенная сумма
Рисунок
Использование
-
Простой способ сложить несколько растров между собой – выбрать в качестве входных данных несколько растров и установить все веса, равными 1.
-
Входные растры могут быть целочисленными, или они могут быть представлены значениями с плавающей точкой.
-
Значения весов могут быть любым положительным или отрицательными десятичными значениями. Они не ограничены процентами, и их сумма не должна равняться 1.0.
-
Вес будет применен к заданному полю входного растра. Поле может быть любого типа, короткое или длинное целое, двойной точности или с плавающей точкой.
-
По умолчанию, этот инструмент использует преимущества многоядерных процессоров. Максимальное число ядер, использующихся инструментом, 4.
Если вы хотите, чтобы инструмент использовал меньшее число ядер, измените параметр среды parallelProcessingFactor.
Синтаксис
Параметр | Объяснение | Тип данных |
in_rasters in_weighted_sum_table |
Инструмент Взвешенная сумма (Weighted Sum) выполняет наложение нескольких растров, умножая каждый растр на заданный для него вес и складывая растры между собой. Класс Наложение (Overlay) используется для определения таблицы. Объект WSTable используется для определения в Python списка входных растров и для взвешивания их соответственно. Форма объекта WSTable:
| WSTable |
Возвращено значение
Имя | Объяснение | Тип данных |
out_raster |
Выходной растр соответствия. Он будет иметь тип с плавающей точкой. | Raster |
Пример кода
В этом примере создается растр соответствия для расположения лыжного курорта путем комбинирования нескольких растров вместе и применения соответствующих факторов веса.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
# Execute WeightedSum
outWeightedSum = WeightedSum(WSTable([["snow", "VALUE", 0.25], ["land", "VALUE",0.25],
["soil", "VALUE", 0.5]]))
outWeightedSum.save("C:/sapyexamples/output/outwsum")
В этом примере создается растр соответствия для расположения лыжного курорта путем комбинирования нескольких растров вместе и применения соответствующих факторов веса.
# 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]])
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute WeightedSum
outWeightedSum = WeightedSum(WSumTableObj)
# Save the output
outWeightedSum.save("C:/sapyexamples/output/weightsumout")