[R-br] out of topic

Éder Comunello comunello.eder em gmail.com
Segunda Maio 23 10:02:34 BRT 2016


Mauro, bom dia!

A instrução splancs::areapl(...) é uma chamada da função areapl() que
pertence ao pacote {splancs}, sem carregá-lo. O erro se dá, provavelmente,
por você não ter o pacote instalado. Tente novamente após instalar o pacote
com install.packages("splancs", dep=T).


​
================================================
Éder Comunello
Agronomist (UEM), MSc in Environ. Sciences (UEM)
DSc in Agricultural Systems Engineering (USP/Esalq)
Brazilian Agricultural Research Corporation (Embrapa)
Dourados, MS, Brazil |<O>|
================================================
GEO, -22.2752, -54.8182, 408m
UTC-04:00 / DST: UTC-03:00




2016-05-22 21:40 GMT-04:00 sznelwar em uol.com.br <sznelwar em uol.com.br>:

> Tentei rodar vosso código, mas veja o que aconteceu mais abaixo!
>
> > da <- data.frame(Tree=rep(c("CB6", "CB7", "MB10"), each=8), ID=rep(1:8,
> 3),
> +                 AZ=c(240.7, 276.6, 301.1, 51.9, 110.8, 130, NA, NA,
> 211.3, 182.1,
> +                      178, 111.6, 29.4, 13.8, 307.7, 274.2, 325.5, 228.8,
> 192.9, 138.9,
> +                      92.4, 35.9, 330.8, NA),
> +                 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,
> +                      4.5, 7.6, 3.2, 6.1, 10, 3.2, 3.9, 6.9, 4.2, 3.4,
> NA))
> >
> > ### remove NA's e calcula coordenadas x e y
> > da <- da[complete.cases(da),]
> > da$x = da$DH*cos(da$AZ*pi/180)
> > da$y = da$DH*sin(da$AZ*pi/180)
> > da
>    Tree ID    AZ   DH          x          y
> 1   CB6  1 240.7  3.6 -1.7617768 -3.1394494
> 2   CB6  2 276.6  5.6  0.6436480 -5.5628875
> 3   CB6  3 301.1  3.3  1.7045600 -2.8256814
> 4   CB6  4  51.9  3.3  2.0362184  2.5968856
> 5   CB6  5 110.8  2.5 -0.8877674  2.3370642
> 6   CB6  6 130.0  6.4 -4.1138407  4.9026844
> 9   CB7  1 211.3  4.5 -3.8450647 -2.3378360
> 10  CB7  2 182.1  4.3 -4.2971121 -0.1575679
> 11  CB7  3 178.0  3.4 -3.3979288  0.1186583
> 12  CB7  4 111.6  4.6 -1.6933729  4.2769718
> 13  CB7  5  29.4  2.4  2.0909131  1.1781690
> 14  CB7  6  13.8  4.5  4.3701043  1.0734006
> 15  CB7  7 307.7  7.6  4.6476055 -6.0132989
> 16  CB7  8 274.2  3.2  0.2343622 -3.1914063
> 17 MB10  1 325.5  6.1  5.0271698 -3.4550780
> 18 MB10  2 228.8 10.0 -6.5868946 -7.5241491
> 19 MB10  3 192.9  3.2 -3.1192358 -0.7144004
> 20 MB10  4 138.9  3.9 -2.9388972  2.5637635
> 21 MB10  5  92.4  6.9 -0.2889420  6.8939475
> 22 MB10  6  35.9  4.2  3.4021749  2.4627639
> 23 MB10  7 330.8  3.4  2.9679351 -1.6587228
> >
> > ### "fecha" polígonos
> > da2 <- NULL
> > for (tree in unique(da$Tree)) {
> +      sel <- da[da$Tree==tree,]
> +      sel <- rbind(sel, sel[1,])
> +      da2 <- rbind(da2, sel)
> + }
> >
> > ### visualiza formas das copas
> > par(mfrow=c(2,2))
> > for (tree in unique(da$Tree)) {
> +      sel <- da[da$Tree==tree,]
> +      plot(sel$y~sel$x, type="n", asp=T, xlab=NA, ylab=NA,
> xlim=c(-10,10), ylim=c(-10,10))
> +      polygon(sel$y~sel$x, col="light green", bor=3)
> +      area <- paste(round(splancs::areapl(cbind(sel$x, sel$y)),2 ), "m²")
> +      text(6,6, area)
> + }
> Error in loadNamespace(name) : there is no package called ‘splancs’
>
> >
>
>
>
> Gabriel, bom dia!
>
> 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...
>
>
> ### <code r>
> da <- data.frame(Tree=rep(c("CB6", "CB7", "MB10"), each=8), ID=rep(1:8, 3),
>                 AZ=c(240.7, 276.6, 301.1, 51.9, 110.8, 130, NA, NA, 211.3,
> 182.1,
>                      178, 111.6, 29.4, 13.8, 307.7, 274.2, 325.5, 228.8,
> 192.9, 138.9,
>                      92.4, 35.9, 330.8, NA),
>                 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,
>                      4.5, 7.6, 3.2, 6.1, 10, 3.2, 3.9, 6.9, 4.2, 3.4, NA))
>
> ### remove NA's e calcula coordenadas x e y
> da <- da[complete.cases(da),]
> da$x = da$DH*cos(da$AZ*pi/180)
> da$y = da$DH*sin(da$AZ*pi/180)
> da
>
> ### "fecha" polígonos
> da2 <- NULL
> for (tree in unique(da$Tree)) {
>      sel <- da[da$Tree==tree,]
>      sel <- rbind(sel, sel[1,])
>      da2 <- rbind(da2, sel)
> }
>
> ### visualiza formas das copas
> par(mfrow=c(2,2))
> for (tree in unique(da$Tree)) {
>      sel <- da[da$Tree==tree,]
>      plot(sel$y~sel$x, type="n", asp=T, xlab=NA, ylab=NA, xlim=c(-10,10),
> ylim=c(-10,10))
>      polygon(sel$y~sel$x, col="light green", bor=3)
>      area <- paste(round(splancs::areapl(cbind(sel$x, sel$y)),2 ), "m²")
>      text(6,6, area)
> }
>
> ### Exemplos de operações com um polígono
> p1 <- as.matrix(da2[1:7, 5:6])
> splancs::areapl(p1) # [1] 31.77187 m²
> p1.d <- as.matrix(dist(p1))
> p1.l <- sapply(1:(nrow(p1.d)-1), function(x) p1.d[x, x+1])
> sum(p1.l) # perimeter - 27.21928 m
>
> require(sp)
> p1.sp <- SpatialPolygons(list(Polygons(list(Polygon(p1)), "pol1")))
> rgeos::gArea(p1.sp) # [1] 31.77187 m²
>
> require(geosphere)
> areaPolygon(p1.sp) # 390888183993 ???
> perimeter(p1.sp)   # 3014297 ???
> ### geosphere considera que seriam coordenadas em graus
>
> ### é possível calcular um fator de conversão
> conv <- sqrt(areaPolygon(p1.sp)/rgeos::gArea(p1.sp)); conv # ~ 110919m
> areaPolygon(p1.sp)/conv^2 # 31.77187 m²
> perimeter(p1.sp)/conv     # 27.17573 m
>
> ### Cálculo para os três polígonos
>
> for (tree in unique(da2$Tree)) {
>      sel <- da2[da2$Tree==tree, 5:6]
>      sel.sp <- SpatialPolygons(list(Polygons(list(Polygon(sel)), "pol1")))
>      conv <- sqrt(areaPolygon(sel.sp)/rgeos::gArea(sel.sp))
>      print(paste(tree, round(areaPolygon(sel.sp)/conv^2, 1),
>                  round(perimeter(sel.sp)/conv, 1)))
> }
>
> # Área e perímetros
> # [1] "CB6 31.8 27.2"
> # [1] "CB7 48.1 31.3"
> # [1] "MB10 74 40.8"
>
> ### </code>
>
>
> [image: Imagem inline 1]
>
>
>> ================================================
> Éder Comunello
> Agronomist (UEM), MSc in Environ. Sciences (UEM)
> DSc in Agricultural Systems Engineering (USP/Esalq)
> Brazilian Agricultural Research Corporation (Embrapa)
> Dourados, MS, Brazil |<O>|
> ================================================
> GEO, -22.2752, -54.8182, 408m
> UTC-04:00 / DST: UTC-03:00
>
>
>
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20160523/38fefaa1/attachment.html>


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