描述
在表达式中多次使用输入栅格时,将输入栅格的像素块存储在内存中以优化性能。
讨论
Buffered 函数用于存储输入栅格对象的像素块(例如当表达式中需要多次使用栅格时)。这在使用地图代数来组合多个栅格对象时最为常见。
例如,以下表达式将两次使用栅格 1:
NewRaster = (Raster1+Raster2)/Raster1
为了提升性能,可以在运行表达式之前为栅格 1 插入 Buffered 函数。
有关此函数工作原理的详细信息,请参阅缓冲栅格函数。
栅格对象的引用栅格数据集是临时的。要将其设置为永久,可以调用栅格对象的 save 方法。
代码示例
将两个栅格的像素块存储在内存中,以提升复杂表达式的性能。
# Import system modules
import arcpy
from arcpy.ia import *
# Set the analysis environments
arcpy.env.workspace = "C:/arcpyExamples/data"
# Set the local variables
Raster1 = arcpy.Raster("Band_3")
Raster2 = arcpy.Raster("Band_4")
# Execute Buffered function
Raster1buff = arcpy.ia.Buffered(Raster1)
Raster2buff = arcpy.ia.Buffered(Raster2)
# Run complex expression
Output = (Raster1buff+Raster2buff)/(Raster1buff+Raster2buff)
# Save output
Output.save("C:/arcpyExamples/outputs/expressionOutput.tif")