Условная оценка с помощью инструмента Условие

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

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

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

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

Концептуально, в процессе обработки инструмент Условие (Con) анализирует каждую ячейку и, основываясь на значении ячейки и высказывании условия, определяет, оценивается ли ячейка как Истина или как Ложь. Если ячейка оценивается как Истина, выходное значение для этого местоположения определяется в истинных входных данных. Если ячейка оценивается как Ложь, выходное значение для этого местоположения определяется в ложных входных данных.

В среде геообработки определить, оценивается ли расположение ячейки как Истина или как Ложь можно двумя способами: по входному растру или по входному растру, к которому применяется дополнительное входное выражение. Если используется только входной растр, все ненулевые значения входного растра считаются истинными, а все нулевые значения – ложными. Ячейки, которым было присвоено значение NoData, на выходных данных также будут иметь значение NoData. NoData и Ложь - разные понятия.

Для создания входного растра условия можно использовать несколько инструментов Spatial Analyst. В частности, могут использоваться логические инструменты в наборе Математические, где инструмент Критерий особенно полезен.

Использование инструмента Условие (Con) в алгебре карт

Чтобы выполнить условную оценку на наборе растровых данных в алгебре карт, введите набор растровых данных как растр условия в инструмент Условие (Con). Введите истинный растр, чтобы задать значения, которые будут выдаваться, если условная оценка истинна. Введите ложный растр, чтобы задать значения, которые будут выдаваться, если условная оценка ложна. Параметр выражения «где?» определяет выражение, которое будет оцениваться с помощью входного условного растра.

Пример

Например, чтобы присвоить значение 10 (истинная постоянная) как подходящее для строительства, и значение 1 (ложная постоянная) как неподходящее для строительства на основе уклона в ячейке (определено входным растром условия), где уклон менее 15 процентов считается подходящим, используйте выражение "VALUE < 15". Если уклон ячейки меньше 15 процентов, ей будет присвоено значение Истина (в данном случае 10); в противном случае ей будет присвоено значение Ложь (в данном случае 1).

OutRas = Con(SlopeRas, 10, 1, "VALUE < 15")

Использование сложных выражений с инструментом Условие (Con) в алгебре карт

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

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

Параметр Выражение должен быть опущен, если входное выражения условного растра используется в сложном выражении. В этом случае синтаксис инструмента Условие (Con) берет следующую генерализованную форму:

Con(in_conditional_raster, true_raster, {false_raster})

Параметр Выражение опускается, т.к. условный растр предоставляется выражением алгебры карт, которое выдаст набор растровых данных, например, со значениями 0 и 1, если это была логическая операция.

Примеры

Ниже приведены примеры использования сложного выражения для выполнения условной оценки.

  • Ниже приведен пример использования сложного выражения в инструменте Условие (Con):
    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.
  • В инструменте Условие (Con) может использоваться несколько условных выражений, но каждое должно иметь значение или выражение 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.
  • В условном выражении инструмента Условие (Con) может использоваться несколько условий.
    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))
  • Инструмент Условие (Con) может быть помещен в другой инструмент Условие (Con).
    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))
    Возможны входные данные нескольких растров, т.к. Инструмент Условие (Con) оценивается для каждого местоположения ячейки x,y до перемещения к следующей ячейке. Если входными данными являются несколько растров, заданный оператор или инструмент будет работать по принципу «ячейка-за-ячейкой» между несколькими растрами.

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