<div dir="ltr">Oi Thiago,<div><br></div><div>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:</div><div><div><br></div><div>r<-raster("lemure_r")</div>
<div>rc <- clump(r,directions=8,gaps=FALSE)<br></div><div>clump_id <- getValues(rc) <br></div><div>xy <- xyFromCell(rc,1:ncell(rc))<br></div><div>df <- data.frame(xy, clump_id, is_clump = rc[] %in% freq(rc, useNA = 'no')[,1])<br>
</div><div>df$is_clump<br></div><div>lemure<-df[df$is_clump == T, ]</div><div>lemure$is_clump<br></div></div><div><br></div><div>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</div>
<div><br></div><div>clump_id <- getValues(rc)</div><div><br></div><div>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</div>
<div><br></div><div>lemure<-df[df$is_clump == T, ]<br></div><div><br></div><div>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.</div>
<div><br></div><div>O raster está em anexo.</div><div><br></div><div>[ ]'s</div><div><br></div><div>Ludmila</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/8/20 Thiago V. dos Santos <span dir="ltr"><<a href="mailto:thi_veloso@yahoo.com.br" target="_blank">thi_veloso@yahoo.com.br</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div style="font-size:12pt;font-family:times new roman,new york,times,serif"><div style="font-family:'times new roman','new york',times,serif;font-size:12pt">
<span>Ludmila,</span></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif"><span><br></span></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif">
Por que o seu código não funciona? Aqui no meu computador funcionou com um raster aleatório.</div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif">
<br></div><div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif">Você tentou usar a função clump? Ela pode ser mais próxima do que você precisa. Veja abaixo:</div>
<div style="font-style:normal;font-size:16px;background-color:transparent;font-family:'times new roman','new york',times,serif"><br></div><div style="background-color:transparent">library(raster)</div><div style="background-color:transparent">
library(igraph)</div><div style="background-color:transparent"><br></div><div style="background-color:transparent"># Create random raster</div><div style="background-color:transparent">r <- raster(ncols=12, nrows=12)</div>
<div style="background-color:transparent">set.seed(0)</div><div style="background-color:transparent">r[] <- round(runif(ncell(r))*0.7 )</div><div style="background-color:transparent"><br></div><div style="background-color:transparent">
# Detect clumps and plot result</div><div style="background-color:transparent">rc <- clump(r)</div><div style="background-color:transparent">plot(rc)</div><div style="background-color:transparent"><br></div><div style="background-color:transparent">
# Extract coordinates</div><div style="background-color:transparent">xy <- coordinates(rc)</div><div style="background-color:transparent">lon <- xFromCol(r,1:ncol(r))</div><div style="background-color:transparent">
lat <- yFromRow(r,1:nrow(r))</div>
<div style="font-family:'times new roman','new york',times,serif;font-size:12pt"><br></div><div style="font-family:'times new roman','new york',times,serif;font-size:12pt">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.</div>
<div style="font-family:'times new roman','new york',times,serif;font-size:12pt"><span style="font-size:12pt"> </span><br></div><div style="font-family:'times new roman','new york',times,serif;font-size:12pt">
Saudações,<br>--<br>Thiago V. dos Santos<br>PhD student<br>Land and Atmospheric Science<br>University of Minnesota<br><a href="http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm" target="_blank">http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm</a><br>
Phone: <a href="tel:%28612%29%20323%209898" value="+556123239898" target="_blank">(612) 323 9898</a></div><div style="font-family:'times new roman','new york',times,serif;font-size:12pt"><br></div> <div style="font-family:'times new roman','new york',times,serif;font-size:12pt">
<div style="font-family:'times new roman','new york',times,serif;font-size:12pt"> <div dir="ltr"> <hr size="1"> <font face="Arial"> <b><span style="font-weight:bold">From:</span></b> Ludmila Rattis <<a href="mailto:ludmilarattis@gmail.com" target="_blank">ludmilarattis@gmail.com</a>><br>
<b><span style="font-weight:bold">To:</span></b> <a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a> <br> <b><span style="font-weight:bold">Sent:</span></b> Tuesday, August 20, 2013 1:54 PM<br>
<b><span style="font-weight:bold">Subject:</span></b> [R-br] get coordinates of patches (clumps) in a raster map<br> </font> </div> <div><div><div class="h5"><br><div><div dir="ltr">Prezados,<div><br></div><div>Preciso extrair as coordenadas dos centroides de diferentes clumps de um raster. Para isso, usei o seguinte código: </div>
<div><br></div><div><div>p <- data.frame(rasterToPoints(meu_raster))</div>
<div>a<- p[p$layer > 0,]<br></div><div>c<-sapply(split(p[, c("x", "y")], p$layer), colMeans)<br></div><div><br></div><div>Contudo, esse código não está funcionando.</div><div><br></div><div>Alguém saberia me dizer como posso obter tais coordenadas?</div>
<div><br></div><div>[]'s</div><div><br></div><div><b>Ludmila Rattis</b><br></div>Programa de Pós-graduação em Ecologia/UNICAMP<br>
Conservation Biogeography Lab<br>
<a rel="nofollow" href="http://www.wix.com/rdloyola/lab" target="_blank">http://www.wix.com/rdloyola/lab</a><a rel="nofollow" href="http://sites.ffclrp.usp.br/ficus" target="_blank"></a>
</div></div></div><br></div></div>_______________________________________________<br>R-br mailing list<br><a href="mailto:R-br@listas.c3sl.ufpr.br" target="_blank">R-br@listas.c3sl.ufpr.br</a><br><a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br><br></div> </div> </div> </div></div><br>_______________________________________________<br>
R-br mailing list<br>
<a href="mailto:R-br@listas.c3sl.ufpr.br">R-br@listas.c3sl.ufpr.br</a><br>
<a href="https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br" target="_blank">https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br</a><br>
Leia o guia de postagem (<a href="http://www.leg.ufpr.br/r-br-guia" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>
<b>Me. Ludmila Rattis</b><br>Programa de Pós-graduação em Ecologia/UNICAMP<br>
Conservation Biogeography Lab<br>
<a href="http://www.wix.com/rdloyola/lab" target="_blank">http://www.wix.com/rdloyola/lab</a><a href="http://sites.ffclrp.usp.br/ficus" target="_blank"></a>
</div>