我使用arcpy编写脚本,并且我有一个NumPy矩阵,其中包含各个维度的作物。该矩阵填充了浮点数。
我还有一个单独的光栅图像,显示作物以及显示县的shapefile。
我想将NumPy矩阵的内容保存到新的栅格中,使用矩阵中的正确值,因为栅格像素是某个县的特定作物。
我的问题是:如何改进将矩阵转换为光栅图像的方式?
目前我做的事情如下:
# initialize my output
outraster = 0 * cropraster
for crop in crops
for county in counties
outraster = outraster + \
conditional statements checking if cropraster pixel is in
current county and crop, and if so return matrix value
outraster.save(filename)
条件语句是嵌套的空间分析师" Con"电话,我会饶你的语法。
这很好用,但是非常难看,我觉得应该有更好的方法去做我想做的事情。当我尝试太多的县或庄稼时,上述方法崩溃了。它在保存步骤中失败。
我想知道是否有更简单的方法来完成我之后的事情。有什么建议吗?
答案 0 :(得分:0)
NumPyArrayToRaster (arcpy)专为此类操作而设计。
文档中的一个例子:
import arcpy
import numpy
# Create a simple array from scratch using random values
myArray = numpy.random.random_integers(0,100,2500)
myArray.shape = (50,50)
# Convert array to a geodatabase raster
myRaster = arcpy.NumPyArrayToRaster(myArray,x_cell_size=1)
myRaster.save("C:/output/fgdb.gdb/myRandomRaster")