
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 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) On Tue, 15 Nov 2011, ASANTOS wrote:
Boa tarde pessoal,
Estou tentando calcular a frequência de pontos dentro de parcelas selecionadas em uma área através da função table() e estou tendo dificuldades, bom consegui calcular para todas as parcelas da área mais não estou conseguindo utilizar o comando para selecionar algumas parcelas de interesse fiz:
require(splancs) #Geração dos pontos aleatórios x <- runif(n=500,min=0, max=20) y <- runif(n=500,min=0, max=20)
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) limy<-c(2.5,18,18,2.5) lim=cbind(limx,limy) lim<-as.matrix(lim) polygon(lim)##Desenha o limite
grid0<-as.matrix(grid0) m.int<-pip(grid0,lim,out=FALSE)##Seleciona as parcelas dentro do limite points(m.int,col="blue", pch=10)
##Frequencia em cada parcela x.parcela <- cut(x,breaks=0:20) y.parcela <- cut(y,breaks=0:20) contag <- data.frame(table(x.parcela,y.parcela))
Aqui esta minha dificuldade, se uso o cut(), só consigo dividir a área toda, porém não estou conseguindo selecionar as parcelas localizadas dentro do limite, alguém poderia me dar uma luz, Obrigado,
-- Alexandre DOS SANTOS Engenheiro Florestal, Msc. Laboratório de Pragas Florestais Departamento de Entomologia Universidade Federal de Lavras Caixa Postal 3037 37200-000 - Lavras - Minas Gerais - Brasil Tel: +55 35 92230304
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.