从NumPy数组创建栅格图像

3
我正在使用arcpy进行脚本编写,我有一个由作物按县组成的NumPy矩阵。该矩阵用浮点数填充。
我还有一个单独的栅格图像显示作物以及一个显示县的形状文件。
我想将我的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”调用,其语法我将为您省略。

这种方法可以工作,但非常丑陋,我觉得应该有更好的方法来实现我的目标。当我尝试太多县或作物时,上述方法会崩溃。它在保存步骤时失败。

我想知道是否有更简单的方法来实现我想要的功能。有什么建议吗?


你需要更深入地探索arcpy。Numpy数组访问...到和从...的内置功能被广泛使用。从这个链接开始,然后探索数据访问模块中的其他选项NumPyArrayToRaster - user1121588
感谢您的回复@DanPatterson。我意识到在浏览我的帖子时,它的所有内容都表明我正在寻找NumPyArrayToRaster提供的功能(标题几乎大喊大叫!)。实际上,我正在尝试做一些非常不同和更复杂的事情,即使用数组中的信息来填充栅格。我认为使用arcpy上述方法可能是最好的选择,但我应该寻找其他软件以获得更高效的方法。 - Coder McGee
1个回答

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

你知道如何使用 PyQGIS(qgis.core)来完成吗? - Vincent Bénet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接