<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Gabriel, bom dia!</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Segue uma ideia inicial para seu caso. Considerei que as distâncias que você forneceu são de fato as distâncias horizontais e que os pontos foram tomados a partir de um único ponto de visada. Dê uma olhada no desenho das copas, de fato eu esperava copas mais circulares...</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default"><div class="gmail_default"><span style="font-family:monospace,monospace">### <code r></span><br></div><div class="gmail_default"><div class="gmail_default"><font face="monospace, monospace">da <- data.frame(Tree=rep(c("CB6", "CB7", "MB10"), each=8), ID=rep(1:8, 3),</font></div><div class="gmail_default"><font face="monospace, monospace">                AZ=c(240.7, 276.6, 301.1, 51.9, 110.8, 130, NA, NA, 211.3, 182.1, </font></div><div class="gmail_default"><font face="monospace, monospace">                     178, 111.6, 29.4, 13.8, 307.7, 274.2, 325.5, 228.8, 192.9, 138.9,</font></div><div class="gmail_default"><font face="monospace, monospace">                     92.4, 35.9, 330.8, NA), </font></div><div class="gmail_default"><font face="monospace, monospace">                DH=c(3.6, 5.6, 3.3, 3.3, 2.5, 6.4, NA, NA, 4.5, 4.3, 3.4, 4.6, 2.4, </font></div><div class="gmail_default"><font face="monospace, monospace">                     4.5, 7.6, 3.2, 6.1, 10, 3.2, 3.9, 6.9, 4.2, 3.4, NA))</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### remove NA's e calcula coordenadas x e y</font></div><div class="gmail_default"><font face="monospace, monospace">da <- da[complete.cases(da),]</font></div><div class="gmail_default"><font face="monospace, monospace">da$x = da$DH*cos(da$AZ*pi/180)</font></div><div class="gmail_default"><font face="monospace, monospace">da$y = da$DH*sin(da$AZ*pi/180)</font></div><div class="gmail_default"><font face="monospace, monospace">da</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### "fecha" polígonos</font></div><div class="gmail_default"><font face="monospace, monospace">da2 <- NULL</font></div><div class="gmail_default"><font face="monospace, monospace">for (tree in unique(da$Tree)) {</font></div><div class="gmail_default"><font face="monospace, monospace">     sel <- da[da$Tree==tree,]</font></div><div class="gmail_default"><font face="monospace, monospace">     sel <- rbind(sel, sel[1,])</font></div><div class="gmail_default"><font face="monospace, monospace">     da2 <- rbind(da2, sel)</font></div><div class="gmail_default"><font face="monospace, monospace">}</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### visualiza formas das copas</font></div><div class="gmail_default"><font face="monospace, monospace">par(mfrow=c(2,2))</font></div><div class="gmail_default"><font face="monospace, monospace">for (tree in unique(da$Tree)) {</font></div><div class="gmail_default"><font face="monospace, monospace">     sel <- da[da$Tree==tree,]</font></div><div class="gmail_default"><font face="monospace, monospace">     plot(sel$y~sel$x, type="n", asp=T, xlab=NA, ylab=NA, xlim=c(-10,10), ylim=c(-10,10))</font></div><div class="gmail_default"><font face="monospace, monospace">     polygon(sel$y~sel$x, col="light green", bor=3)</font></div><div class="gmail_default"><font face="monospace, monospace">     area <- paste(round(splancs::areapl(cbind(sel$x, sel$y)),2 ), "m²")</font></div><div class="gmail_default"><font face="monospace, monospace">     text(6,6, area)</font></div><div class="gmail_default"><font face="monospace, monospace">}</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### Exemplos de operações com um polígono</font></div><div class="gmail_default"><font face="monospace, monospace">p1 <- as.matrix(da2[1:7, 5:6])</font></div><div class="gmail_default"><font face="monospace, monospace">splancs::areapl(p1) # [1] 31.77187 m²</font></div><div class="gmail_default"><font face="monospace, monospace">p1.d <- as.matrix(dist(p1))</font></div><div class="gmail_default"><font face="monospace, monospace">p1.l <- sapply(1:(nrow(p1.d)-1), function(x) p1.d[x, x+1])</font></div><div class="gmail_default"><font face="monospace, monospace">sum(p1.l) # perimeter - 27.21928 m</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">require(sp) </font></div><div class="gmail_default"><font face="monospace, monospace">p1.sp <- SpatialPolygons(list(Polygons(list(Polygon(p1)), "pol1")))</font></div><div class="gmail_default"><font face="monospace, monospace">rgeos::gArea(p1.sp) # [1] 31.77187 m²</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">require(geosphere)</font></div><div class="gmail_default"><font face="monospace, monospace">areaPolygon(p1.sp) # 390888183993 ??? </font></div><div class="gmail_default"><font face="monospace, monospace">perimeter(p1.sp)   # 3014297 ???</font></div><div class="gmail_default"><font face="monospace, monospace">### geosphere considera que seriam coordenadas em graus</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### é possível calcular um fator de conversão</font></div><div class="gmail_default"><font face="monospace, monospace">conv <- sqrt(areaPolygon(p1.sp)/rgeos::gArea(p1.sp)); conv # ~ 110919m</font></div><div class="gmail_default"><font face="monospace, monospace">areaPolygon(p1.sp)/conv^2 # 31.77187 m²</font></div><div class="gmail_default"><font face="monospace, monospace">perimeter(p1.sp)/conv     # 27.17573 m</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### Cálculo para os três polígonos</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">for (tree in unique(da2$Tree)) {</font></div><div class="gmail_default"><font face="monospace, monospace">     sel <- da2[da2$Tree==tree, 5:6]</font></div><div class="gmail_default"><font face="monospace, monospace">     sel.sp <- SpatialPolygons(list(Polygons(list(Polygon(sel)), "pol1")))</font></div><div class="gmail_default"><font face="monospace, monospace">     conv <- sqrt(areaPolygon(sel.sp)/rgeos::gArea(sel.sp))</font></div><div class="gmail_default"><font face="monospace, monospace">     print(paste(tree, round(areaPolygon(sel.sp)/conv^2, 1), </font></div><div class="gmail_default"><font face="monospace, monospace">                 round(perimeter(sel.sp)/conv, 1)))</font></div><div class="gmail_default"><font face="monospace, monospace">}</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"># Área e perímetros</font></div><div class="gmail_default"><font face="monospace, monospace"># [1] "CB6 31.8 27.2"</font></div><div class="gmail_default"><font face="monospace, monospace"># [1] "CB7 48.1 31.3"</font></div><div class="gmail_default"><font face="monospace, monospace"># [1] "MB10 74 40.8"</font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace">### </code></font></div></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div><div class="gmail_default"><font face="monospace, monospace"><img src="cid:ii_154d03abe656e48f" alt="Imagem inline 1" width="503" height="414"><br></font></div><div class="gmail_default"><font face="monospace, monospace"><br></font></div></div></div><div class="gmail_extra"><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font face="arial, helvetica, sans-serif" style="font-size:small"><div style="font-family:'trebuchet ms',sans-serif;display:inline">​</div></font><font face="arial, helvetica, sans-serif" style="font-size:12.8px"><span style="font-size:small">================================================</span><br>Éder Comunello</font><div style="font-size:12.8px"><span style="font-family:arial,helvetica,sans-serif">Agronomist (UEM), MSc in Environ. Sciences (UEM)</span><font face="arial, helvetica, sans-serif"><br></font></div><div style="font-size:12.8px"><div style="font-size:small"><span style="font-family:arial,helvetica,sans-serif">DSc in Agricultural Systems Engineering (USP/Esalq)</span><br></div><div><span style="font-size:small">Brazilian Agricultural Research Corporation (</span><font face="arial, helvetica, sans-serif" style="font-size:small">Embrapa)</font></div><div><div><font face="arial, helvetica, sans-serif" style="font-size:small">Dourados, MS, Brazil </font><font face="arial, helvetica, sans-serif" size="2">|<O>|</font></div><div style="font-size:small"><span style="font-family:arial,helvetica,sans-serif">================================================</span><br></div></div></div><div style="font-size:small"><font face="arial, helvetica, sans-serif">GEO, </font>-22.2752, -54.8182, 408m<span style="font-family:arial,helvetica,sans-serif"><br></span></div><div style="font-size:12.8px"><span style="font-size:small;font-family:arial,helvetica,sans-serif">UTC-04:00 / DST: UTC-03:00</span></div><div><div><div><br></div><div><br></div></div><div style="font-size:small"><br></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote">Em 20 de maio de 2016 09:51, gabriel henrique pires de mello ribeiro <span dir="ltr"><<a href="mailto:gabrielgiga@gmail.com" target="_blank">gabrielgiga@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Prezado Éder, segue o exemplo de três árvores, note que para cada árvore o número de medidas de distância e azimute entre os pontos ao redor da copa podem variar (de acordo com as dimensões da copa). As medidas Az1 a Az8 representam os azimutes e D1 a D8 a distância entre os pontos de medição.<div>grato</div><span class="HOEnZb"><font color="#888888"><div>Gabriel Ribeiro  </div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">Em 20 de maio de 2016 09:41, Éder Comunello <span dir="ltr"><<a href="mailto:comunello.eder@gmail.com" target="_blank">comunello.eder@gmail.com</a>></span> escreveu:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif">Gabriel, bom dia!</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Se você tem as coordenadas polares, pode obter as coordenadas cartesianas e somar a distância entre pontos obtidas com dist() ou utilizar o próprio {geosphere}, função perimeter(). Se não me engano {geosphere} trabalha só com lat/long, mas poderia converter o valor considerando que um grau ~111km.</div><div class="gmail_default" style="font-family:verdana,sans-serif"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif">Talvez se você fornecer os dados de uma ou duas árvores, alguém possa dar uma sugestão mais precisa.</div><div class="gmail_extra"><br clear="all"><div><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><font face="arial, helvetica, sans-serif" style="font-size:small"><div style="font-family:'trebuchet ms',sans-serif;display:inline">​</div></font><font face="arial, helvetica, sans-serif" style="font-size:12.8px"><span style="font-size:small">================================================</span><br>Éder Comunello</font><div style="font-size:12.8px"><span style="font-family:arial,helvetica,sans-serif">Agronomist (UEM), MSc in Environ. Sciences (UEM)</span><font face="arial, helvetica, sans-serif"><br></font></div><div style="font-size:12.8px"><div style="font-size:small"><span style="font-family:arial,helvetica,sans-serif">DSc in Agricultural Systems Engineering (USP/Esalq)</span><br></div><div><span style="font-size:small">Brazilian Agricultural Research Corporation (</span><font face="arial, helvetica, sans-serif" style="font-size:small">Embrapa)</font></div><div><div><font face="arial, helvetica, sans-serif" style="font-size:small">Dourados, MS, Brazil </font><font face="arial, helvetica, sans-serif" size="2">|<O>|</font></div><div style="font-size:small"><span style="font-family:arial,helvetica,sans-serif">================================================</span><br></div></div></div><div style="font-size:small"><font face="arial, helvetica, sans-serif">GEO, </font>-22.2752, -54.8182, 408m<span style="font-family:arial,helvetica,sans-serif"><br></span></div><div style="font-size:12.8px"><span style="font-size:small;font-family:arial,helvetica,sans-serif">UTC-04:00 / DST: UTC-03:00</span></div><div><div><div><br></div><div><br></div></div><div style="font-size:small"><br></div></div></div></div></div></div></div></div></div></div></div>
<br><div class="gmail_quote"><div><div>Em 19 de maio de 2016 10:13, gabriel henrique pires de mello ribeiro <span dir="ltr"><<a href="mailto:gabrielgiga@gmail.com" target="_blank">gabrielgiga@gmail.com</a>></span> escreveu:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div><div dir="ltr"><div>Prezados estou tentando definir o perímetro de copas de árvores após a derrubada. Utilizando um true pulse, medi as distâncias e azimutes ao redor da copa, até o retorno ao ponto de partida. Ainda não consegui achar um pacote adequado, e.g. o pacote geosphere realiza algo similar (mas no caso a partir de coordenadas geográficas ele computa a distância entre linhas). Eu gostaria de fazer o delineamento do perímetro a partir da distância e azimuth entre os pontos (ao redor da copa de cada árvore derrubada). Qualquer sugestão será bem vinda.<br></div><div>grato<span><font color="#888888"><br></font></span></div><span><font color="#888888"><div>Gabriel Ribeiro <br></div></font></span></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" rel="noreferrer" 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" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div></div>
<br>_______________________________________________<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" rel="noreferrer" 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" rel="noreferrer" target="_blank">http://www.leg.ufpr.br/r-br-guia</a>) e forneça código mínimo reproduzível.<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>