使用栅格对象

需要 Spatial Analyst 许可。

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

创建栅格对象

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

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

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

栅格保存方法

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

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

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

  • 数据保存位置取决于在 save 方法中输入的内容以及所设置的工作空间环境。

    1. 如果指定含有数据集名称的完整路径,则此位置是保存永久数据的位置。
    2. 如果仅指定数据集名称,则数据的保存位置由地理处理工作空间环境来决定。
      • 如果设置了临时工作空间或当前工作空间,则保存的数据将存储到所设置的工作空间位置。
      • 如果同时设置了临时工作空间和当前工作空间,则保存的数据将存储到当前工作空间。
      • 如果未设置工作空间,则将返回错误。

  • 如果只希望数据使用默认名称保存在当前位置,则可调用 save 方法而不指定名称,如下例所示:
    outraster.save()
  • save 方法支持所有 Spatial Analyst 支持的栅格格式。在下面的示例中,栅格的 save 方法用于将数据保存为文件地理数据库栅格和 Tiff 格式栅格。
    outraster.save("C:/output/file_gdb.gdb/sloperaster")
    outraster.save("C:/output/sloperaster.tif")

使用栅格属性

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

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
注:

Raster 对象可用的栅格属性是多个属性的组合,也可以通过 Describe 函数(栅格数据集属性)和从获取栅格属性工具进行访问。

相关主题