WOTable (arcpy.sa)
Резюме
Определяет входные растры, поле обозначающее входные значения, перекодировку их значений, вес каждого растра и шкалу оценку, которые будут использоваться в инструменте Weighted Overlay.
Обсуждение
Инструмент Взвешенная сумма (Weighted Sum) использует объект WOTable.
Для каждого значения во входном растре, заданном в объекте WOTable, инструмент Weighted Overlay задает новое значение на основе объекта перекодировки. Доступны два класса перекодировки: RemapValue и RemapRange. Но так как обычно объект WOTable работает с категорийными данными рекомендуется использовать для входных значений объект RemapValue.
В инструменте Weighted Overlay каждый входной растр в объекте WOTable взвешивается согласно его важности или проценту влияния, которые также задаются в этом объекте. Вес – это относительная доля, выраженная в процентах, и сумма процентов влияния должна быть равна 100 процентам.
Параметры «из», «в», «шкала оценки» не влияют на результаты вычислений, но являются обязательными входными параметрами.
Синтаксис
Параметр | Объяснение | Тип данных |
weightedOverlayTable [[inRaster, influence, field, remapTable],...] |
Таблица, определяющая входные растры, их влияние, поля, которые будут использоваться, а также таблицы перекодировки, определяющие, в какие значения следует перекодировать имеющиеся старые значения.
Объекты таблицы перекодировки идентифицируют приведенные веса для критериев. В дополнение к числовым значениям нормированных весов в таблице перекодировки доступны также следующие опции:
| List |
evaluationScale [from, to, by] |
Диапазон и интервал новых значений, в которые будет производиться перекодировка старых значений. @@@Параметр необходим и для диалогового окна, и для выполнения скрипта, но в скрипте он не проявляется.@@@
| List |
Свойства
Свойство | Объяснение | Тип данных |
weightedOverlayTable (чтение и запись) |
Содержит таблицу взвешенного наложения, определяющую перекодируемые растры, процент влияния каждого растра, перекодируемые и целевые значения. | List |
evaluationScale (чтение и запись) |
Диапазон и интервал новых значений, по которым будет производиться перекодировка старых значений. | List |
Пример кода
Иллюстрирует создание класса WOTable и его применение в инструменте WeightedOverlay в окне Python.
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
myWOTable = WOTable([["snow", 50, "VALUE", RemapValue([[0, 1], [1, 1], [5, 5],
[6, 6], [7, 7], [8, 8], [9, 9], ["NODATA", "NODATA"]])],
["land", 20, "VALUE", RemapValue([[0, 1], [1, 1], [5, 5],
[6, 6],[7, 7], [8, 8], [9, 9], ["NODATA", "NODATA"]])],
["soil", 30, "VALUE", RemapValue([[0, 1], [1, 1], [2, 2],
[3, 3], [4, 4], [5, 5], [6, 6], [7, 7], [8, 8], [9, 9],
["NODATA", "NODATA"]])]], [1, 9, 1])
outWeightedOverlay = WeightedOverlay(myWOTable)
outWeightedOverlay.save("C:/sapyexamples/output/woverlaytbl")
Выполняет анализ взвешенного наложения с использованием класса WOTable.
# Name: WOTable_Ex_02.py
# Description: Uses the WOTable object to execute WeightedOverlay tool.
# 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"
# Define WOTable
myWOTable = WOTable([[inRaster1, 50, "VALUE", RemapValue([[1, 1], [5, 5],
[6, 5], [7, 5], [8, 9], [9, 9], ["NODATA", "NODATA"]])],
[inRaster2, 20, "VALUE", RemapValue([[1, 1], [5, 5],
[6, 5], [7, 5], [8, 9], [9, 9], ["NODATA", "NODATA"]])],
[inRaster3, 30, "VALUE", RemapValue([[1, 1], [2, 1],
[3, 1], [4, 5], [5, 5], [6, 5], [7, 9], [8, 9], [9, 9],
["NODATA", "NODATA"]])]], [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/woverlaytbl2")