[R-sig-Geo] passing 'cutoff' to the 'autoKrige' function ('automap' package)

Mauricio Zambrano hzambran.newsgroups at gmail.com
Thu Mar 24 11:25:01 CET 2011


Dear list,

Is there any way to pass the 'cutoff' argument (or 'width', or other
arguments of the 'variogram' function of the 'gstat' package)  to the
'autoKrige' function of the 'automap' package ?

I tried with:

> x.ok <- autoKrige(zinc~1, meuse, meuse.grid, miscFitOptions=list(maxdist=100,  cutoff=500, width=50) )

but both arguments are ignored.


I also tried with:

> x.ok <- autoKrige(zinc~1, meuse, meuse.grid, maxdist=100,  cutoff=500, width=100)

but I got the following error message:

"Error in gstat(formula = formula, data = locations, model = model,
beta = beta,  :
 unused argument(s) (cutoff = 500, width = 50)"


Some session info:

R version 2.12.2 (2011-02-25)
automap_1.0-9
gstat_0.9-79


Here there is a reproducible example (for the 'autofitVariogram'
function, because I didn't find a way to pass the 'cutoff' and 'with'
arguments to the 'autoKrige' function):

------------ START ---------------

library(automap)

# Data preparation
data(meuse)
coordinates(meuse) =~ x+y
data(meuse.grid)
gridded(meuse.grid) =~ x+y

# Computing the 'boundaries' value for the 'variogram' function,
# in order to properly compare its results with those of the
'autofitVariogram' function

input_data <- meuse

x <- coordinates(input_data)[, 1]
y <- coordinates(input_data)[, 2]
scale_number <- (0.35 * sqrt((max(x) - min(x))^2 + (max(y) - min(y))^2)/100)
boundaries <- c(2, 4, 6, 9, 12, 15, 25, 35, 50, 65, 80, 100) * scale_number

# variogram computation. Case 1, default parameters
vgm.gstat   <- variogram(zinc ~ 1, locations=meuse, boundaries=boundaries)
vgm.automap <- autofitVariogram(zinc ~ 1, input_data=meuse)

# These variograms are the same
print(vgm.gstat)
print(vgm.automap$exp_var)

# variogram computation. Case 2, with 'cutoff' and 'width'
vgm.gstat2   <- variogram(zinc ~ 1, locations=meuse, cutoff=500, width=50)
vgm.automap2 <- autofitVariogram(zinc ~ 1, input_data=meuse,
cutoff=500, width=50)

# These variograms are NOT the same
print(vgm.gstat2)
print(vgm.automap2$exp_var)

# variogram computation. Case 3, with 'cutoff', 'width' and 'boundaries'
vgm.gstat3   <- variogram(zinc ~ 1, locations=meuse, cutoff=500,
width=50, boundaries=boundaries)
vgm.automap3 <- autofitVariogram(zinc ~ 1, input_data=meuse,
cutoff=500, width=50)

# These variograms are the same
print(vgm.gstat3)
print(vgm.automap3$exp_var)


------------ END ---------------


Looking at the examples, I think that the problem arises because the
'boundaries' argument superimpose its values to the 'cutoff' one, both
in the 'variogram' and 'autofitVariogram' functions.

However, whereas in the 'variogram' function the boundaries are
optional, in the 'autofitVariogram' they are computed internally (in a
smart way), but its maximum default value disable any shorter 'cutoff'
passed to the 'autofitVariogram' function.


In any case, I think that even after solving the issue related to
'cutoff' and 'boundaries', it will still be impossible to pass the
'cutoff' argument to the 'autoKrige' function, because the '...'
argument in 'autoKrige' is passed (internally) to the 'krige' function
and not to 'autofitVariogram' one. Am I right ?

I'm not sure if this could be considered a bug, but I thought it could
be useful to report this behaviour, for the next release of 'automap'.


Kind regards,

Mauricio Zambrano B.

--
================================
Linux user #454569 -- Ubuntu user #17469
================================



More information about the R-sig-Geo mailing list