[R-br] IDW

Éder Comunello comunello.eder em gmail.com
Quinta Maio 29 07:36:58 BRT 2014


Hélio, bom dia!

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.

Atte.,

### <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))
grid  -> grid.pt
gridded(grid) = ~x+y        ### SpatialPixels
coordinates(grid.pt) = ~x+y ### SpatialPoints

### IDW Default
idw    <- idw(pr$chuva~1, pr, grid)
idw.pt <- idw(chuva~1, pr, grid.pt)

### 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>




Éder Comunello <c <comunello.eder em gmail.com>omunello.eder em gmail.com>
Dourados, MS - [22 16.5'S, 54 49'W]
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140529/1855c71e/attachment.html>
-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: Rplot_idw.png
Tipo: image/png
Tamanho: 7652 bytes
Descrição: não disponível
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20140529/1855c71e/attachment.png>


Mais detalhes sobre a lista de discussão R-br