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@yahoo.com.br>
To: r-br@listas.c3sl.ufpr.br; Thiago V. dos Santos
<thi_veloso@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@yahoo.com.br>
To: r-br@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@yahoo.com.br
alexandre.santos@cas.ifmt.edu.br
======================================================================
_______________________________________________
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
forneça código mínimo reproduzível.
_______________________________________________
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
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@yahoo.com.br
alexandre.santos@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@yahoo.com.br
alexandre.santos@cas.ifmt.edu.br
======================================================================
_______________________________________________
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 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@yahoo.com.br
alexandre.santos@cas.ifmt.edu.br
======================================================================