Условная оценка с помощью инструмента Условие
Доступно с лицензией Spatial Analyst.
Доступно с лицензией Image Analyst.
Инструмент Условие позволяет контролировать выходное значение для каждой ячейки в зависимости от того, оценивается ли значение ячейки как Истина или как Ложь в заданном выражении условия.
Если ячейка оценивается как истина, ей будет присвоено одно значение. Если она оценивается как ложь, ей будет присвоено другое значение. Значения, которые будут присвоены ячейке, если она оценивается как истина, задаются параметром Входной растр значения "истина" или константа. Значения, которые будут присвоены ячейке, если она оценивается как ложь, задаются параметром Входной растр значения "ложь" или константа.
Концептуально, в процессе обработки инструмент Условие анализирует каждую ячейку и, основываясь на значении ячейки и условного выражения, определяет, оценивается ли ячейка как истина или как ложь. Если ячейка оценивается как истина, выходное значение для этого местоположения определяется в истинных входных данных. Если ячейка оценивается как ложь, выходное значение для этого местоположения определяется в ложных входных данных.
В среде геообработки определить, оценивается ли расположение ячейки как истина или как ложь можно двумя способами: по входному растру или по входному растру, к которому применяется дополнительное входное выражение. Если используется только входной растр, все ненулевые значения входного растра считаются истинными, а все нулевые значения – ложными. Ячейки, которым было присвоено значение NoData, в выходных данных также будут содержать значение NoData. NoData и Ложь — разные понятия.
Для создания входного растра, удовлетворяющего условиям, можно использовать несколько инструментов Spatial Analyst. В частности, могут использоваться логические инструменты в наборе Математические, где инструмент Тест особенно полезен.
Использование инструмента Условие в алгебре карт
Чтобы выполнить условную оценку на наборе растровых данных в алгебре карт, введите набор растровых данных как растр, удовлетворяющий условиям, в инструмент Условие. Введите истинный растр, чтобы задать значения, которые будут выдаваться, если условная оценка истинна. Введите ложный растр, чтобы задать значения, которые будут выдаваться, если условная оценка ложна. Параметр условия where определяет выражение, которое будет оцениваться с помощью входного условного растра.
Пример
Например, чтобы присвоить значение 10 (истинная постоянная) в качестве подходящего для строительства, и значение 1 (ложная постоянная) в качестве неподходящего на основе уклона в ячейке (определено входным растром, удовлетворяющим условию), где уклон менее 15 процентов считается подходящим, используйте выражение "VALUE < 15". Если уклон ячейки меньше 15 процентов, ей будет присвоено значение истина (в данном случае 10); в противном случае ей будет присвоено значение ложь (в данном случае 1).
OutRas = Con(SlopeRas, 10, 1, "VALUE < 15")
Использование сложных выражений с инструментом Условие в алгебре карт
В алгебре карт могут быть достигнуты дополнительные возможности с выражением, в отличие от простого логического условия. В сложном выражении у вас может быть, например, несколько отдельных выражений, которые вложены в сложное, вы можете задать несколько растров или использовать другие инструменты и операторы.
Любое корректное выражение алгебры карт, которое приводит к созданию растра, может использоваться в качестве аргумента для входных данных условного, истинного или ложного растров.
Параметр Выражение должен быть опущен, если входное выражения растра, удовлетворяющего условиям, используется в сложном выражении. В этом случае синтаксис инструмента Условие получает следующую генерализованную форму:
Con(in_conditional_raster, true_raster, {false_raster})
Параметр Выражение опускается, т.к. растр, удовлетворяющий условиям, вводится выражением алгебры карт, которое выдаст набор растровых данных, например, со значениями 0 и 1, если это была логическая операция.
Примеры
Ниже приведены примеры использования сложного выражения для выполнения условной оценки.
Ниже приведен пример использования сложного выражения в инструменте Условие:
OutRas = Con(InRas < 15, 10, 1)В приведенном выше выражении, если значение ячейки в
InRasменьше 15, ячейке выходного растра будет присвоено значение 10 (истина), в противном случае, значениям ячеек, которые больше или равны 15, в выходном растре будет присвоено значение 1 (ложь).Если для ложных выражений не задано значение или выражение, используйте следующее выражение:
OutRas = Con(InRas < 15, 10)Результаты будут аналогичными выходным данным выше за исключением ячеек со значением 15 или больше, которым будет присвоено значение NoData.
Вместо значения для аргументов
true_expressionиfalse_expressionможет использоваться любое корректное выражение.OutRas = Con(InRas1 > 5, Sin(InRas1), Cos(InRas1))В выражении выше вычисляются синус всех значений больше 5 и косинус всех значений, равных или меньших 5, и результаты отправляются в
OutRas.В инструменте Условие может использоваться несколько условных выражений, но каждое должно содержать значение или выражение
true_expression, которое может использоваться для присвоения значений выходным ячейкам, если результат оценки условия – истина. Может применяться исходное значение или выражениеfalse_expression, если ни один из результатов оценки условий не является истиной.OutRas = Con(InRas1 < 5, Sin(InRas1), Con(InRas1 < 20, Cos(InRas1), Con(InRas1 > 50, 100, 0)))В выражении выше вычисляется синус для значений, меньших 5, для значений, равных или больших 5 и меньших 20, вычисляется косинус, значениям, равным или большим 20, но меньшим или равным 50, присваивается 0, а значениям, большим 50, присваивается 100.
В условном выражении инструмента Условие может использоваться несколько условий.
OutRas = Con((InRas1 > 5) & (InRas1 < 10), 5, 100)В выражении выше, если входное значение из
InRas1больше 5 и меньше 10, местоположению назначается значение 5, в противном случае, — 100.В условном выражении к входным растрам могут применяться инструменты и операторы, и результаты оцениваются.
OutRas = Con(Sin(InRas1) > .5, 10, 100) OutRas2 = Con((InRas1 + InRas2) > 10, 100, 5) OutRas3 = Con(InRas1 > 5, Cos(InRas1), Sin(InRas1))Инструмент Условие может быть помещен в другой инструмент Условие.
OutRas = Con(InRas1 > 23, 5, Con(InRas1 > 20, 12, Con((InRas1 > 2) & (InRas1 < 17), Sin(InRas1), 100)))В условном выражении или в выражении может использоваться несколько растров для выполнения на ячейках.
OutRas = Con(InRas1 + InRas2 > 7, Sin(InRas1), Cos(InRas2)) OutRas2 = Con(InRas1 < 9, InRas1 * InRas2 + Tan(InRas3), Cos(InRas1))Возможны входные данные нескольких растров, т.к. Инструмент Условие оценивается для каждого местоположения ячейки x,y до перемещения к следующей ячейке. Если входными данными являются несколько растров, заданный оператор или инструмент будет работать по принципу «ячейка-за-ячейкой» между несколькими растрами.