Skip to main content

WOTable

Краткая информация

Определяет входные растры, поле обозначающее входные значения, перекодировку их значений, вес каждого растра и шкалу оценку, которые будут использоваться в инструменте Weighted Overlay.

Обсуждение

Инструмент Взвешенная сумма (Weighted Sum) использует объект WOTable.

Для каждого значения во входном растре, заданном в объекте WOTable, инструмент Weighted Overlay задает новое значение на основе объекта перекодировки. Доступны два класса перекодировки: RemapValue и RemapRange. Но так как обычно объект WOTable работает с категорийными данными рекомендуется использовать для входных значений объект RemapValue.

В инструменте Weighted Overlay каждый входной растр в объекте WOTable взвешивается согласно его важности или проценту влияния, которые также задаются в этом объекте. Вес – это относительная доля, выраженная в процентах, и сумма процентов влияния должна быть равна 100 процентам.

Параметры «из», «в», «шкала оценки» не влияют на результаты вычислений, но являются обязательными входными параметрами.

Синтаксис

WOTable(weightedOverlayTable, evaluationScale)

Имя Объяснение Тип данных

weightedOverlayTable

Таблица, определяющая входные растры, их влияние, поля, которые будут использоваться, а также таблицы перекодировки, определяющие, в какие значения следует перекодировать имеющиеся старые значения.

  • @@@Таблица inRaster@@@ – Взвешиваемые критерии входного растра.

  • @@@Влияние (influence)@@@ – Влияние растра в сравнении с другими критериями(тип данных: @@@double@@@).

  • поле (field) – Поле растра критерия для использования при взвешивании (тип данных: @@@string@@@).

  • Remap – объект Remap идентифицирует нормированные веса для критерия input.

В дополнение к числовым значениям нормированных весов в таблице перекодировки доступны также следующие опции:

  • RESTRICTED – Присваивает значение @@@RESTRICTED@@@ ячейкам в выходе, независимо от того, имеют ли другие входные растры иное значение масштаба, назначенное этой ячейке.

  • NODATA – Назначает значение NoData ячейкам в выходе, независимо от того, имеют ли другие входные растры иное значение масштаба, назначенное этой ячейке.

List

evaluationScale

Диапазон и интервал новых значений, в которые будет производиться перекодировка старых значений. @@@Параметр необходим и для диалогового окна, и для выполнения скрипта, но в скрипте он не проявляется.@@@

  • from – минимальное значение, используемое для новых значений (тип данных: @@@double@@@).

  • to – максимальное значение, используемое для новых данных (тип данных: @@@double@@@).

  • by – интервал между новыми перекодированными данными (тип данных: @@@double@@@).

List

Свойства

Имя Объяснение Тип данных

weightedOverlayTable

(Чтение / Запись)

Содержит таблицу взвешенного наложения, определяющую перекодируемые растры, процент влияния каждого растра, перекодируемые и целевые значения.

List

evaluationScale

(Чтение / Запись)

Диапазон и интервал новых значений, по которым будет производиться перекодировка старых значений.

List

Пример кода

WOTable. Пример 1 (окно Python)

Иллюстрирует создание класса 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. Пример 2 (автономный скрипт)

Выполняет анализ взвешенного наложения с использованием класса WOTable.

# Name: WOTable_Ex_02.py
# Description: Uses the WOTable object to run 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])

# Run WeightedOverlay
outWeightedOverlay = WeightedOverlay(myWOTable)

# Save the output
outWeightedOverlay.save("C:/sapyexamples/output/woverlaytbl2")