[R-br] Obter valor médio dos pixels de uma imagem gerada por krigagem

ASANTOS alexandresantosbr em yahoo.com.br
Terça Abril 9 00:26:10 BRT 2013


Prof. Paulo,

        Seguindo seus conselhos ate consigo criar o objeto 
SpatialPixelsDataFrame, mas o data não aparece e se faço 
img.kc<-raster(kc_output) e ploto, consigo visualizar o grid krigado, 
sendo CRM:

#
require(geoR)
require(sp)
require(raster)
plot(s100$coords, xlim=c(0,1.2), ylim=c(0,1.2), xlab="Coord X", 
ylab="Coord Y")
loci <- matrix(c(0.2, 0.6, 0.2, 1.1, 0.2, 0.3, 1.0, 1.1), ncol=2)
text(loci, as.character(1:4), col="red")
polygon(x=c(0,1,1,0), y=c(0,0,1,1), lty=2)

# Fitting models with nugget fixed to zero
ml <- likfit(s100, ini = c(1,0.5), fix.nugget = T)

# defining the grid
pred.grid <-  expand.grid(seq(0,1, l=51), seq(0,1, l=51))
# kriging calculations
kc <- krige.conv(s100, loc = pred.grid, krige = krige.control(obj.m = ml))
# displaying predicted values
image(kc, loc = pred.grid, col=gray(seq(1,0.1,l=30)), xlab="Coord X", 
ylab="Coord Y")
#

#Centro das 25 parcela 0.2 x 0.2
p0<-c(0.1,0.1)
#
c0 <- seq(p0[1],p0[1]+0.9,by=0.2)
d0 <- seq(p0[2],p0[2]+0.9,by=0.2)
d1 <- expand.grid(x=c0, y=d0)
points(d1[,1],d1[,2],col="red")
ver<-c(0.0,0.2,0.4,0.6,0.8,1.0)
hor<-c(0.0,0.2,0.4,0.6,0.8,1.0)
abline(v=ver, col="red")
abline(h=hor, col="red")
#
grid=GridTopology(c(0.1,0.1), c(0.2,0.2), c(5,5))
grid=SpatialGrid(grid=grid)
class(grid)  ## SpatialPixels
gridPol <- as(grid, "SpatialPolygons")
options(digits=5)
pixelsize <- ((1.0-0.0)/30)*((1.0-0.0)/30)#Tamanho do pixel é dado por 
seq Xmaior - Xmenor/l * Ymaior-Ymenor/l
#
coordinates(pred.grid) <- ~ Var1+Var2## Transformando as coordenadas do grid
kc$predict<-as.data.frame(kc$predict)### Valores dos pixels preditos
kc_output<-SpatialPixelsDataFrame(points=pred.grid, data=kc$predict)### 
Criando o objeto SpatialPixelsDataFrame
summary(kc_output)## Não aparece o data mas:

#


Obrigado,


