ArcPy条件分析工具集

条件分析工具集

“条件分析”工具允许您基于在输入值上应用的条件对输出值进行控制。可应用的条件有两种类型,分别是对属性的查询或基于列表中条件语句位置的条件。

工具 说明
条件函数 针对输入栅格的每个输入像元执行 if/else 条件评估。
选取函数 位置栅格数据的值用于确定要从输入栅格列表中的哪一个栅格获取输出像元值。
设为空函数 “设为空函数”根据指定条件将所识别的像元位置设置为 NoData。如果条件评估为真,则返回 NoData;如果条件评估为假,则返回由另一个栅格指定的值。

一、条件函数 (空间分析)

针对输入栅格的每个输入像元执行 if/else 条件评估。

插图

使用方法

  • 如果真栅格数据或可选假栅格数据为浮点型,则输出栅格数据也将为浮点型。如果真表达式和可选假栅格数据均为整型,则输出栅格数据也将为整型。

  • 如果表达式的评估结果非零,则将被视为 True。

  • 如果未指定输入条件为假时所取的栅格数据或常量值,则将为表达式结果不为 True 的那些像元分配 NoData。

  • 如果 NoData 不满足表达式,则像元不会接收输入条件为假时所取的栅格数据值;像元值仍是 NoData。

  • 表达式使用 SQL 查询。

  • 要在 Python 中使用 {where_clause},应以引号括起来。例如,"Value > 5000"。

  • 在 Python 中,您可避免使用 {where_clause},其通过将地图代数表达式用作 in_conditional_raster 来指定 Value 字段。

    例如,以下表达式:

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

    可被重写为:

    • Con(Raster("elev") > 1000, 0, 1)
  • 逻辑表达式的最大长度为 4,096 个字符。

语法

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

二、选取函数 (空间分析)

位置栅格数据的值用于确定要从输入栅格列表中的哪一个栅格获取输出像元值。

插图

使用方法

  • 位置栅格的每个像元的值用于确定要使用哪一个输入获取输出栅格数据值。例如,如果位置栅格中的一个像元的值为 1,则将栅格列表中第一个输入的值用于输出像元值。如果位置输入的值为 2,则输出值将来自栅格列表中的第二个输入,依此类推。
  • 输入列表的顺序对此工具很重要。如果栅格的顺序发生变化,结果也将随之改变。
  • 如果位置栅格中的像元值为零或负数,结果将为 NoData。如果位置值大于列表中的栅格数目,结果将为 NoData。
  • 如果位置栅格是浮点型,则处理这些值之前将其截断为整型。
  • 在位置栅格上值为 NoData 的任何像元在输出栅格上都将接收 NoData。
  • 如果输入列表中有任何栅格是浮点型,输出栅格将为浮点型。如果它们都是整型,则输出栅格将为整型。

语法

Pick(in_position_raster, in_rasters_or_constants)

参数 说明 数据类型
in_position_raster 定义要用于输出值的栅格位置的输入栅格。 输入可以是整型或浮点型栅格。 Raster Layer
in_rasters_or_constants [in_raster_or_constant,...] 将从中选择输出值的输入的列表。 输入可以是整型栅格或浮点型栅格。也可使用数字作为输入。 Raster Layer; Constant

返回值

名称 说明 数据类型
out_raster 输出栅格。 Raster

三、设为空函数 (空间分析)

“设为空函数”根据指定条件将所识别的像元位置设置为 NoData。如果条件评估为真,则返回 NoData;如果条件评估为假,则返回由另一个栅格指定的值。

插图

使用方法

  • 如果 where 子句的评估结果为真,则为输出栅格上的像元位置赋予 NoData。如果评估结果为假,则输出栅格将由输入条件为假时所取的栅格数据或常量值进行定义。
  • 如果未指定 where 子句,则只要条件栅格不为 0,输出栅格就具有 NoData。
  • 输入条件栅格不会影响输出数据类型是整型还是浮点型。如果输入条件为假时所取的栅格数据(或常量值)包含浮点值,则输出栅格数据将为浮点型。如果其中包含所有整数值,则输出将为整型栅格。
  • 表达式使用 SQL 查询。
  • 要在 Python 中使用 {where_clause},应以引号括起来。例如,"Value > 5000"。
  • 逻辑表达式的最大长度为 4,096 个字符。

语法

SetNull(in_conditional_raster, in_false_raster_or_constant, {where_clause})

参数 说明 数据类型
in_conditional_raster 表示所需条件结果为真或假的输入栅格。 可以是整型或浮点型。 Raster Layer
in_false_raster_or_constant 条件为假时,其值作为输出像元值的输入。 可为整型或浮点型栅格,或为常数值。 Raster Layer; Constant
where_clause (可选) 决定输入像元为真或假的逻辑表达式。 表达式遵循 SQL 表达式的一般格式。where_clause 的一个示例为 "VALUE > 100"。 SQL Expression

返回值

名称 说明 数据类型
out_raster 输出栅格。 如果条件评估为真,则返回 NoData。如果为假,则返回第二个输入栅格的值。 Raster
posted @ 2021-10-19 22:00  槑孒  阅读(225)  评论(0编辑  收藏  举报