На рисунке значения ячеек умножаются на их весовые коэффициенты, и результаты складываются между собой с целью создания выходного растра. Для примера рассмотрим верхнюю левую ячейку. Значения двух входных растров для этой ячейки будут равны (2.2 * 0.75) = 1.65 и (3 * 0.25) = 0.75. Сумма 1,5 и 0,75 равна 2,4.
Использование
Простой способ сложить несколько растров между собой – выбрать в качестве входных данных несколько растров и установить все веса, равными 1.
Входные растры могут быть целочисленными, или они могут быть представлены значениями с плавающей точкой.
Значения весов могут быть любым положительным или отрицательными десятичными значениями. Они не ограничены процентами, и их сумма не должна равняться 1.0.
Вес будет применен к заданному полю входного растра. Поле может быть любого типа, короткое или длинное целое, двойной точности или с плавающей точкой.
По умолчанию этот инструмент будет использовать многоядерные процессоры, если они доступны. Максимальное число использующихся ядер – четыре.
Таблица взвешенных сумм позволяет применять различные веса к отдельным входным растрам перед их суммированием.
Растр—растр, который будет взвешен.
Поле—поле растра, используемое для взвешивания.
Вес—значение веса, на которое умножается растр. Эти значения могут быть как положительными, так и отрицательными.
WSTable
Возвращаемое значение
Подпись
Объяснение
Тип данных
Выходной растр
Выходной взвешенный растр.
Он будет иметь тип с плавающей точкой.
Raster
WeightedSum(in_rasters)
Имя
Объяснение
Тип данных
in_rasters
Инструмент Взвешенная сумма выполняет наложение нескольких растров, умножая каждый растр на заданный для него вес и складывая растры между собой.
Класс Overlay используется для определения таблицы. Объект WSTable используется для определения в Python списка входных растров и для их соответствующего взвешивания.
Форма объекта:
— WSTable(weightedSumTable)
WSTable
Возвращаемое значение
Имя
Объяснение
Тип данных
out_raster
Выходной взвешенный растр.
Он будет иметь тип с плавающей точкой.
Raster
Пример кода
WeightedSum, пример 1 (окно Python)
В этом примере создается растр пригодности для расположения лыжного курорта путем комбинирования нескольких растров вместе и применения соответствующих весовых коэффициентов.
import arcpy
from arcpy import env
from arcpy.ia import *
env.workspace = "C:/data"
# Run WeightedSum
outWeightedSum = WeightedSum("snow VALUE 0.25;land VALUE 0.25;soil VALUE 0.5")
outWeightedSum.save("C:/output/outwsum")
WeightedSum, пример 2 (автономный скрипт)
В этом примере создается растр пригодности для расположения лыжного курорта путем комбинирования нескольких растров вместе и применения соответствующих весовых коэффициентов.
# Name: WeightedSum_Ex_02.py
# Description: Overlays several rasters multiplying each by their given
# weight and summing them together.
# Import system modules
import arcpy
from arcpy import env
from arcpy.ia import *
# Set environment settings
env.workspace = "C:/iapyexamples/data"
wstable = "c:\\test\\Clip_dem.tif VALUE 50;c:\\test\\Clip_aspect.tif VALUE 50"
# Run WeightedSum
outWeightedSum = WeightedSum(wstable)
# Save the output
outWeightedSum.save("C:/iapyexamples/output/weightsumout")