从NumPy数组

时间:2015-12-16 21:28:44

标签: python python-2.7 numpy arcgis arcpy

我使用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"电话,我会饶你的语法。

这很好用,但是非常难看,我觉得应该有更好的方法去做我想做的事情。当我尝试太多的县或庄稼时,上述方法崩溃了。它在保存步骤中失败。

我想知道是否有更简单的方法来完成我之后的事情。有什么建议吗?

1 个答案:

答案 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")