
p.cen <- as.data.frame(xyFromCell(r, df$cel)) names(p.cen) <- c("xc", "yc") df <- data.frame(df, p.cen) df #dput(df) #structure(list(x = -150, y = -80, cel = 91, col = 1L, row = 10, V1 = 61, V2 = 15, xc = -162, yc = -81), .Names = c("x", "y", "cel", "col", "row", "V1", "V2", "xc", "yc"), row.names = c(NA, -1L), class = "data.frame") 2017-02-03 14:00 GMT-02:00 ASANTOS <alexandre.santos@cas.ifmt.edu.br>:
Obrigado Jônatan,
Perfeita essa função usando getValuesBlocke consegui fazer a extração de 10 valores na horizontal à partir de uma coordenada arbitrária como xy(-150,80), porém não consigo agora capturar além dos valores dos pixel a coordenada central desses pixel pelo output dado pela função, poderia me ajudar?
No meu caso tentei usar a função xyFromCell():
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(-150) y <- c(-80) p <- data.frame(x,y) pontos <- SpatialPoints(p)
p$cel <- cellFromXY(r, pontos) p$col <- colFromCell(r, p$cel) p$row <- rowFromCell(r, p$cel) p plot(r) text(r) points(pontos, pch = 4, col = 2)
library(plyr) vals2cols <- ldply(1:nrow(p), function(ir){ getValuesBlock(r, col = p$col[ir], ncols = 10, row = p$row[ir], nrows = 1)
}# end fun )
df <- data.frame(p, vals2cols) df
p.cen <- xyFromCell(r, vals2cols); p.cen
#END-------------------------------------------------------- -----------------------------------------------
-- ====================================================================== 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 <+55%2065%2099686-6970> (VIVO) (+55) 65 3221-2674 <+55%2065%203221-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 01/02/2017 22:01, Jônatan escreveu:
use a função getValuesBlock do raster.
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) p <- data.frame(x,y) pontos <- SpatialPoints(p)
p$cel <- cellFromXY(r, pontos) p$col <- colFromCell(r, p$cel) p$row <- rowFromCell(r, p$cel) p plot(r) text(r) points(pontos, pch = 4, col = 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
2017-01-26 17:43 GMT-02:00 ASANTOS via R-br <r-br@listas.c3sl.ufpr.br>:
Prezados Membros,
Tenho um raster hipotético r:
require(raster); require(sp)
## 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)
pontos <- SpatialPoints(cbind(x,y))
cells <- cellFromXY(r, pontos); cells p.cen <- xyFromCell(r, cells); p.cen
values <- extract(r,p.cen) dados<-cbind(p.cen,cells,values)
No entanto, eu gostaria de encontrar um modo para extrair o valor dos pixels, no qual, eu selecionaria uma coordenada e a função realizaria a extração dos pixels de linhas verticais inteiras do raster a cada dois pixels à partir da coordenada dada, por exemplo?
Alguém poderia me dar uma ideia de como chegar a esse resultado?
Obrigado,
-- ====================================================================== 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/ ======================================================================
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e fornea cdigo mnimo reproduzvel.
-- ############################################################### ## Jônatan Dupont Tatsch ## Professor do Departamento de Física ## Centro de Ciências Exatas e Naturais (CCNE) ## Universidade Federal de Santa Maria - UFSM ## Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - 97105-900 ## Telefone: +55(55)33012083 <+55%2055%203301-2083> ## www.ufsm.br/meteorologia ###############################################################
-- ############################################################### ## Jônatan Dupont Tatsch ## Professor do Departamento de Física ## Centro de Ciências Exatas e Naturais (CCNE) ## Universidade Federal de Santa Maria - UFSM ## Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - 97105-900 ## Telefone: +55(55)33012083 ## www.ufsm.br/meteorologia ###############################################################