Skip to content

Cokriging

3 messages · Gnai Nishani Musafer, Jon Olav Skoien

#
Dear All,

I run following code to estimate the blocks using cokriging ( my data set has more than 50,000 data points).  All the things run finely but  Once I run the predict.gstat function it gave the error message - "memory.c", line 58: can't allocate memory in function m_get(). I run this code on LINUX sever but result is same. Would any one please be able to give a solution for this? Any advice regarding this highly appreciated. 

Note: same error message gave when I was using krige function  . Then I changed the code and add a loop to estimate the one by one. It worked. But this technique not work for cokiriging it gives the same error message. 

require(gstat)
require(automap)
data_c <- read.csv("cu_s_data.csv", header=T)
grid<- read.csv("grid.csv", header=T)


coordinates(data_c) <- ~X+Y+Z
coordinates(grid) <- ~x+y+z
proj4string(grid)=CRS("+init=epsg:28992")
proj4string(data_c)=CRS("+init=epsg:28992")
g <- gstat(id = "Cu", formula =Cu~1,data = data_c)
g <- gstat(g, id = "S", formula = S~1,data =data_c)
g <- gstat(g, id = c("Cu", "S"), model = vgm(cov(data_c$Cu,data_c$S) , "Sph", 200, 0))
g<fit.lmc(variogram(g),g,model=vgm(psill=cov(data_c$Cu,data_c$S),model="Sph",range=200,nugget=0))
k.c <- predict.gstat(g, grid,block = c(30,30,15))


Thanks and Regards,
Nishani Musafer
#
Nishani,
we do not have access to your data, but I guess the problem is the size 
of the observation data set. I think the default of predict.gstat is to 
create one covariance matrix between all observation locations, which 
would be a 50,000*50,000 matrix in your case. The alternative is to do 
kriging in a local neighbourhood, with the argument nmax, eg. equal to 
20 (or maybe larger if the size of blocks is large compared to the 
distance between observations.

Just as a note, you define the projection of your data to be epsg:28992. 
This is a Dutch projection used for the meuse data in the examples of 
gstat and automap, but is most likely not the projection if you are 
using data from Australia (your email address). Try to find the correct 
projection of your data or leave it empty if you are sure that both 
observation data and the grid is in the same projection (and not lat-long).

Best wishes,
Jon

BTW, you are more likely to get quicker response to questions like this 
on the mailinglist r-sig-geo.
On 19-Mar-13 2:03, Gnai Nishani Musafer wrote:

  
    
#
Hi John,

Thank you for all the information and advices. Highly appreciated your help. Aftter using the nmax it worked finely. 

Thanks 
Best Regrds,
Nishani Musafer