Alexandre
Em 08/04/2013 15:55, Paulo Justiniano escreveu:
> como nao?< é um veror numerico de valores!
>
> a melhor solicao é fazer uma funcao que converta a saida de kriging 
> para o formato sp como SpatialPoitsDataFrame (ou Pixel ou Grid - 
> dependendo da malha de predicao)
>
>
> vou ver se tenho aogo aqui, mas isto é simples de qq forma
>
>
> On Mon, 8 Apr 2013, ASANTOS wrote:
>
>> Thiago,
>>
>>      Vou continuar tentando, mas extract() não funciona, pois o 
>> objeto kc$predict pertence a classe numeric.
>>
>> Abraço,
>>
>> Alexandre
>>
>>
>> Em 07/04/2013 02:54, Thiago V. dos Santos escreveu:
>>       Alexandre,
>>
>> Você já tem o polígono gridPol de onde você quer criar a média da 
>> krigagem. Não conheço bem as classes do pacote geoR, mas as
>> coordenadas do kc$predict parecem estar no objeto pred.grid. A 
>> abordagem que eu usaria seria criar um objeto raster da krigagem e em
>> seguida contar os valores usando a função extract (raster) usando 
>> como argumentos o raster da krigagem e o gridPol.
>>
>> Além da ajuda para a função extract no manual do raster, talvez o 
>> último exemplo dessa página possa te
>> ajudar: http://stackoverflow.com/questions/14682606/extract-value-from-raster-stack-from-spatialpolygondataframe 
>>
>>
>> Mas não estou certo se era isso que você estava buscando. Acho que o 
>> Paulo vai te ajudar melhor.
>
>
>>
>> Saudações,
>> -- 
>> Thiago V. dos Santos
>> PhD student
>> Land and Atmospheric Science
>> University of Minnesota
>> http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm 
>>
>> Phone: (612) 323 9898
>>
>> ____________________________________________________________________________________________________________________________________________ 
>>
>> From: ASANTOS <alexandresantosbr em yahoo.com.br>
>> To: r-br em listas.c3sl.ufpr.br; Thiago V. dos Santos 
>> <thi_veloso em yahoo.com.br>
>> Sent: Saturday, April 6, 2013 10:26 PM
>> Subject: Re: [R-br] Obter valor médio dos pixels de uma imagem gerada 
>> por krigagem
>>
>> Thiago,
>>
>>     Já pensei isto, mas para SpatialPoints(vp), preciso fazer um 
>> list() das coordenadas dos pixels (vp$x e vp$y) e isto não tenho e
>> nem sei como recuperar o valor de um pixel à partir de uma coordenada 
>> conhecida.
>>
>> Abraço,
>>
>> Alexandre
>>
>>
>> Em 06/04/2013 21:32, Thiago V. dos Santos escreveu:
>>       Nao conheco bem todas as funcoes do sp, mas para pela mensagem 
>> de erro eu transformaria a tabela vp em SpatialPoints, que
>>       eh o argumento esperado pela funcao over.
>>
>> Saudações,
>> -- 
>> Thiago V. dos Santos
>> PhD student
>> Land and Atmospheric Science
>> University of Minnesota
>> http://www.laas.umn.edu/CurrentStudents/MeettheStudents/ThiagodosSantos/index.htm 
>>
>> Phone: (612) 323 9898
>>
>> ____________________________________________________________________________________________________________________________________________ 
>>
>> From: ASANTOS <alexandresantosbr em yahoo.com.br>
>> To: r-br em listas.c3sl.ufpr.br
>> Sent: Saturday, April 6, 2013 8:12 PM
>> Subject: Re: [R-br] Obter valor médio dos pixels de uma imagem gerada 
>> por krigagem
>>
>> Boa noite pessoal,
>>
>>       Acho evoluí um pouco na questão, mas agora a dificuldade esta 
>> em contar os pixels contidos no interior das malhas, quando
>> tento um over(), ocorre o seguinte erro:
>>
>> Erro em function (classes, fdef, mtable)  :
>>   unable to find an inherited method for function "over", for 
>> signature "table", "SpatialPolygons"
>>
>>
>> segue CRM:
>> #
>> require(geoR)
>> plot(s100$coords, xlim=c(0,1.2), ylim=c(0,1.2), xlab="Coord X", 
>> ylab="Coord Y")
>> loci <- matrix(c(0.2, 0.6, 0.2, 1.1, 0.2, 0.3, 1.0, 1.1), ncol=2)
>> text(loci, as.character(1:4), col="red")
>> polygon(x=c(0,1,1,0), y=c(0,0,1,1), lty=2)
>>
>> # Fitting models with nugget fixed to zero
>> ml <- likfit(s100, ini = c(1,0.5), fix.nugget = T)
>>
>> # defining the grid
>> pred.grid <-  expand.grid(seq(0,1, l=51), seq(0,1, l=51))
>> # kriging calculations
>> kc <- krige.conv(s100, loc = pred.grid, krige = krige.control(obj.m = 
>> ml))
>> # displaying predicted values
>> image(kc, loc = pred.grid, col=gray(seq(1,0.1,l=30)), xlab="Coord X", 
>> ylab="Coord Y")
>> #
>>
>> #Centro das 25 parcela 0.2 x 0.2
>> p0<-c(0.1,0.1)
>> #
>> c0 <- seq(p0[1],p0[1]+0.9,by=0.2)
>> d0 <- seq(p0[2],p0[2]+0.9,by=0.2)
>> d1 <- expand.grid(x=c0, y=d0)
>> points(d1[,1],d1[,2],col="red")
>> ver<-c(0.0,0.2,0.4,0.6,0.8,1.0)
>> hor<-c(0.0,0.2,0.4,0.6,0.8,1.0)
>> abline(v=ver, col="red")
>> abline(h=hor, col="red")
>> #
>> require(sp)
>> grid=GridTopology(c(0.1,0.1), c(0.2,0.2), c(5,5))### Cria as área
>> grid=SpatialGrid(grid=grid)
>> class(grid)  ## SpatialPixels
>> gridPol <- as(grid, "SpatialPolygons") ## Transfoma as areas em 
>> polígonos espaciais
>> options(digits=5)
>> pixelsize <- (1.0-0.0/30)*(1.0-0.0/30)#Tamanho do pixel é dado por 
>> seq Xmaior - Xmenor/l * Ymaior-Ymenor/l
>> vp <- table(area <- kc$predict)## Valor dos pixels
>> count.pix<-table(over(vp, gridPol)) #contar quantos pontos tem em 
>> cada area
>>
>>
>> Obrigado,
>>
>> Alexandre
>>
>> Em 06/04/2013 17:11, ASANTOS escreveu:
>> > Boa noite membros da lista,
>> >
>> >        Gostaria de receber ideias para calcular o valor médio dos 
>> pixel em uma imagem gerada por krigagem em sub-regiões de
>> interesse na imagem, por exemplo usando um exemplo do Prof. Paulo, 
>> onde ajusta-se um semivariograma e faz a krigagem ordinária
>> dos dados:
>> >
>> > #
>> > require(geoR)
>> > plot(s100$coords, xlim=c(0,1.2), ylim=c(0,1.2), xlab="Coord X", 
>> ylab="Coord Y")
>> > loci <- matrix(c(0.2, 0.6, 0.2, 1.1, 0.2, 0.3, 1.0, 1.1), ncol=2)
>> > text(loci, as.character(1:4), col="red")
>> > polygon(x=c(0,1,1,0), y=c(0,0,1,1), lty=2)
>> >
>> > # Fitting models with nugget fixed to zero
>> > ml <- likfit(s100, ini = c(1,0.5), fix.nugget = T)
>> >
>> > # defining the grid
>> > pred.grid <-  expand.grid(seq(0,1, l=51), seq(0,1, l=51))
>> > # kriging calculations
>> > kc <- krige.conv(s100, loc = pred.grid, krige = krige.control(obj.m 
>> = ml))
>> > # displaying predicted values
>> > image(kc, loc = pred.grid, col=gray(seq(1,0.1,l=30)), xlab="Coord 
>> X", ylab="Coord Y")
>> > #
>> >
>> > #Agora vou dividir esta área em 25 partes e lançar os centroides 
>> destas subáreas:
>> >
>> > #Centro das 25 parcela 0.2 x 0.2
>> > p0<-c(0.1,0.1)
>> > #
>> > c0 <- seq(p0[1],p0[1]+0.9,by=0.2)
>> > d0 <- seq(p0[2],p0[2]+0.9,by=0.2)
>> > d1 <- expand.grid(x=c0, y=d0)
>> > points(d1[,1],d1[,2],col="red")
>> > ver<-c(0.0,0.2,0.4,0.6,0.8,1.0)
>> > hor<-c(0.0,0.2,0.4,0.6,0.8,1.0)
>> > abline(v=ver, col="red")
>> > abline(h=hor, col="red")
>> > #
>> >
>> >  E aqui vem minha pergunta, como calcular o valor médio dos pixels 
>> contidos em cada subárea de 0.2 x 0.2?
>> >
>> > Obrigado,
>> >
>>
>> -- 
>> ======================================================================
>> Alexandre dos Santos
>> Proteção Florestal
>> Coordenador do curso Técnico em Florestas
>> Vice Coordenador do curso de Engenharia 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 8132-8112 (TIM)  (+55) 65 9686-6970 (VIVO)
>> e-mails:alexandresantosbr em yahoo.com.br
>>         alexandre.santos em cas.ifmt.edu.br
>> ======================================================================
>>
>> _______________________________________________
>> 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 forneça 
>> código mínimo reproduzível.
>>
>>
>>
>>
>> _______________________________________________
>> 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 forneça 
>> código mínimo reproduzível.
>>
>>
>> -- 
>> ======================================================================
>> Alexandre dos Santos
>> Proteção Florestal
>> Coordenador do curso Técnico em Florestas
>> Vice Coordenador do curso de Engenharia 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 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
>> e-mails:alexandresantosbr em yahoo.com.br
>>         alexandre.santos em cas.ifmt.edu.br 
>> ======================================================================
>>
>>
>>
>> -- 
>> ======================================================================
>> Alexandre dos Santos
>> Proteção Florestal
>> Coordenador do curso Técnico em Florestas
>> Vice Coordenador do curso de Engenharia 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 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
>> e-mails:alexandresantosbr em yahoo.com.br
>>         alexandre.santos em cas.ifmt.edu.br 
>> ======================================================================
>>
>>
>
>
> _______________________________________________
> 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 forneça código mínimo reproduzível.

-- 
======================================================================
Alexandre dos Santos
Proteção Florestal
Coordenador do curso Técnico em Florestas
Vice Coordenador do curso de Engenharia 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 8132-8112 (TIM)   (+55) 65 9686-6970 (VIVO)
e-mails:alexandresantosbr em yahoo.com.br
         alexandre.santos em cas.ifmt.edu.br
======================================================================

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130408/1311e7dd/attachment-0001.html>


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