
Alguma coisa deve ter mudado na atualização do R, porque outra pessoa reclama de coisa parecida: http://r-sig-geo.2731867.n2.nabble.com/package-raster-function-clump-td75838... Ainda que o seu erro tenha sido resolvido, eu a encorajaria a enviar uma mensagem para a lista R-SIG-GEO comentando sobre o erro que você descobriu. Saudações, -- Thiago V. dos Santos PhD student Land and Atmospheric Science University of Minnesota http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/inde... Phone: (612) 323 9898 ________________________________ From: Ludmila Rattis <ludmilarattis@gmail.com> To: r-br@listas.c3sl.ufpr.br; Thiago V. dos Santos <thi_veloso@yahoo.com.br> Sent: Wednesday, August 21, 2013 11:50 AM Subject: Re: [R-br] get coordinates of patches (clumps) in a raster map RESOLVIDO. Rodei no R 2.14 e deu certo. Antes eu estava usando o 3.0. Só não sei o porquê. Obrigada pela ajuda! 2013/8/21 Ludmila Rattis <ludmilarattis@gmail.com> Oi Thiago,
A função não dá erro. Mas não consigo o que preciso. Tentei um código bem parecido com esse segundo que você postou:
r<-raster("lemure_r") rc <- clump(r,directions=8,gaps=FALSE)
clump_id <- getValues(rc)
xy <- xyFromCell(rc,1:ncell(rc))
df <- data.frame(xy, clump_id, is_clump = rc[] %in% freq(rc, useNA = 'no')[,1])
df$is_clump
lemure<-df[df$is_clump == T, ] lemure$is_clump
e realmente dá certo com o raster aleatório, porque ele identifica cada célula como sendo pertencente a um clump. No meu caso ele reconhece os 309 clumps que eu esperava, até aí ok. O problema ocorre na linha
clump_id <- getValues(rc)
porque ele não atribui números diferentes para as células que estão em clumps diferentes, e eu preciso disso para obter o centroide. Como você verá, o comando
lemure<-df[df$is_clump == T, ]
retorna as coordenadas de TODAS as células que estão em clumps, mas não me diz em qual clump a célula está, por causa do resultado que descrevi acima.
O raster está em anexo.
[ ]'s
Ludmila
2013/8/20 Thiago V. dos Santos <thi_veloso@yahoo.com.br>
Ludmila,
Por que o seu código não funciona? Aqui no meu computador funcionou com um raster aleatório.
Você tentou usar a função clump? Ela pode ser mais próxima do que você precisa. Veja abaixo:
library(raster) library(igraph)
# Create random raster r <- raster(ncols=12, nrows=12) set.seed(0) r[] <- round(runif(ncell(r))*0.7 )
# Detect clumps and plot result rc <- clump(r) plot(rc)
# Extract coordinates xy <- coordinates(rc) lon <- xFromCol(r,1:ncol(r)) lat <- yFromRow(r,1:nrow(r))
Se o código acima não funcionar no seu computador, por favor retorne a mensagem de erro E o raster que você está usando para que a lista possa ajudar.
Saudações, -- Thiago V. dos Santos PhD student Land and Atmospheric Science University of Minnesota http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/inde... Phone: (612) 323 9898
________________________________ From: Ludmila Rattis <ludmilarattis@gmail.com> To: R-br@listas.c3sl.ufpr.br Sent: Tuesday, August 20, 2013 1:54 PM Subject: [R-br] get coordinates of patches (clumps) in a raster map
Prezados,
Preciso extrair as coordenadas dos centroides de diferentes clumps de um raster. Para isso, usei o seguinte código:
p <- data.frame(rasterToPoints(meu_raster)) a<- p[p$layer > 0,]
c<-sapply(split(p[, c("x", "y")], p$layer), colMeans)
Contudo, esse código não está funcionando.
Alguém saberia me dizer como posso obter tais coordenadas?
[]'s
Ludmila Rattis Programa de Pós-graduação em Ecologia/UNICAMP Conservation Biogeography Lab http://www.wix.com/rdloyola/lab _______________________________________________ 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.
_______________________________________________ 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.
-- Me. Ludmila Rattis
Programa de Pós-graduação em Ecologia/UNICAMP Conservation Biogeography Lab http://www.wix.com/rdloyola/lab
-- Me. Ludmila Rattis Programa de Pós-graduação em Ecologia/UNICAMP Conservation Biogeography Lab http://www.wix.com/rdloyola/lab