ArcPy:初始化零值网格栅格并迭代递增

时间:2014-08-18 12:13:01

标签: python arcpy

我正在跳入ArcPy以帮助需要自动执行某些ArcGIS工作的朋友。手头的问题可以简化为以下伪代码:

accumulationRaster = SomeZeroedRaster
for each Raster pair, R, S, pertaining to rain and snow:   
   accumulationRaster += Con(S == 0, Con(R >= 1, 1, 0), 0)

换句话说,遍历每天的所有雨雪数据。对每个单元格对执行逻辑运算,以便{* 1}}中的相应单元格在没有下雪(accumulationRaster)和下雨S == 0时会增加。

到目前为止,由于各种尝试没有运气,我想我会在这里问,因为问题应该有一个简单的解决方案。缺少缺口的完整工作代码如下所示。大多数只是简单的文件路径设置,上面的伪代码应该足够了:

缺失的部分编号为(R >= 1)12

  1. 如何初始化具有适当尺寸的零光栅。

  2. 如何制作此零光栅的副本。如果3很简单,请改为执行此操作。

  3. 增量累积栅格。


  4. 1

1 个答案:

答案 0 :(得分:0)

您可以使用arcpy.NumPyArrayToRaster制作零基础栅格。

如果您希望栅格为50行和50列,分辨率为1米。你可以这样做。

import numpy

myArr = numpy.zeros(50, 50)

myZeroRaster = arcpy.NumPyArrayToRaster(myArr, arcpy.Point(355355, 3199277), 1, 1)

您还可以将光栅转换为numpy数组,然后使用一个numpy数组进行累积。

或者,如果您有空间分析师,则可以使用工具创建常量栅格来创建基于零的栅格,然后使用数学 - >加上将栅格添加到一起的工具