需要 Spatial Analyst 许可。
栅格对象可用作地图代数表达式的输入,也是地图代数表达式的主要输出。执行使用运算符的地图代数表达式时,输入必须是栅格对象或常量。地图代数表达式的栅格输出始终是临时输出,但可通过对栅格对象调用 save 方法来保存该栅格输出。可以通过查询栅格对象来轻松访问所引用的数据集属性。
创建栅格对象
栅格对象可以通过转换栅格数据集来创建,也可以通过 ArcGIS Spatial Analyst 扩展模块中工具的输出来获得。通过转换栅格,可以轻松查询栅格数据集的许多属性。
- 要创建栅格对象,需指定图层名称或路径以及数据集名称,如下例所示。在上述语句中,elevation 栅格数据集的属性现在可通过所生成的栅格对象 (rasObject) 来获得。有关栅格对象的属性列表,请参阅栅格对象属性的完整列表。
rasObject = Raster("C:/Data/elevation")
- 栅格对象可作为 Spatial Analyst 工具的左侧输出来创建。
# rasObject is a Raster object pointing to a temporary # raster dataset rasObject = Slope("C:/Data/elevation")
栅格保存方法
与栅格对象关联的栅格可使用 save 方法保存。
Spatial Analyst 工具会创建临时输出。这些输出可使用栅格对象的 save 方法保存。在下例中,坡度工具的临时输出将保存到指定的输出文件夹中。
outraster = Slope("C:/Data/elevation")
outraster.save("C:/output/sloperaster")
数据保存位置取决于在 save 方法中输入的内容以及所设置的工作空间环境。
- 如果指定含有数据集名称的完整路径,则此位置是保存永久数据的位置。
- 如果仅指定数据集名称,则数据的保存位置由地理处理工作空间环境来决定。
- 如果设置了临时工作空间或当前工作空间,则保存的数据将存储到所设置的工作空间位置。
- 如果同时设置了临时工作空间和当前工作空间,则保存的数据将存储到当前工作空间。
- 如果未设置工作空间,则返回错误。
- 如果只希望数据使用默认名称保存在当前位置,则可调用 save 方法而不指定名称,如下例所示:
outraster.save()
- save 方法支持所有 Spatial Analyst 支持的栅格格式。在下面的示例中,栅格的 save 方法用于将数据保存到文件地理数据库栅格和 IMAGINE 格式。
outraster.save("C:/output/file_gdb.gdb/sloperaster") outraster.save("C:/output/sloperaster.img")
使用栅格属性
将栅格转换为栅格对象后,可以轻松地查询数据集的属性。所有栅格对象属性都是只读的。查询栅格属性将会返回字符串、数字或对象。可通过许多方式使用栅格属性,包括用作工具参数的输入,或用于设置环境设置(如下所示)。
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