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

ASANTOS alexandresantosbr em yahoo.com.br
Segunda Novembro 21 17:30:49 BRST 2011


  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

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20111121/23fa424b/attachment.html>


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