使用numpy计算栅格的逐像素平均值

时间:2013-12-11 10:29:02

标签: python numpy scipy

由于两个光栅(raster1和raster2)相互重叠,我想通过计算每个重叠像素的平均值来制作新的光栅;即,生成的新栅格计算如下:

new = [[mean(1,3), mean(1,3), mean(1,3), mean(1,3), mean(1,3)],[mean(2,4),mean(2,4),mean(2,4),mean(2,4),mean(2,4)]]


import numpy as np    
raster1 = np.array([[1,1,1,1,1],[2,2,2,2,2]])
raster2 = np.array([[3,3,3,3,3],[4,4,4,4,4]])

new = np.mean(raster1,raster2,axis=1)
print (new.tolist())

有什么问题?

2 个答案:

答案 0 :(得分:3)

也许我误解了你,但你想要吗?

raster = (raster1 + raster2) / 2

实际上在这种情况下你甚至不需要np.mean,只需使用矩阵运算。

np.mean用于处理特定轴上单个矩阵的计算均值,因此情况不同。

答案 1 :(得分:1)

应该是

new = np.mean([raster1,raster2],axis=1)
带括号的

其实我猜它应该是 它应该是

new = np.mean([raster1,raster2],axis=0)

np.mean的第一个参数应该是整个数组,参见例如http://wiki.scipy.org/Numpy_Example_List_With_Doc#mean