我正在跳入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)
,1
和2
。
如何初始化具有适当尺寸的零光栅。
如何制作此零光栅的副本。如果3
很简单,请改为执行此操作。
增量累积栅格。
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数组进行累积。
或者,如果您有空间分析师,则可以使用工具创建常量栅格来创建基于零的栅格,然后使用数学 - >加上将栅格添加到一起的工具