使用栅格对象

栅格对象可用作地图代数表达式的输入,也是地图代数表达式的主要输出。执行使用运算符的地图代数表达式时,输入必须是栅格对象或常量。地图代数表达式的栅格输出始终是临时输出,但可通过对栅格对象调用 save 方法来保存该栅格输出。可以通过查询栅格对象来轻松访问所引用的数据集属性。

创建栅格对象

栅格对象可以通过转换栅格数据集来创建,也可以通过 ArcGIS Spatial Analyst 扩展模块中工具的输出来获得。通过转换栅格,可以轻松查询栅格数据集的许多属性。

  1. 要创建栅格对象,需指定图层名称或路径以及数据集名称,如下例所示。
    rasObject = Raster("C:/Data/elevation")
    
    在上述语句中,elevation 栅格数据集的属性现在可通过所生成的栅格对象 (rasObject) 来获得。有关栅格对象的属性列表,请参阅栅格对象属性的完整列表
  2. 栅格对象可作为 Spatial Analyst 工具的左侧输出来创建。
    # rasObject is a Raster object pointing to a temporary 
    #   raster dataset
    rasObject = Slope("C:/Data/elevation")
    
    注注:

    Spatial Analyst 工具集外的工具不输出栅格对象。

栅格保存方法

栅格对象关联的栅格可使用 save 方法保存。

Spatial Analyst 工具会创建临时输出。这些输出可使用栅格对象的 save 方法保存。在下例中,坡度工具的临时输出将保存到指定的输出文件夹中。

outraster = Slope("C:/Data/elevation")
outraster.save("C:/output/sloperaster")

使用栅格属性

将栅格转换为栅格对象后,可以轻松地查询数据集的属性。所有栅格对象属性都是只读的。查询栅格属性将会返回字符串、数字或对象。可通过许多方式使用栅格属性,包括用作工具参数的输入,或用于设置环境设置(如下所示)。

from arcpy import env
from arcpy.sa import *
outraster = Raster("C:/Data/studyarea")
myextent = outraster.extent

# Modify myextent as necessary for your workflow and use it to set the extent environment
env.extent = myextent
注注:

栅格对象的可用栅格属性由可通过 Describe 函数访问的属性(栅格数据集属性)以及可通过获取栅格属性工具获得的属性组合而成。

相关主题

5/10/2014