Description Usage Arguments Details Value Note Author(s) See Also Examples
Optimize a sample configuration for variogram and spatial trend identification and estimation, and for spatial interpolation. An utility function U is defined so that the sample points cover, extend over, spread over, SPAN the feature, variogram and geographic spaces. The utility function is obtained aggregating four objective functions: CORR, DIST, PPL, and MSSD.
1 2 3 4 5 6 7 8 9 10 11 12 13 14  optimSPAN(points, candi, covars, strata.type = "area",
use.coords = FALSE, lags = 7, lags.type = "exponential",
lags.base = 2, cutoff, criterion = "distribution", distri,
pairs = FALSE, schedule = scheduleSPSANN(), plotit = FALSE,
track = FALSE, boundary, progress = "txt", verbose = FALSE,
weights, nadir = list(sim = NULL, seeds = NULL, user = NULL, abs =
NULL), utopia = list(user = NULL, abs = NULL))
objSPAN(points, candi, covars, strata.type = "area",
use.coords = FALSE, lags = 7, lags.type = "exponential",
lags.base = 2, cutoff, criterion = "distribution", distri,
pairs = FALSE, x.max, x.min, y.max, y.min, weights, nadir = list(sim
= NULL, seeds = NULL, user = NULL, abs = NULL), utopia = list(user =
NULL, abs = NULL))

points 
Integer value, integer vector, data frame or matrix, or list.

candi 
Data frame or matrix with the candidate locations for the jittered points. 
covars 
Data frame or matrix with the covariates in the columns. 
strata.type 
(Optional) Character value setting the type of stratification that should be used to
create the marginal sampling strata (or factor levels) for the numeric covariates. Available options are

use.coords 
(Optional) Logical value. Should the spatial x and ycoordinates be used as covariates?
Defaults to 
lags 
Integer value, the number of lagdistance classes. Alternatively, a vector of numeric values
with the lower and upper bounds of each lagdistance class, the lowest value being larger than zero
(e.g. 0.0001). Defaults to 
lags.type 
Character value, the type of lagdistance classes, with options 
lags.base 
Numeric value, base of the exponential expression used to create exponentially spaced
lagdistance classes. Used only when 
cutoff 
Numeric value, the maximum distance up to which lagdistance classes are created. Used only
when 
criterion 
Character value, the feature used to describe the energy state of the system
configuration, with options 
distri 
Numeric vector, the distribution of points or pointpairs per lagdistance class that should
be attained at the end of the optimization. Used only when 
pairs 
Logical value. Should the sample configuration be optimized regarding the number of
pointpairs per lagdistance class? Defaults to 
schedule 
List with 11 named subarguments defining the control parameters of the cooling schedule.
See 
plotit 
(Optional) Logical for plotting the optimization results, including a) the progress of the
objective function, and b) the starting (gray circles) and current sample configuration (black dots), and
the maximum jitter in the x and ycoordinates. The plots are updated at each 10 jitters. When adding
points to an existing sample configuration, fixed points are indicated using black crosses. Defaults to

track 
(Optional) Logical value. Should the evolution of the energy state be recorded and returned
along with the result? If 
boundary 
(Optional) SpatialPolygon defining the boundary of the spatial domain. If missing and

progress 
(Optional) Type of progress bar that should be used, with options 
verbose 
(Optional) Logical for printing messages about the progress of the optimization. Defaults to

weights 
List with named subarguments. The weights assigned to each one of the objective functions that form the multiobjective combinatorial optimization problem. They must be named after the respective objective function to which they apply. The weights must be equal to or larger than 0 and sum to 1. 
nadir 
List with named subarguments. Three options are available: 1) 
utopia 
List with named subarguments. Two options are available: 1) 
x.max, x.min, y.max, y.min 
Numeric value defining the minimum and maximum quantity of random noise to
be added to the projected x and ycoordinates. The minimum quantity should be equal to, at least, the
minimum distance between two neighbouring candidate locations. The units are the same as of the projected
x and ycoordinates. If missing, they are estimated from 
The help page of minmaxPareto
contains details on how spsann solves the
multiobjective combinatorial optimization problem of finding a globally optimum sample configuration that
meets multiple, possibly conflicting, sampling objectives.
Details about the mechanism used to generate a new sample configuration out of the current sample
configuration by randomly perturbing the coordinates of a sample point are available in the help page of
spJitter
.
Visit the help pages of optimCORR
, optimDIST
,
optimPPL
, and optimMSSD
to see the details of the objective
functions that compose SPAN.
optimSPAN
returns an object of class OptimizedSampleConfiguration
: the optimized sample
configuration with details about the optimization.
objSPAN
returns a numeric value: the energy state of the sample configuration – the objective
function value.
The distance between two points is computed as the Euclidean distance between them. This computation assumes that the optimization is operating in the twodimensional Euclidean space, i.e. the coordinates of the sample points and candidate locations should not be provided as latitude/longitude. spsann has no mechanism to check if the coordinates are projected: the user is responsible for making sure that this requirement is attained.
Alessandro SamuelRosa alessandrosamuelrosa@gmail.com
optimCORR
, optimDIST
, optimPPL
,
optimMSSD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21  ## Not run:
# This example takes more than 5 seconds to run!
require(sp)
data(meuse.grid)
candi < meuse.grid[, 1:2]
nadir < list(sim = 10, seeds = 1:10)
utopia < list(user = list(DIST = 0, CORR = 0, PPL = 0, MSSD = 0))
covars < meuse.grid[, 5]
schedule < scheduleSPSANN(chains = 1, initial.temperature = 1,
x.max = 1540, y.max = 2060, x.min = 0,
y.min = 0, cellsize = 40)
weights < list(CORR = 1/6, DIST = 1/6, PPL = 1/3, MSSD = 1/3)
set.seed(2001)
res < optimSPAN(
points = 10, candi = candi, covars = covars, nadir = nadir, weights = weights,
use.coords = TRUE, utopia = utopia, schedule = schedule)
objSPSANN(res) 
objSPAN(points = res, candi = candi, covars = covars, nadir = nadir,
use.coords = TRUE, utopia = utopia, weights = weights)
## End(Not run)

Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.