1、ArcGIS教程提取栅格像元几种方式ArcGIS教程:栅格像元的提取一、按属性提取摘要基于逻辑查询提取栅格像元。插图用法 如果 Where 子句的求值结果是 True,则将为该像元位置返回初始输入值。如果其求值结果是 False,则将为像元位置指定 NoData。 对于输出栅格,将舍弃输入栅格中的所有额外项(值和计数除外)。 如果在 Where 子句中指定了除输入栅格的值以外的某一项,则将为此像元位置返回初始输入值。 当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进行相应分析。默认输出格式是 Esri Grid 堆栈。请注意,Esri Grid 堆栈的名称
2、不能以数字开头、不能使用空格,并且长度不能超过 9个字符。 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。 如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。语法ExtractByAttributes (in_raster, where_clause)参数说明数据类型in_raster提取像元的输入栅格。Raster Layerwhere_clause用于选择栅格像元子集的逻辑表达式。表达式遵循SQL表达式的一般格式。SQL
3、Expression返回值名称说明数据类型out_raster包含提取像元值的输出栅格。Raster代码实例按属性提取 (ExtractByAttributes) 示例 1(Python 窗口)本示例将基于逻辑查询从栅格中提取像元,其中高程大于 1,000 米。importarcpyfromarcpyimportenvfromarcpy.saimport*env.workspace =C:/sapyexamples/dataattExtract = ExtractByAttributes(elevation,VALUE 1000)attExtract.save(c:/sapyexamples/
4、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 modulesimportarcpyfromarcpyimportenvfromarcpy
5、.saimport*# Set environment settingsenv.workspace =C:/sapyexamples/data# Set local variablesinRaster =elevationinSQLClause =VALUE 1000# Check out the ArcGIS Spatial Analyst extension licensearcpy.CheckOutExtension(Spatial)# Execute ExtractByAttributesattExtract = ExtractByAttributes(inRaster, inSQLC
6、lause)# Save the outputattExtract.save(c:/sapyexamples/output/attextract02)二、按圆形区域提取摘要基于圆提取栅格像元。用法 可通过像元的中心来确定该像元是位于圆的内部还是位于圆的外部。如果中心位于圆弧的内部,则即使部分像元落在圆外,也会将此像元视为完全处于圆内。 未选择的像元位置被赋予 NoData 值。 当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进行相应分析。默认输出格式是 Esri Grid 堆栈。请注意,Esri Grid 堆栈的名称不能以数字开头、不能使用空格,并且长度不
7、能超过 9个字符。 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。 如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。语法ExtractByCircle (in_raster, center_point, radius, extraction_area)参数说明数据类型in_raster提取像元的输入栅格。Raster Layercenter_point指示用于定义提取区域的圆的中心坐标(x,y)的点类。该类的形式为:Poin
8、t (x, y)将指定坐标使用与输入栅格相同的地图单位。Pointradius用于定义提取区域的圆半径。将以地图单位指定半径,并且与输入栅格的单位相同。Doubleextraction_area(可选)标识要提取输入圆内部还是输入圆外部的像元。INSIDE指定应选择输入圆内部的像元并将其写入输出栅格的关键字。圆形区域外部的所有像元都将在输出栅格中获得NoData值。OUTSIDE指定应选择输入圆外部的像元并将其写入输出栅格的关键字。圆形区域内部的所有像元都将在输出栅格中获得NoData值。String返回值名称说明数据类型out_raster包含提取像元值的输出栅格。Raster代码实例按圆形
9、区域提取 (ExtractByCircle) 示例 1(Python 窗口)本示例将在某一点位置方圆 500 米的半径范围内提取像元。importarcpyfromarcpyimportenvfromarcpy.saimport*env.workspace =C:/sapyexamples/dataoutExtCircle = ExtractByCircle(elevation, arcpy.Point(482838.823,222128.982), 500,INSIDE)outExtCircle.save(c:/sapyexamples/output/extcircle)按圆形区域提取 (E
10、xtractByCircle) 示例 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 modulesimportarcpyfromarcpyimportenvfromarcpy.saimport*# Set environment settingsenv.works
11、pace =C:/sapyexamples/data# Set local variablesinRaster = (elevation)centerPoint = arcpy.Point(482838.823,222128.982)circRadius =1000extractType =INSIDE# Check out the ArcGIS Spatial Analyst extension licensearcpy.CheckOutExtension(Spatial)# Execute ExtractByCircleoutExtCircle = ExtractByCircle(inRa
12、ster, centerPoint, circRadius, extractType)# Save the outputoutExtCircle.save(c:/sapyexamples/output/extcircle02)三、按掩膜提取摘要提取所定义掩膜区域内的栅格像元。插图用法 按掩膜提取工具与设置掩膜环境大体相同,但二者的区别在于输入掩膜只适用于即时实例,而在环境中设置的掩膜可在发生更改或被禁用之前应用于所有工具。 当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进行相应分析。默认输出格式是 Esri Grid 堆栈。请注意,Esri Grid 堆栈
13、的名称不能以数字开头、不能使用空格,并且长度不能超过 9个字符。 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。 如果输入掩膜是栅格,则会将非 NoData 输入像元位置的值复制到输出栅格。可用来创建掩膜栅格的工具包括条件函数、条件测试,以及提取分析工具集中的其他工具。 当为输入栅格掩膜指定多波段栅格时,将只在运算中使用第一个波段。 如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。语法ExtractByMask (in_ra
14、ster, in_mask_data)参数说明数据类型in_raster提取像元的输入栅格。Raster Layerin_mask_data用于定义提取区域的输入掩膜数据。它可以是栅格或要素数据集。当输入掩膜数据为栅格时,将在输出栅格中为掩膜数据中的NoData像元指定NoData值。Raster Layer | Feature Layer返回值名称说明数据类型out_raster包含提取像元值的输出栅格。Raster代码实例按掩膜提取 (ExtractByMask) 示例 1(Python 窗口)本示例将从栅格内提取由输入面 shapefile 要素类所定义的掩膜内的像元。importarc
15、pyfromarcpyimportenvfromarcpy.saimport*env.workspace =C:/sapyexamples/dataoutExtractByMask = ExtractByMask(elevation,mask.shp)outExtractByMask.save(C:/sapyexamples/output/maskextract)按掩膜提取 (ExtractByMask) 示例 2(独立脚本)本示例将从栅格内提取由输入面 shapefile 要素类所定义的掩膜内的像元。# Name: ExtractByMask_Ex_02.py# Description: E
16、xtracts the cells of a raster that correspond with the areas# defined by a mask.# Requirements: Spatial Analyst Extension# Import system modulesimportarcpyfromarcpyimportenvfromarcpy.saimport*# Set environment settingsenv.workspace =C:/sapyexamples/data# Set local variablesinRaster =elevationinMaskD
17、ata =mask.shp# Check out the ArcGIS Spatial Analyst extension licensearcpy.CheckOutExtension(Spatial)# Execute ExtractByMaskoutExtractByMask = ExtractByMask(inRaster, inMaskData)# Save the outputoutExtractByMask.save(C:/sapyexamples/output/extractmask)四、用点提取摘要基于一组坐标点提取栅格像元。用法 未选择的像元位置被赋予 NoData 值。 当
18、输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进行相应分析。默认输出格式是 Esri Grid 堆栈。请注意,Esri Grid 堆栈的名称不能以数字开头、不能使用空格,并且长度不能超过 9个字符。 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。 如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。语法ExtractByPoints (in_raster, points, extraction
19、_area)参数说明数据类型in_raster提取像元的输入栅格。Raster Layerpointspoint,.点类对象的Python列表用于指示要提取栅格值的位置。点对象均在x,y坐标对列表中指定。对象形式为:point(x1,y1), point(x2,y2),.点所使用的地图单位与输入栅格相同。Pointextraction_area(可选)标识是基于指定点位置(内部)提取像元还是基于点位置外部(外部)提取像元。INSIDE指定将所选点落入的像元写入输出栅格的关键字。方框区域外部的所有像元都将在输出栅格中获得NoData值。OUTSIDE指定应选择输入点外部的像元并将其写入输出栅格的
20、关键字。String返回值名称说明数据类型out_raster包含提取像元值的输出栅格。Raster代码实例用点提取 (ExtractByPoints) 示例 1(Python 窗口)本示例将基于指定点坐标提取栅格的像元。importarcpyfromarcpyimportenvfromarcpy.saimport*env.workspace =C:/sapyexamples/datapointList = arcpy.Point(743050,4321275), arcpy.Point(743100,4321200), arcpy.Point(734500,4322000)outPointE
21、xtract = 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#
22、 Import system modulesimportarcpyfromarcpyimportenvfromarcpy.saimport*# Set environment settingsenv.workspace =C:/sapyexamples/data# Set local variablesinRaster =soilpointList = arcpy.Point(743050,4321275), arcpy.Point(743100,4321200), arcpy.Point(743500,4322000), arcpy.Point(742900,4321800)# Check
23、out the ArcGIS Spatial Analyst extension licensearcpy.CheckOutExtension(Spatial)# Execute ExtractByPointsoutPointExtract = ExtractByPoints(soil, pointList,INSIDE)# Save the outputoutPointExtract.save(c:/sapyexamples/output/pntext)五、多边形提取摘要基于多边形提取栅格像元。用法 若要基于要素类中的多边形提取像元,而不是提供一系列 x,y 坐标对,则可以使用按掩膜提取工具
24、。 可通过像元的中心来确定该像元是位于多边形的内部还是多边形的外部。如果中心位于多边形弧的内部,则即使部分像元落在多边形之外,也会将此像元视为完全处于多边形之内。 多边形最多可以有 1,000 个折点。多边形折点必须按顺时针顺序输入。如果要使用多个多边形,则第一个折点和最后一个折点必须相同,以使多边形闭合。如果最后的点不相同,多边形将自动闭合。多边形的弧之间可以相交,但不建议您使用过于复杂的多边形。 未选择的像元位置被赋予 NoData 值。 当输入为多波段栅格时,将输出一个新的多波段栅格。对输入多波段栅格中的每一单个波段都会进行相应分析。默认输出格式是 Esri Grid 堆栈。请注意,Es
25、ri Grid 堆栈的名称不能以数字开头、不能使用空格,并且长度不能超过 9个字符。 如果输入内容为根据多波段栅格(超过三个波段)创建的图层,提取操作将只考虑图层加载(符号化)的波段。因此,输出的多波段栅格只会具有三个波段,分别对应于输入图层显示中使用的多波段栅格。 如果输入栅格为整型,那么输出栅格也为整型。如果输入栅格为浮点型,则输出栅格也为浮点型。语法ExtractByPolygon (in_raster, polygon, extraction_area)参数说明数据类型in_raster提取像元的输入栅格。Raster Layerpolygonpoint,.用于定义要提取的输入栅格区域
26、的一个或多个多边形。每个多边形部分都是由点类定义的一系列折点。作为可选的,可使用多边形类来定义各个多边形部分。点将指定为x,y坐标对。对象形式为:point(x1,y1), point(x2,y2),point(xn,yn),.point(x1,y1), point(x1,y1), point(x2,y2),point(xn,yn),.,point(x1,y1)请注意,最后一个坐标应与第一个坐标相同,从而使多边形闭合。Pointextraction_area(可选)标识要提取输入多边形内部还是输入多边形外部的像元。INSIDE指定应选择输入多边形内部的像元并将其写入输出栅格的关键字。多边形区域
27、外部的所有像元都将在输出栅格中获得NoData值。OUTSIDE指定应选择输入多边形外部的像元并将其写入输出栅格的关键字。多边形区域内部的所有像元都将在输出栅格中获得NoData值。String返回值名称说明数据类型out_raster包含提取像元值的输出栅格。Raster代码实例多边形提取 (ExtractByPolygon) 示例 1(Python 窗口)本示例将基于定义的多边形坐标提取栅格的像元。importarcpyfromarcpyimportenvfromarcpy.saimport*polyPoints = arcpy.Point(743050,4321275), arcpy.P
28、oint(743100,4321200), arcpy.Point(743500,4322000),arcpy.Point(742900,4321800)env.workspace =C:/sapyexamples/dataextPolygonOut = ExtractByPolygon(soil, polyPoints,INSIDE)extPolygonOut.save(c:/sapyexamples/output/extpoly)多边形提取 (ExtractByPolygon) 示例 2(独立脚本)本示例将基于定义的多边形坐标提取栅格的像元。# Name: ExtractByPolgyon_Ex_02.py# Description: Extracts the cells of a raster based on a polygon.# Requirements: Spatial Analyst Extension# Import system modulesimportarcpyfromarcpyimportenvfromarcpy.saimport*# Set environment settingsenv.workspace =C:/sapy
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2