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/ ======================================================================
#dput(df)require(raster); require(sp)set.seed(1)## Criando um rasterr <- 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élulasx <- 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 interessep <- data.frame(x,y)# celulas do raster interceptadas pelos pontosp$cel <- cellFromXY(r, pontos)p$col <- colFromCell(r, p$cel)p$row <- rowFromCell(r, p$cel)# adicionando as coordenadas centrais das célulasp.cen <- as.data.frame(xyFromCell(r, p$cel))names(p.cen) <- c("xc", "yc")p <- data.frame(p, p.cen)# coordenadas das células à direitap.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)
pplot(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)dfstructure(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")