【发布时间】:2016-03-23 04:55:44
【问题描述】:
我正在使用 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”调用,其语法我将不再赘述。
这工作正常,但很丑陋,我觉得应该有更好的方法来做我想做的事。当我尝试太多县或作物时,上述方法会崩溃。保存步骤失败。
我想知道是否有更简单的方法来完成我所追求的。有什么建议吗?
【问题讨论】:
-
你需要更多地探索arcpy。 Numpy 数组访问 ... 到和来自 .. 是内置并广泛使用的。从这个链接开始,然后探索数据访问模块NumPyArrayToRaster中的其余选项
-
感谢@DanPatterson 的回复。我意识到,在浏览我的帖子时,关于它的所有内容都表明我正在寻找 NumPyArrayToRaster 提供的功能(标题几乎是在尖叫!)。实际上,我正在尝试做一些完全不同且更复杂的事情,即使用数组中的信息来填充栅格。我认为使用 arcpy 上述方法可能是最好的方法,但我应该研究其他软件以获得更有效的方法。
标签: python python-2.7 numpy arcgis arcpy