[R-br] Selecionar a extração de valores dos pixels em linhas a cada número de pixels arbitrário

ASANTOS alexandre.santos em cas.ifmt.edu.br
Sexta Fevereiro 3 17:07:05 BRST 2017


Muito obrigado Jônatan, ajudou muito!!!

-- 
======================================================================
Alexandre dos Santos
Proteção Florestal
IFMT - Instituto Federal de Educação, Ciência e Tecnologia de Mato Grosso
Campus Cáceres
Caixa Postal 244
Avenida dos Ramires, s/n
Bairro: Distrito Industrial
Cáceres - MT                      CEP: 78.200-000
Fone: (+55) 65 99686-6970 (VIVO) (+55) 65 3221-2674 (FIXO)
e-mails:alexandresantosbr em yahoo.com.br
         alexandre.santos em cas.ifmt.edu.br
Lattes: http://lattes.cnpq.br/1360403201088680
OrcID: orcid.org/0000-0001-8232-6722   -   ResearcherID: A-5790-2016
Researchgate: www.researchgate.net/profile/Alexandre_Santos10
LinkedIn: br.linkedin.com/in/alexandre-dos-santos-87961635
Mendeley:www.mendeley.com/profiles/alexandre-dos-santos6/
======================================================================

Em 03/02/2017 16:59, Jônatan escreveu:
>
> require(raster); require(sp)
> set.seed(1)
> ## Criando um raster
> r <- raster(nc=10, nr=10)
> r <- setValues(r, round(runif(ncell(r))* 255))
> #Consigo extrair os valores dos pixels de interesse dadas as 
> coordenadas centrais dos mesmos
> # x     <- c(54,18,54,54)
> # y     <- c(27,81,9,63)
>
> # inventando ptos que não coincidam com os centros das células
> x     <- c(54,18,54,54)
> x <- x + runif(length(x), 0, 35)
> y  <- c(27,81,9,63)
> y <- y - runif(length(y), 0, 17)
>
> # data frame com pontos de interesse
> p <- data.frame(x,y)
> # celulas do raster interceptadas pelos pontos
> p$cel <- cellFromXY(r, pontos)
> p$col <- colFromCell(r, p$cel)
> p$row <- rowFromCell(r, p$cel)
> # adicionando as coordenadas centrais das células
> p.cen <- as.data.frame(xyFromCell(r, p$cel))
> names(p.cen) <- c("xc", "yc")
> p <- data.frame(p, p.cen)
> # coordenadas das células à direita
> *p.rigth <- as.data.frame(xyFromCell(r, cellFromRowCol(r, rownr = 
> df$row, df$col + 1)))*
> *names(p.rigth) <- c("xr", "yr")*
> *p <- data.frame(p, p.rigth)*
>
> p
> plot(r)
> text(r)
> points(p[, c("x", "y")], pch = 4, col = 2)
> points(p[, c("xc", "yc")], pch = 3, col = "gray", cex = 2)
> points(p[, c("xr", "yr")], pch = "_", col = "gray30", cex = 2)
>
> library(plyr)
> vals2cols <- ldply(1:nrow(p),
>                    function(ir){
>                      getValuesBlock(r,
>                                     col = p$col[ir],
>                                     ncols = 2,
>                                     row = p$row[ir],
>                                     nrows = 1)
>                    }# end fun
> )
>
> df <- data.frame(p, vals2cols)
> df
> #dput(df)
> structure(list(x = c(76.9153374827001, 30.3619045177475, 
> 63.4591051060706, 88.7439421410672), y = c(16.2306145045441, 
> 77.3754617013037, 6.80067008268088, 54.8719934166875), cel = c(48, 6, 
> 47, 18), col = c(8L, 6L, 7L, 8L), row = c(5, 1, 5, 2), xc = c(90, 18, 
> 54, 90), yc = c(9, 81, 9, 63), xr = c(126, 54, 90, 126 ), yr = c(9, 
> 81, 9, 63), V1 = c(122, 229, 6, 253), V2 = c(187, 241, 122, 97)), 
> .Names = c("x", "y", "cel", "col", "row", "xc", "yc", "xr", "yr", 
> "V1", "V2"), row.names = c(NA, -4L), class = "data.frame")

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170203/4930bacf/attachment.html>


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