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

ASANTOS alexandresantosbr em yahoo.com.br
Sábado Abril 6 22:12:08 BRT 2013


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
======================================================================



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