条件函数 (影像分析工具)
汇总
可对输入栅格的每个输入像元执行 if/else 条件评估。
插图

用法
如果真栅格数据或可选假栅格数据为浮点型,则输出栅格数据也将为浮点型。 如果真表达式和可选假栅格都为整型,则输出栅格将为整型。
如果输入条件栅格(Python 中的
in_conditional_raster)为单波段栅格,并且输入条件为真时所取的栅格数据或常量值(Python 中的in_true_raster_or_constant)栅格或可选输入条件为假时所取的栅格数据或常量值(Python 中的in_false_raster_or_constant)栅格为常量,则输出将为单波段栅格。如果所有输入都是多波段栅格,则输出将是多波段栅格。 如果真输入或可选的假输入为常量,则输出栅格也将是多波段的。 每个多波段输入中的波段数必须相同。
此工具将使用来自其他输入的相应波段在条件栅格的每个波段上执行操作。 如果条件输入是多波段栅格,并且真或假栅格输入是常量,则该工具将使用多波段输入中每个波段的常量值执行操作。
如果表达式的评估结果为非零,则视为真。
如果未指定输入假栅格或常量值,则对于表达式中非真的像元,将被分配值 NoData。
如果 NoData 不满足表达式,则像元不会接收输入条件为假时所取的栅格数据值;像元值仍是 NoData。
表达式使用 SQL 查询。 有关创建查询的详细信息,请参阅以下主题:
要在 Python 中使用 {where_clause},应将其置于引号中。 例如,"Value > 5000"。
有关在 Python 中指定查询的详细信息,请参阅相关帮助。
在 Python 中,您可以通过使用“地图代数”表达式作为
in_conditional_raster参数,来避免使用指定Value字段的 {where_clause}。例如,以下表达式:
Con("elev", 0, 1, "value > 1000")
可以重写如下:
Con(Raster("elev") > 1000, 0, 1)
有关详细信息,请参阅下列代码示例或在“地图代数”中查看构建复杂语句。
逻辑表达式的最大长度为 4,096 个字符。
如果至少有一个输入为具有相同数量变量的多维栅格数据,则该工具将对具有相同维度值的所有剖切片执行运算。 输出将是 CRF 格式的多维栅格。 输入中的变量必须至少具有一个常见维度和一个常见维度值以供此工具进行处理,否则将发生错误。
如果任意两个输入为多维栅格并共享一个变量(但名称不同),则请在运行工具之前取消选中匹配多维变量地理处理环境(在 Python 中设置
arcpy.env.matchMultidimensionalVariable = False)。如果输入条件栅格值是多维栅格,而输入条件为真时所取的栅格数据或常量值和输入条件为假时所取的栅格数据或常量值参数设置为常量值,则工具将使用常量值针对所有剖切片的所有变量执行运算,而输出将是多维栅格。
当输入栅格具有矩形像元时,将对其进行处理,以确保输出栅格像元将为正方形,其边长等于矩形像元长度和宽度的平均值。
参数
| 标注 | 说明 | 数据类型 |
|---|---|---|
|
输入条件栅格 |
此输入栅格表示所需条件的 true 或 false 结果。 可为整型或浮点型。 |
Raster Layer |
|
输入条件为真时所取的栅格数据或常量值 |
条件为 true 时,值将作为输出像元值的输入。 它可以是整型栅格、浮点型栅格或常量值。 |
Raster Layer; Constant |
|
输入条件为假时所取的栅格数据或常量值 (可选) |
条件为 false 时,值将作为输出像元值的输入。 它可以是整型栅格、浮点型栅格或常量值。 |
Raster Layer; Constant |
|
表达式 (可选) |
此逻辑表达式用于确定为 true 或 false 的输入像元。 Where 子句遵循 SQL 表达式的一般格式。 如果您单击编辑 SQL 模式按钮 |
SQL Expression |
返回值
| 标注 | 说明 | 数据类型 |
|---|---|---|
|
输出栅格 |
输出栅格。 |
Raster |
环境
自动提交, 像元大小, 像元大小投影方法, 压缩, 当前工作空间, 范围, 地理变换, 掩膜, 输出配置关键字, 输出坐标系, 临时工作空间, 捕捉栅格, 切片大小
许可信息
- 基本: 需要 Image Analyst 或 Spatial Analyst
- 标准: 需要 Image Analyst 或 Spatial Analyst
- 高级: 需要 Image Analyst 或 Spatial Analyst