需要 Spatial Analyst 许可。
摘要
基于逻辑查询提取栅格像元。
插图
用法
如果 Where 子句的求值结果是 True,则将为该像元位置返回初始输入值。如果其求值结果是 False,则将为像元位置指定 NoData。
Where 子句使用 SQL 查询。有关在查询构建器中创建查询的详细信息,请参阅以下主题:
要在 Python 中使用 {where_clause},应以引号括起来。例如,"Value > 5000"。
有关使用 Python 指定查询的详细信息,请参阅帮助。
对于输出栅格,将舍弃输入栅格中的所有额外项(值和计数除外)。
如果在查询中指定了除输入栅格的值以外的某一项,则将为此像元位置返回初始输入值。
当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进行相应分析。
默认输出格式为地理数据库栅格。如果输出格式指定为 Esri 格网栈,请注意名称不得以数字开头,不得使用空格且长度不能超过九个字符。
如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。
如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。
有关适用于此工具的地理处理环境的详细信息,请参阅分析环境和 Spatial Analyst。
语法
ExtractByAttributes (in_raster, where_clause)
参数 | 说明 | 数据类型 |
in_raster | 提取像元的输入栅格。 | Raster Layer |
where_clause | 用于选择栅格像元子集的逻辑表达式。 表达式遵循 SQL 表达式的一般格式。where_clause 的一个示例为 "VALUE > 100"。 | SQL Expression |
返回值
名称 | 说明 | 数据类型 |
out_raster | 包含从输入栅格中提取的像元值的输出栅格。 | Raster |
代码示例
按属性提取 (ExtractByAttributes) 示例 1(Python 窗口)
本示例将基于逻辑查询从栅格中提取像元,其中高程大于 1,000 米。
import arcpy
from arcpy import env
from arcpy.sa import *
env.workspace = "C:/sapyexamples/data"
attExtract = ExtractByAttributes("elevation", "VALUE > 1000")
attExtract.save("c:/sapyexamples/output/attextract")
按属性提取 (ExtractByAttributes) 示例 2(独立脚本)
本示例将基于逻辑查询从栅格中提取像元,其中高程大于 1,000 米。
# Name: ExtractByAttributes_Ex_02.py
# Description: Extracts the cells of a raster based on a logical query.
# 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 = "elevation"
inSQLClause = "VALUE > 1000"
# Check out the ArcGIS Spatial Analyst extension license
arcpy.CheckOutExtension("Spatial")
# Execute ExtractByAttributes
attExtract = ExtractByAttributes(inRaster, inSQLClause)
# Save the output
attExtract.save("c:/sapyexamples/output/attextract02")
环境
许可信息
- ArcGIS Desktop Basic: 需要 Spatial Analyst
- ArcGIS Desktop Standard: 需要 Spatial Analyst
- ArcGIS Desktop Advanced: 需要 Spatial Analyst