[R-br] Frequência dentro de parcelas selecionadas com table()

ASANTOS alexandresantosbr em yahoo.com.br
Quinta Novembro 17 15:48:43 BRST 2011


Boa tarde pessoal,

       Então fiz as recomendações que o Prof. Paulo me recomendou, porém 
quando utilizo a função overlay() ou over(), para sobrescrever um novo 
grid (objeto sel.grid), somente com as parcelas do grid contidas no 
limite da área, obtenho o seguinte erro: Erro em grid[!is.na(clip), ] : 
(subscript) subscrito lógico muito longo, já verifiquei todos os objetos 
espaciais envolvidos e me parece estar tudo Ok não sei o que pode estar 
dando errado, segue o script:

require(splancs)
require(sp)
set.seed(12)
#Geração dos pontos aleatórios
x <- runif(n=500,min=0, max=20)
y <- runif(n=500,min=0, max=20)
xy<-cbind(x,y)
plot(x=x,y=y,axes=F, xlab="", ylab="",
      xlim=c(-1,20),ylim=c(0,21))##Plota os pontos
##Divide em parcelas
segments(x0=rep(0,20),y0=0:20,
          x1=rep(20,20),y1=0:20, col="gray", lty=2)
segments(x0=0:20,y0=rep(0,20),
          x1=0:20,y1=rep(20,20),col="gray", lty=2)
pt0 <- c(0.5,0.5)##Define o centro da primeira parcela
N_S=seq(pt0[1], by=1, length.out=20)##Define o centro das parcelas
L_O=seq(pt0[2],by=1, length.out=20)
grid0 <- expand.grid(N_S=seq(pt0[1], by=1, length.out=20),
L_O=seq(pt0[2],by=1, length.out=20))
##Cria o limite da área
limx<-c(2.5,2.5,18,18,2.5)
limy<-c(2.5,18,18,2.5,2.5)
lim=cbind(limx,limy)
lim<-as.matrix(lim)
##Passando para objetos da classe Spatial
#Pontos
pontos <- SpatialPoints(cbind(x,y))
pontos<- SpatialPoints(list(x,y))
pontos<- SpatialPoints(data.frame(x,y))
#Grid
grid0= GridTopology(c(0.5,0.5), c(1,1), c(20,20))
grid<-SpatialGrid(grid = grid0)
##Limite da área
limite=SpatialPolygons(list(Polygons(list(Polygon(lim)),"lim")))
##Plotando
plot(limite)#Limite
points(pontos,col='red')#Pontos
points(grid,col='blue')#Malha
clip<-overlay(grid,limite)##Jogando o limite sobre a malha
sel.grid <-grid[!is.na(clip),]##Retirando os NA's que correspondem a 
parte do grid fora do limite


Obrigado,

-- 
Alexandre DOS SANTOS
Engenheiro Florestal, Msc.
Laboratório de Entomologia Florestal
Departamento de Entomologia
Universidade Federal de Lavras
Caixa Postal 3037
37200-000 - Lavras - Minas Gerais - Brasil
Tel: +55 35 92230304






Em 16-11-2011 15:25, Paulo Justiniano escreveu:
> Alexandre
>
> sem fornecer codigo especifico aqui vao algums ideias de por ojnde eu 
> comecaria
>
> algumas alternativas caso nao queira programar isto:
>
> 1. represetnar os dados no formato sp. Um como SpatialPoints
> -- 
> Alexandre DOS SANTOS
> Engenheiro Florestal, Msc.
> Laboratório de Entomologia Florestal
> Departamento de Entomologia
> Universidade Federal de Lavras
> Caixa Postal 3037
> 37200-000 - Lavras - Minas Gerais - Brasil
> Tel: +55 35 92230304
> e outro como SpatialGrid
> Depois a operaçõa de overlay (over() ) com tabloe vai te fornecer as 
> contagens
>
> 2.
> este problema é o mesmo do chamado "quadrat counts"
> que é tratado em pacotes como spatstat (oficial)
> ou Rcitrus (nao oficial)
>
> aqui vai um exemplinho usando o 1o
>
> require(spatstat)
> ## Carregando um conjunto de dados
> data(swedishpines)
> X <- swedishpines
> plot(X)
> summary(X)
> ## Contagem de Quadrats
> Q <- quadratcount(X, nx = 4, ny = 3)
> Q
> plot(X)
> plot(Q, add = TRUE, cex = 2)
>
>
>

-- 
Alexandre DOS SANTOS
Engenheiro Florestal, Msc.
Laboratório de Entomologia Florestal
Departamento de Entomologia
Universidade Federal de Lavras
Caixa Postal 3037
37200-000 - Lavras - Minas Gerais - Brasil
Tel: +55 35 92230304



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