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

ASANTOS alexandresantosbr em yahoo.com.br
Segunda Novembro 21 16:23:17 BRST 2011


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

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


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