ArcGIS Desktop

  • Документация
  • Поддержка

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS for Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Условие

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

  • Краткая информация
  • Иллюстрация
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензиях

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

Выполняет для каждой ячейки входного растра оценку по принципу условной выборки.

Более подробно о выполнении условной оценки с помощью инструмента Условие

Иллюстрация

Иллюстрация к инструменту Условие
OutRas = Con(InRas1, 40, 30, "Value >= 2")

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

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

  • Если оценка выражения отличается от нуля, она рассматривается как Истина.

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

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

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

    • Построение выражения запроса
    • Основы SQL для выражений запроса, применяемых в ArcGIS

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

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

  • В Python можно не использовать {where_clause}, которое определяет поле Value, а заменить его на выражение Алгебры карт, такое как in_conditional_raster.

    Например, такое выражение:

    • Con("elev", 0, 1, "value > 1000")

    можно переписать так:

    • Con(Raster("elev") > 1000, 0, 1)

    Для получения более подробной информации см. примеры кодов ниже или раздел Построение сложных выражений в Алгебре карт.

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

  • См. раздел Параметры среды анализа и Spatial Analyst для получения дополнительной информации о среде геообработки данного инструмента.

Синтаксис

Con (in_conditional_raster, in_true_raster_or_constant, {in_false_raster_or_constant}, {where_clause})
ПараметрОбъяснениеТип данных
in_conditional_raster

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

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

Raster Layer
in_true_raster_or_constant

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

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

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

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

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

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

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

Выражение следует за главной формой выражения SQL. Примером условия where_clause является условие "VALUE > 100".

SQL Expression

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

НазваниеОбъяснениеТип данных
out_raster

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

Raster

Пример кода

Con, пример 1 (окно Python)

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con("elevation", "elevation", "", "VALUE > 2000")
outCon.save("C:/sapyexamples/output/outcon.img")

# Execute Con using a map algebra expression instead of a where clause
outCon2 = Con(Raster("elevation") > 2000, "elevation")
outCon2.save("C:/sapyexamples/output/outcon2")
Con, пример 2 (окно Python)

В этом примере исходное значение будет сохранено в выходных данных, кроме значения «NoData», которое будет заменено на значение 0.

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
outCon = Con(IsNull("elevation"),0, "elevation")
outCon.save("C:/sapyexamples/output/outcon")
Con, пример 3 (окно Python)

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

import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
inRaster1 = Raster("landuse")
inRaster2 = Raster("landuse2")
outCon = Con(((inRaster1 == 1) & (inRaster2 == 5)), inRaster1 + inRaster2, 99)
outCon.save("C:/sapyexamples/output/outcon")
Con, пример 4 (окно Python)

В этом примере несколько инструментов Con используются внутри Con.

import arcpy
from arcpy import env
from arcpy.sa import *
arcpy.CheckOutExtension = "Spatial"
env.workspace = "C:/sapyexamples/data"
inRas1 = Raster("inRaster")
outCon = Con(inRas1 < 45,1, Con((inRas1 >= 45) & (inRas1 < 47),2, Con((inRas1 >= 47) & (inRas1 < 49),3, Con(inRas1 >= 49,4))))
outCon.save("C:/sapyexamples/output/outcon")
Con, пример 5 (автономный скрипт)

В этом примере, если значение входного условного растра больше или равно 1500, выходное значение будет 1, а если значение входного условного растра меньше 1500, выходное значение будет 0.

# Name: Con_Ex_02.py
# Description: Performs a conditional if/else evaluation 
#              on each cell of an input raster.
# 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 = Raster("elevation")
inTrueRaster = 1
inFalseConstant = 0
whereClause = "VALUE >= 1500"

# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")

# Execute Con
outCon = Con(inRaster, inTrueRaster, inFalseConstant, whereClause)

# Execute Con using a map algebra expression instead of a where clause
outCon2 = Con(inRaster >= 1500, inTrueRaster, inFalseConstant)

# Save the outputs 
outCon.save("C:/sapyexamples/output/outcon")
outCon2.save("C:/sapyexamples/output/outcon2")

Параметры среды

  • Автоподтверждение
  • Размер ячейки
  • Сжатие
  • Текущая рабочая область
  • Экстент
  • Географические преобразования
  • Маска
  • Выходное ключевое слово конфигурации
  • Выходная система координат
  • Временная рабочая область
  • Растр привязки
  • Размер листа

Информация о лицензиях

  • ArcGIS Desktop Basic: Требует Spatial Analyst
  • ArcGIS Desktop Standard: Требует Spatial Analyst
  • ArcGIS Desktop Advanced: Требует Spatial Analyst

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

  • Обзор группы инструментов Условие

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS Platform

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS for Developers
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог сотрудников
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2018 Esri. | Конфиденциальность | Правовая информация