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

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@yahoo.com.br alexandre.santos@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")
participantes (1)
-
ASANTOS