logo资料库

ArcGIS教程:提取栅格像元.docx

第1页 / 共13页
第2页 / 共13页
第3页 / 共13页
第4页 / 共13页
第5页 / 共13页
第6页 / 共13页
第7页 / 共13页
第8页 / 共13页
资料共13页,剩余部分请下载后查看
ArcGIS教程:栅格像元的提取
地理国情监测云平台 ArcGIS 教程:栅格像元的提取 一、按属性提取 基于逻辑查询提取栅格像元。 摘要 插图 用法 · 如果 Where 子句的求值结果是 True,则将为该像元位置返回初始输入值。如果其求值结果是 False,则将为像元位置指定 NoData。 · 对于输出栅格,将舍弃输入栅格中的所有额外项(值和计数除外)。 · 如果在 Where 子句中指定了除输入栅格的值以外的某一项,则将为此像元位置返回初始输入值。 · 当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进 行相应分析。 默认输出格式是 Esri Grid 堆栈。请注意,Esri Grid 堆栈的名称不能以数字开头、不能使用空格, 并且长度不能超过 9 个字符。 · 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化) 的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。 · 如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。 语法 ExtractByAttributes (in_raster, where_clause) 参数 说明 数据类型 北京数字空间科技有限公司
地理国情监测云平台 in_raster 提取像元的输入栅格。 Raster Layer where_clause 用于选择栅格像元子集的逻辑表达式。 SQL Expression 表达式遵循 SQL 表达式的一般格式。 返回值 名称 说明 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") 北京数字空间科技有限公司
地理国情监测云平台 二、按圆形区域提取 摘要 用法 基于圆提取栅格像元。 · 可通过像元的中心来确定该像元是位于圆的内部还是位于圆的外部。如果中心位于圆弧的内部,则 即使部分像元落在圆外,也会将此像元视为完全处于圆内。 · 未选择的像元位置被赋予 NoData 值。 · 当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进 行相应分析。 默认输出格式是 Esri Grid 堆栈。请注意,Esri Grid 堆栈的名称不能以数字开头、不能使用空格, 并且长度不能超过 9 个字符。 · 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化) 的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。 · 如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。 语法 ExtractByCircle (in_raster, center_point, radius, {extraction_area}) 参数 说明 in_raster 提取像元的输入栅格。 数据类型 Raster Layer center_point 指示用于定义提取区域的圆的中心坐标 (x,y) 的点类。 Point 该类的形式为:  将指定坐标使用与输入栅格相同的地图单位。 Point (x, y) radius 用于定义提取区域的圆半径。 Double 将以地图单位指定半径,并且与输入栅格的单位相同。 extraction_area (可选) 标识要提取输入圆内部还是输入圆外部的像元。  INSIDE — 指定应选择输入圆内部的像元并将其写入输 String 出栅格的关键字。圆形区域外部的所有像元都将在输出栅格 中获得 NoData 值。  OUTSIDE — 指定应选择输入圆外部的像元并将其写入 输出栅格的关键字。圆形区域内部的所有像元都将在输出栅 格中获得 NoData 值。 返回值 北京数字空间科技有限公司
地理国情监测云平台 名称 说明 out_raster 包含提取像元值的输出栅格。 数据类型 Raster 代码实例 按圆形区域提取 (ExtractByCircle) 示例 1(Python 窗口) 本示例将在某一点位置方圆 500 米的半径范围内提取像元。 import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" outExtCircle = ExtractByCircle("elevation", arcpy.Point(482838.823, 222128.982), 500, "INSIDE") outExtCircle.save("c:/sapyexamples/output/extcircle") 按圆形区域提取 (ExtractByCircle) 示例 2(独立脚本) 本示例将在某一点位置方圆 1,000 米的半径范围内提取像元。 # Name: ExtractByCircle_Ex_02.py # Description: Extracts the cells of a raster based on a circle. # 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") centerPoint = arcpy.Point(482838.823, 222128.982) circRadius = 1000 extractType = "INSIDE" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute ExtractByCircle outExtCircle = ExtractByCircle(inRaster, centerPoint, circRadius, extractType) # Save the output outExtCircle.save("c:/sapyexamples/output/extcircle02") 三、按掩膜提取 北京数字空间科技有限公司
地理国情监测云平台 提取所定义掩膜区域内的栅格像元。 摘要 插图 用法 · 按掩膜提取工具与设置掩膜环境大体相同,但二者的区别在于输入掩膜只适用于即时实例,而在环 境中设置的掩膜可在发生更改或被禁用之前应用于所有工具。 · 当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进 行相应分析。 默认输出格式是 Esri Grid 堆栈。请注意,Esri Grid 堆栈的名称不能以数字开头、不能使用空格, 并且长度不能超过 9 个字符。 · 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化) 的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。 · 如果输入掩膜是栅格,则会将非 NoData 输入像元位置的值复制到输出栅格。可用来创建掩膜栅格 的工具包括条件函数、条件测试,以及提取分析工具集中的其他工具。 · 当为输入栅格掩膜指定多波段栅格时,将只在运算中使用第一个波段。 · 如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。 语法 ExtractByMask (in_raster, in_mask_data) 参数 说明 in_raster 提取像元的输入栅格。 数据类型 Raster Layer in_mask_data 用于定义提取区域的输入掩膜数据。 Raster Layer | Feature Layer 它可以是栅格或要素数据集。 当输入掩膜数据为栅格时,将在输出栅格中为掩膜数 北京数字空间科技有限公司
地理国情监测云平台 据中的 NoData 像元指定 NoData 值。 返回值 名称 说明 out_raster 包含提取像元值的输出栅格。 代码实例 数据类型 Raster 按掩膜提取 (ExtractByMask) 示例 1(Python 窗口) 本示例将从栅格内提取由输入面 shapefile 要素类所定义的掩膜内的像元。 import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" outExtractByMask = ExtractByMask("elevation", "mask.shp") outExtractByMask.save("C:/sapyexamples/output/maskextract") 按掩膜提取 (ExtractByMask) 示例 2(独立脚本) 本示例将从栅格内提取由输入面 shapefile 要素类所定义的掩膜内的像元。 # Name: ExtractByMask_Ex_02.py # Description: Extracts the cells of a raster that correspond with the areas # defined by a mask. # 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" inMaskData = "mask.shp" # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute ExtractByMask outExtractByMask = ExtractByMask(inRaster, inMaskData) # Save the output 北京数字空间科技有限公司
地理国情监测云平台 outExtractByMask.save("C:/sapyexamples/output/extractmask") 四、用点提取 摘要 用法 基于一组坐标点提取栅格像元。 · 未选择的像元位置被赋予 NoData 值。 · 当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进 行相应分析。 默认输出格式是 Esri Grid 堆栈。请注意,Esri Grid 堆栈的名称不能以数字开头、不能使用空格, 并且长度不能超过 9 个字符。 · 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化) 的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。 · 如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。 语法 ExtractByPoints (in_raster, points, {extraction_area}) 参数 说明 in_raster 提取像元的输入栅格。 数据类型 Raster Layer points [point,...] 点类对象的 Python 列表用于指示要提取栅格值的位置。 Point 点对象均在 x,y 坐标对列表中指定。对象形式为:  点所使用的地图单位与输入栅格相同。 [point(x1,y1), point(x2,y2),...] extraction_area 标识是基于指定点位置(内部)提取像元还是基于点位置外部(外部) String 提取像元。  INSIDE — 指定将所选点落入的像元写入输出栅格的关键字。 方框区域外部的所有像元都将在输出栅格中获得 NoData 值。  OUTSIDE — 指定应选择输入点外部的像元并将其写入输出栅 格的关键字。 (可选) 返回值 名称 说明 out_raster 包含提取像元值的输出栅格。 数据类型 Raster 北京数字空间科技有限公司
地理国情监测云平台 代码实例 用点提取 (ExtractByPoints) 示例 1(Python 窗口) 本示例将基于指定点坐标提取栅格的像元。 import arcpy from arcpy import env from arcpy.sa import * env.workspace = "C:/sapyexamples/data" pointList = [arcpy.Point(743050, 4321275), arcpy.Point(743100, 4321200), arcpy.Point(734500,4322000)] outPointExtract = ExtractByPoints("soil", pointList,"INSIDE") outPointExtract.save("c:/sapyexamples/output/pntextract") 用点提取 (ExtractByPoints) 示例 2(独立脚本) 本示例将基于指定点坐标提取栅格的像元。 # Name: ExtractByPoints_Ex_02.py # Description: Extracts the cells of a raster based on a set of points. # 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 = "soil" pointList = [arcpy.Point(743050, 4321275), arcpy.Point(743100, 4321200), arcpy.Point(743500, 4322000), arcpy.Point(742900, 4321800)] # Check out the ArcGIS Spatial Analyst extension license arcpy.CheckOutExtension("Spatial") # Execute ExtractByPoints outPointExtract = ExtractByPoints("soil", pointList,"INSIDE") # Save the output outPointExtract.save("c:/sapyexamples/output/pntext") 五、多边形提取 摘要 北京数字空间科技有限公司
分享到:
收藏