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

Paulo Justiniano paulojus em leg.ufpr.br
Segunda Novembro 21 16:20:25 BRST 2011


Aledandre

se nao funcionar com grid voce poderia rtransformar de grid para 
SpatialPolygons e operar o over() novamente


On Mon, 21 Nov 2011, ASANTOS wrote:

> 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 em 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 em 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 em 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
> 
>


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