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

Thiago V. dos Santos thi_veloso em yahoo.com.br
Quarta Agosto 21 13:59:01 BRT 2013


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 
>>_______________________________________________
>>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 


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


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