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

Thiago V. dos Santos thi_veloso em yahoo.com.br
Domingo Abril 7 03:54:36 BRT 2013


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 ====================================================================== 
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130406/0764b3ec/attachment-0001.html>


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