Установить Null (Spatial Analyst)

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

Инструмент Установить ноль (Set Null) устанавливает идентифицированные ячейки на NoData на основании заданного критерия. Выдает значение NoData, если при выполнении оценки условия получено значение Истина, и выдает значение, определяемое другим растром, если получено значение Ложь.

Более подробно о присвоении ячейкам значений NoData с помощью инструмента Установить Null

Иллюстрация

Иллюстрация работы инструмента Установить Null
OutRas = SetNull(InRas1, InRas2, "Value = 4")

Использование

  • Если оценка выражения запроса истинна, ячейке на выходном растре будет присвоено значение NoData. Если оценка условия ложна, значения на выходном растре будут определены значением входного ложного растра или постоянным значением.

  • Если выражение запроса не определено, в тех случаях, когда значения растра условия не равны 0, значения выходного растра будут NoData.

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

  • Если Входной растр, удовлетворяющий условиям (in_conditional_raster в Python) является одноканальным, а Входной растр значения "ложь" или константа (in_false_raster_or_constant в Python) - константой, выходным будет одноканальный растр.

  • Если оба входных растров многоканальные, выходной растр также будет многоканальным. Выходной растр также будет многоканальным, если входной растр значения "ложь" является константой. Число каналов всех многоканальных растров должно быть одинаковым.

  • Инструмент выполнит операцию для каждого канала растра условия, используя соответствующий канал другого входного растра. Если растр условия многоканальный, а входной растр значения "ложь" - константа, инструмент выполнит операцию со значением константы для каждого канала многоканального растра.

  • Выражение использует SQL-запрос. Более подробно о создании запросов см. в следующих разделах:

  • Чтобы использовать в языке Python выражение условия {where_clause}, его следует заключить в кавычки. Например, "Value > 5000".

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

  • Максимальная длина логического выражения составляет 4096 знаков.

Параметры

ПодписьОписаниеТип данных
Входной растр, удовлетворяющий условиям

Входной растр, представляющий истинный или ложный результат заданного условия.

Может быть целочисленным или с плавающей точкой.

Raster Layer
Входной растр значения "ложь" или константа

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

Это может быть целочисленный растр, растр с плавающей точкой или константное значение.

Raster Layer; Constant
Выражение
(Дополнительный)

Логическое выражение, которое определяет, какие из входных ячеек имеют значения true или false.

Условие Where следует общим правилам построения выражений SQL. Его можно ввести напрямую, например, VALUE> 100, если нажать кнопку перехода в режим Редактирование SQL SQL-запрос. Если вы находитесь в Режиме редактирования условия Редактировать условие, вы можете начать построение выражения, нажав кнопку Режим Добавить условие.

SQL Expression

Возвращаемое значение

ПодписьОписаниеТип данных
Выходной растр

Выходной растр.

Если условная оценка – Истина, выдается значение NoData. Если Ложь, выдается значение второго входного растра.

Raster

SetNull(in_conditional_raster, in_false_raster_or_constant, {where_clause})
ИмяОписаниеТип данных
in_conditional_raster

Входной растр, представляющий истинный или ложный результат заданного условия.

Может быть целочисленным или с плавающей точкой.

Raster Layer
in_false_raster_or_constant

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

Это может быть целочисленный растр, растр с плавающей точкой или константное значение.

Raster Layer; Constant
where_clause
(Дополнительный)

Логическое выражение, которое определяет, какие из входных ячеек имеют значения true или false.

Выражение следует общим правилам построения выражений SQL. Примером where_clause может быть "VALUE> 100".

SQL Expression

Возвращаемое значение

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

Выходной растр.

Если условная оценка – Истина, выдается значение NoData. Если Ложь, выдается значение второго входного растра.

Raster

Пример кода

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

В этом примере любой входной ячейке со значением меньше 0 будет присвоено значение NoData в выходном растре, при этом все остальные ячейки сохранят свое исходное значение.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outSetNull = SetNull("elevation", "elevation", "VALUE < 0")
outSetNull.save("C:/sapyexamples/output/outsetnull.img")
SetNull, пример 2 (автономный скрипт)

В этом примере любой входной ячейке со значением, отличным от 7, будет присвоено значение NoData, а ячейкам со значением 7 будет присвоено значение 1 на выходном растре.

# Name: SetNull_Ex_02.py
# Description: Returns NoData if a conditional evaluation is 
#              true and returns the value specified by another
#              raster if it is false, on a cell-by-cell basis.
# 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
inRaster = "landclass"
inFalseRaster = 1
whereClause = "VALUE <> 7"

# Execute SetNull
outSetNull = SetNull(inRaster, inFalseRaster, whereClause)

# Save the output 
outSetNull.save("C:/sapyexamples/output/outsetnull")

Связанные разделы