R计算地球移动器对大型栅格的距离

时间:2016-07-23 09:06:37

标签: r matrix raster similarity

我试图用emd2d(来自emdist库,版本0.3-1)对两个栅格之间的(dis)相似性进行定量估计。 以下代码适用于小矩阵(~35x35),但我的栅格更大(~5000x3000)并且我收到内存错误:

emdr中的错误(A,B,dist = dist,...):
无法在emdist中存储(-1608.8 MB)

以下是说明问题的示例代码:

#test case:
library(emdist)
Rows = 40
Cols = 40
Mat1 = matrix( 
       seq(1,Rows*Cols), 
       nrow = Rows, 
       ncol = Cols) 

m0 <- matrix(0, Rows, Cols)
Mat_Rand = apply(m0, c(1,2), function(x) rnorm(1)) #sample(c(0,1),1))
Mat2 = Mat1 * Mat_Rand

emd2d(Mat1,Mat2,dist="euclidean")

我在win7 64bit上运行R R版本3.2.5。

由于

Ilik

1 个答案:

答案 0 :(得分:0)

要绕过内存限制,您可以采用矩阵样本,例如:随机选择每行40个中的30个和每个40个中的30个以形成新矩阵,从而将对从100多万减少到不到50万。

label