Faz sentido interpolar? Acredito que sim, partindo do
princípio que a dependência espacial pode existir, mas seu
método não permitiu detectá-la. Acredito que a causa mais
comum seja o esquema de amostragem utilizado, sobretudo no que
se refere à distância entre amostras. No caso particular, você
conseguiu modelar em algumas áreas e não em outras, dando
margem à essa interpretação.
O colega Elias já postou uma solução, mas acrescento o
código abaixo, caso ainda tenha interesse em utilizar o
{gstat}.
Em termos gerais, a ideia de operação no {gstat} é similar
a do {geoR}, no sentido em que você vai precisar criar um grid
pra receber o resultado da interpolação. O espaçamento da
grade será a resolução da interpolação. O ponto principal é
que tem que trabalhar com objetos da classe 'sp'.
Verifique os parâmetros número de vizinhos (nmax) e
peso/potência da distância (idp). No {gstat} por default
utilizam-se todos os pontos e o idp=2.
### <code r>
sapply(c("gstat",
"sp", "geoR", "RColorBrewer"), require, character.only=T)
data(parana);
names(parana)
hist(parana$data,
col=3)
points(parana,
pt.divide='quart')
### Criar objeto 'sp'
pr <-
data.frame(x=parana$coords[,1], y=parana$coords[,2],
chuva=parana$data)
names(pr);
coordinates(pr) <- ~x+y
class(pr)
plot(pr, asp=1,
axes=T, pch=20); polygon(parana$borders, border=2)
### Criar 'grid'
bbox(pr)
lim <-
round(bbox(pr)+c(-1,-1, 1, 1)*50); lim ### amplia a área
do bbox
grid <-
expand.grid(x=seq(lim[1,1],lim[1,2], by=10),
y=seq(lim[2,1],lim[2,2], by=10))
gridded(grid) = ~x+y
### SpatialPixels
coordinates(grid.pt)
= ~x+y ### SpatialPoints
### IDW Default
idw <-
idw(pr$chuva~1, pr, grid)
### Visualização
spplot(idw,
"var1.pred", main = "IDW Default")
spplot(idw.pt,
"var1.pred", main = "IDW default - Mapa Pontuado")
image(idw);
polygon(parana$borders); points(pr)
### Variando
parâmetros
idw.data <-
data.frame(
default =
idw(chuva ~ 1, pr, grid)$var1.pred, ### nmax=todos &
idp=2
idw6 =
idw(chuva ~ 1, pr, grid, nmax=6)$var1.pred,
idw9 =
idw(chuva ~ 1, pr, grid, nmax=9)$var1.pred,
idp1 =
idw(chuva ~ 1, pr, grid, idp = 1)$var1.pred,
idp4 =
idw(chuva ~ 1, pr, grid, idp = 4)$var1.pred,
idp8 =
idw(chuva ~ 1, pr, grid, idp = 8)$var1.pred)
grid.data <-
SpatialPixelsDataFrame(grid, idw.data)
dput(names(grid.data))
spplot(grid.data,
c("default", "idw6", "idw9", "idp1", "idp4", "idp8"), main
= "IDW", col.regions=rainbow(16)
# idp: numeric;
specify the inverse distance weighting power
# nmax: the number of
nearest observations that should be used
### </code>