
Prof. Paulo, Obrigado pela ajuda sua solução também funcionou, o Pebesma me forneceu a seguinte solução: fullgrid(grid)=FALSE sel.grid<-grid[!is.na(clip),] points(sel.grid, col='blue', pch=3) mas o problema agora é que quando tentou calcular a frequência dos pontos dentro do grid com over(pontos, sel.grid), tenho uma resposta muito estranha que não representa a frequência de pontos contida em cada parcela da malha, teria alguma sugestão, redobrados agradecimentos, Alexandre Em 21-11-2011 10:54, Paulo Justiniano escreveu:
Alexandre
em meus testes aqui su consegui selecionar o SpatialGridDataFrame (e nao o SpatialGrid) deve ter como mas como solucao temporaria:
## o seguinte funciona ap <- SpatialGridDataFrame(grid, data=data.frame(clip)) ap1 <- ap[!is.na(clip),]
On Sat, 19 Nov 2011, ASANTOS wrote:
Boa dia 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
_______________________________________________ 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.
_______________________________________________ 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.
_______________________________________________ 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.
-- 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