Kernel de pontos 2D


<?xml version="1.0" encoding="ISO-8859-1"?>
<Rscript>
<titulo>Kernel de pontos 2D</titulo>
<descricao>
Demo de utilização do Kernel em duas dimensões da biblioteca "splancs".

O esquema espera as coordenadas dos pontos nas colunas de nome de X e Y no quadro do TabWin.

Será necessário fornecer também o nome do arquivo que contém a poligonal que delimita a área de aplicação do Kernel. Este arquivo texto, com extensão .BNA, deve conter uma linha para cada par de coordenadas do polígono sendo que X separado de Y por uma virgula. A primeira linha do arquivo, normalmente contendo cabeçalho, é desprezada.

Este esquema precisa da biblioteca "splancs" instalada no seu computador. Entre no R interativo e clique no menu "Packages" para buscar e instalar esta biblioteca.
</descricao>
<autor>Ernani Bandarra</autor>
<email></email>
<versao>1.0</versao>
<parametro>Entre com a distância do Kernel ex: 1.0</parametro>
<parametro2></parametro2>
<colsel></colsel>
<colsel2></colsel2>
<script>
library(splancs)

  names(tabela) = toupper(names(tabela))
  pontos = as.points(list(x=tabela$X,y=tabela$Y))

  arquivo = choose.files("*.bna","Escolha o arquivo que contém a poligonal envolvente..")
  if (length(arquivo) == 0) {cat("Cancelada a escolha do arquivo!");q()}
  poligonal = as.matrix(read.table(arquivo[1], sep = ",", skip=1))

# Cálculo do kernel: atenção para o parâmetro "h0"
  warning("Calculando Kernel 2D ....")
  kk = kernel2d(pontos, poligonal, h0=parametro, nx=100, ny=100)

  grafico.tabwin()
# O mapa do kernel 
  plot(poligonal, asp=1, type="n", xlab=paste("kernel =",parametro), ylab="")
  image(kk, add=T, col = terrain.colors(25))
  polymap(poligonal, add=T)
  title(titulo)

# Os pontos  
  plot(poligonal, asp=1, type="n", xlab="", ylab="")
  pointmap(pontos, add=T)
  polymap(poligonal, add=T)
  title(titulo)

# Isolinhas
  plot(poligonal, asp=1, type="n", xlab=paste("kernel =",parametro), ylab="")
  contour(kk, col="red", add=T) 
  polymap(poligonal, add=T)
  title(titulo)

# Contorno preenchido com escala 
  filled.contour(kk, color=terrain.colors, asp=1, xlab= paste("kernel =",parametro)) 
  title(titulo)

# Os três primeiros no mesmo mapa
  plot(poligonal, asp=1, type="n", xlab=paste("kernel =",parametro), ylab="")
  image(kk, add=T, col = terrain.colors(25))
  contour(kk, col="red", add=T) 
  pointmap(pontos, add=T)
  polymap(poligonal, add=T)
  title(titulo)
</script>
<exemplo>

</exemplo>
</Rscript>