[R-br] Calcular sobreposição de poligonos de um "SpatialPolygonsDataFrame" do pacote "sp"

Eder David Borges da Silva eder em leg.ufpr.br
Domingo Janeiro 1 23:03:41 BRST 2012


Augusto,
enquanto o pessoal do tapply, sapply, mcapply,.. não se manifesta,

library(adehabitatHR)
library(sp)
library(gpclib)

#Dados de exemplo
data(puechabonsp)
rel<- puechabonsp$relocs
#Estimando Area de Vida
cp <- mcp(rel[,1])

#Olhando o os poligonos
plot(cp,axes=TRUE)
text(coordinates(cp)[,1],coordinates(cp)[,2],label=c("A","B","C","D"))
#Como estao os dados
class(cp)
str(cp)

res <- matrix(NA,4,4)
for(i in 1:4){
  for(j in 1:4){
    p1 <- as(cp@'polygons'[[i]]@'Polygons'[[1]]@'coords','gpc.poly')
    p2 <- as(cp@'polygons'[[j]]@'Polygons'[[1]]@'coords','gpc.poly')
    res[i,j] <- area.poly(p1) + area.poly(p2)-area.poly(union(p1,p2))
          }}
res
## em tese area.poly(intersect(p1,p2)), deveria resolver, porem quando a
## Achei isso estranho intersecção é nula ele esta dando erro...

o estranho e que esse meu ultimo comentário deveria substituir o
area.poly(p1) + area.poly(p2)-area.poly(union(p1,p2)), porem quando
não há intersecção da um erro estranho...

Att


Em 1 de janeiro de 2012 21:03, Augusto Ribas <ribas.aca em gmail.com> escreveu:
> Ola, primeiro feliz ano novo todos da lista.
>
> Eu gostaria de calcular a sobreposição entre poligonos, mas não consigo.
> Nas verdade eu tenho varios poligos gostaria de uma matriz de sobreposição,
> como a que demonstro ali no final do script.
> Nao achei como fazer isso ainda. Procurando por Overlap pelas listas de R
> não tenho tido muito sucesso
> então acho que o problema deva ser como estou procurando.
>
>
> Os poligonos são areas de vida de alguns bixinhos e a sobreposição da a
> informação se eles deixam
> outro individuos entrarem no territorio deles ou não, então é isso que estou
> tentando fazer e nao consigo.
>
> Segue um CMR pra vcs verem como são os dados e um exemplo de como gostaria
> do do resultado mais ou menos:
>
>
> #Pacote com dados de exemplo, ele necessita do pacote sp
> library(adehabitatHR)
> library(sp)
>
> #Dados de exemplo
> data(puechabonsp)
> rel<- puechabonsp$relocs
>
> #Estimando Area de Vida
> cp <- mcp(rel[,1])
>
> #Olhando o os poligonos
> plot(cp)
> text(coordinates(cp)[,1],coordinates(cp)[,2],label=c("A","B","C","D"))
>
> #Como estao os dados
> class(cp)
> [1] "SpatialPolygonsDataFrame"
> attr(,"package")
> [1] "sp"
>
> #O output que eu gostaria
> #    A     B      C   D
> #A 100 0      0    0
> #B 0     100 0     0
> #C 0      0   100  X
> #D 0      0     X     100
>
> --
> Grato
> Augusto C. A. Ribas
>
> Site Pessoal: http://augustoribas.heliohost.org
> Lattes: http://lattes.cnpq.br/7355685961127056
>
>
> _______________________________________________
> 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.


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