3 Suavização por kernel

O kernel para a incidência de plantas doentes, pode ser feito usando a função kernel2d.citrus(). Esta função faz o kernel uma ou mais avaliações feitas. Os parâmetros de suavização são os mesmos da função kernel2d() do pacote splancs.

Na função kernel2d.citrus() deve-se entrar com os dados usando o argumento pts. O polígono envolvente da área pode ser informado no argumento poly ou selecionar uma das opções do argumento borders para a definição automática do polígono envolvente.


  > args(kernel2d.citrus)


  function (obj, poly = NULL, h0, nx = 100, ny = 100, evaluation = 1,
      death = 1, ratio = TRUE, kernel = c("quartic", "gaussian"))
  NULL

No exemplo, consideramos as avaliações 19 a 21 e que todas as plantas com códigos 1, 2 ou 3 são as que têm incidência.


  > ker20 <- kernel2d.citrus(v303.geo, h0 = 20, eval = 19:21,
  +     death = 1:3)

Também foi adaptada a função image para vizualizar o kernel. Podemos vizualizar o kernel de dois modos diferentes, usando uma escala de cores global para todas as avaliações ou usando uma escala local.


  > par(mfrow = c(1, 3), mar = c(2, 2, 1, 0.1), mgp = c(1, 0.5,
  +     0), las = 1)
  > image(ker20, zlim = "global", col = gray(seq(0, 1, l = 11)))


pict

Figura 3: Kernel com Escala de Cores Global


Usando escala global, podemos vizualizar regiões de maior intensidade e também o aumento da incidência ao longo do tempo. Usando uma escala individual, para cada avaliação, podemos vizualizar mais nitidamente as regiões de maior incidência dentro do talhão.


  > par(mfrow = c(1, 3), mar = c(2, 2, 1, 0.1), mgp = c(1, 0.5,
  +     0), las = 1)
  > image(ker20, zlim = "individual", col = gray(seq(0, 1, l = 11)))


pict

Figura 4: Kernel com Escala de Cores Global


O Kernel em três dimensões (espaço-temporal) pode ser feito utilizando a função kernel3d() do splancs. Porém, os dados precisam ser convertidos para uma matriz contendo três colunas: coordenadas das plantas doentes em cada avaliação e o tempo. Para isso, foi implementada a função as.Tpoints() para converter os dados. Como exemplo, tomamos as avaliações 19 a 21 e aproveitamos alguns resultados do kernel espacial.


  > a <- as.Tpoints(v303.geo, death = 1:3, eval = 19:21, ref.time = "01/01/2001",
  +     form.date = "dd/mm/yyyy")
  > k3 <- kernel3d(a[, 1:2], a[, 3], ker20[[1]]$x, ker20[[1]]$y,
  +     seq(510, 750, by = 30), 20, 100)

  > par(mfrow = c(3, 3), mar = c(0.3, 0.3, 0.1, 0.1), mgp = c(0.2,
  +     0.1, 0))
  > for (i in 1:9) image(k3$xgr, k3$ygr, k3$v[, , i], asp = 1,
  +     xlab = "", ylab = "", main = 0 + i, col = gray(seq(0,
  +         1, l = 11)))


pict

Figura 5: Kernel com Escala de Cores Global