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

Jônatan jdtatsch em gmail.com
Sexta Fevereiro 3 15:04:42 BRST 2017


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 em 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 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 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 em 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 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/
>> ======================================================================
>>
>> _______________________________________________
>> R-br mailing list
>> R-br em 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
###############################################################
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20170203/084b7bb4/attachment.html>


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