[R-br] Frequência dentro de parcelas selecionadas com table()
Paulo Justiniano
paulojus em leg.ufpr.br
Segunda Novembro 21 17:49:29 BRST 2011
Alenxandre
o seguinte funcionou aqui
note que com plot(ap3) que o 1o poluigono é o segundo pixel lá no alto
(o o 1o pixel fica como ultimo poligono)
fullgrid(grid) <- FALSE
class(grid) ## SpatialPixels
ap3 <- as.SpatialPolygons.SpatialPixels(grid)
table(over(pontos, ap3))
On Mon, 21 Nov 2011, ASANTOS wrote:
> Obrigado Prof. Paulo,
>
> Mas não funcionou não, aparentemente não é possível transformar o grid selecionado em SpatialPolygons, msemo
> repetindo a primeira coordenada para fechar o polígono, preciso encontrar uma outra solução,
>
> Alexandre
>
> Em 21-11-2011 16:20, Paulo Justiniano escreveu:
> 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
>
>
>
>
> _______________________________________________
> 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