[R-br] get coordinates of patches (clumps) in a raster map

Ludmila Rattis ludmilarattis em gmail.com
Quarta Agosto 21 14:40:36 BRT 2013


Oi Thiago,

Além desse suposto probleminha no pacote raster, a função ddply é do pacote
plyr, que não roda no R 3.0.

Já me inscrevi na lista e vou reportar o erro por lá.

Obrigada,

Ludmila


2013/8/21 Thiago V. dos Santos <thi_veloso em yahoo.com.br>

> 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-td7583883.html
>
> 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/index.htm
> Phone: (612) 323 9898
>
>   ------------------------------
>  *From:* Ludmila Rattis <ludmilarattis em gmail.com>
>
> *To:* r-br em listas.c3sl.ufpr.br; Thiago V. dos Santos <
> thi_veloso em 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 em 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 em 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/index.htm
> Phone: (612) 323 9898
>
>   ------------------------------
>  *From:* Ludmila Rattis <ludmilarattis em gmail.com>
> *To:* R-br em 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 <http://sites.ffclrp.usp.br/ficus>
>
> _______________________________________________
> 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.
>
>
>
>
> --
> *Me. Ludmila Rattis*
>
> Programa de Pós-graduação em Ecologia/UNICAMP
> Conservation Biogeography Lab
> http://www.wix.com/rdloyola/lab <http://sites.ffclrp.usp.br/ficus>
>
>
>
>
> --
> *Me. Ludmila Rattis*
> Programa de Pós-graduação em Ecologia/UNICAMP
> Conservation Biogeography Lab
> http://www.wix.com/rdloyola/lab <http://sites.ffclrp.usp.br/ficus>
>
>
>


-- 
*Me. Ludmila Rattis*
Programa de Pós-graduação em Ecologia/UNICAMP
Conservation Biogeography Lab
http://www.wix.com/rdloyola/lab <http://sites.ffclrp.usp.br/ficus>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130821/90a17c01/attachment.html>


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