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

Доступно с лицензией Spatial Analyst.

Доступно с лицензией Image 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")