constructMask | R Documentation |
Constructs a mask for a grid
constructMask(grid, method = "maxdist", maxval = NULL, x = NULL)
grid |
a grid, see details for more info |
method |
which construction method? currently one of 'maxdist', 'sillprop' or 'point2polygon' |
maxval |
for maxdist and sillprop methods, maximum reference value |
x |
extra information for the grid construction, see details |
Method 'maxdist' defines the mask as all points within a maximum distance
(must be given in maxval
) from the reference data (given in x
: this is expected
to be the original complete data, with coordinates and variables). For method 'sillprop'
the mask is defined by those points which total kriging variance is below
a fixed proportion (given in maxval
, default=0.99) of the total variogram
model sill (variogram model given in x
, of class "variogramModelList").
In this method, the argument grid
is expected to be the output of a cokriging
analysis. Finally, method 'point2poly' created the mask by taking the points internal
to a "SpatialPolygon" object (given in x
).
a logical vector with as many elements as points in the grid, with TRUE for those points within the mask, and FALSE for those outside the mask.
Other masking functions:
getMask()
,
print.mask()
,
setMask()
,
unmask()
## with data.frame
x = 1:23
y = 1:29
xy = expand.grid(x=x, y=y)
xyz.df = data.frame(xy, z = rnorm(29*23)*ifelse(abs(xy$x-xy$y)<3, 1, NA)+(xy$x+xy$y)/2)
mask.df = constructMask(grid = xy, method = "maxdist", maxval = 3, x=xyz.df)
image(mask.df)
oldpar = par(mfrow = c(1,1))
mask.df
xyz.df.masked = setMask(xyz.df, mask.df)
dim(xyz.df.masked)
summary(xyz.df.masked)
xyz.df.unmasked = unmask(xyz.df.masked)
dim(xyz.df.unmasked)
length(x)*length(y)
summary(xyz.df.unmasked)
## with SpatialGrid
library(sp)
library(magrittr)
xy.sp = sp::SpatialPoints(coords = xy)
meandiff = function(x) mean(diff(x))
xy.gt = GridTopology(c(min(x),min(y)), c(meandiff(x), meandiff(y)), c(length(x),length(y)))
aux = sp::SpatialPixelsDataFrame(grid = xy.gt, data=xyz.df, points = xy.sp)
xyz.sgdf = as(aux, "SpatialGridDataFrame")
image_cokriged(xyz.sgdf, ivar="z")
## reorder the data in the grid and plot again
par(mfrow=c(1,1))
ms = function(x) sortDataInGrid(x, grid=xy.gt)
mask.gt = constructMask(grid = xy.gt, method = "maxdist", maxval = 3, x=xyz.sgdf)
image(x,y,matrix(ms(xyz.sgdf@data$z), nrow=23, ncol=29))
image(x,y,matrix(ms(mask.gt), nrow=23, ncol=29))
image(mask.gt)
## work with the mask and plot again
par(mfrow=c(1,1))
xyz.sgdf.masked = setMask(x = xyz.sgdf, mask = mask.gt)
getMask(xyz.sgdf.masked)
image(x,y,matrix(ms(xyz.sgdf@data$z), nrow=23, ncol=29))
points(xyz.sgdf.masked@coords)
par(oldpar)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.