Calcular sobreposição de poligonos de um "SpatialPolygonsDataFrame" do pacote "sp"

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

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@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@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.

Veja função over() do pacote 'sp'. Veja mais em http://cran.r-project.org/web/packages/sp/vignettes/over.pdf Elias T. Krainski
________________________________ De: Augusto Ribas <ribas.aca@gmail.com> Para: r-br@listas.c3sl.ufpr.br Enviadas: Domingo, 1 de Janeiro de 2012 21:03 Assunto: [R-br] Calcular sobreposição de poligonos de um "SpatialPolygonsDataFrame" do pacote "sp"
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@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.
participantes (3)
-
Augusto Ribas
-
Eder David Borges da Silva
-
Elias T. Krainski