WOTable (arcpy.sa)

Резюме

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

Обсуждение

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

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

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

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

Синтаксис

WOTable (weightedOverlayTable, evaluationScale)
ПараметрОбъяснениеТип данных
weightedOverlayTable
[[inRaster, influence, field, remapTable],...]

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

  • @@@Таблица inRaster@@@  – Взвешиваемые критерии входного растра.
  • @@@Влияние (influence)@@@  – Влияние растра в сравнении с другими критериями(тип данных: @@@double@@@).
  • поле (field)  – Поле растра критерия для использования при взвешивании (тип данных: @@@string@@@).

Объекты таблицы перекодировки идентифицируют приведенные веса для критериев.

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

  • RESTRICTED – Присваивает значение @@@RESTRICTED@@@ ячейкам в выходе, независимо от того, имеют ли другие входные растры иное значение масштаба, назначенное этой ячейке.
  • NODATA – Назначает значение NoData ячейкам в выходе, независимо от того, имеют ли другие входные растры иное значение масштаба, назначенное этой ячейке.
List
evaluationScale
[from, to, by]

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

  • 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 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")

Связанные темы

9/11/2013