[R-br] Criando uma mascara com shapefile sobre raster

ASANTOS alexandresantosbr em yahoo.com.br
Sábado Abril 6 11:32:05 BRT 2013


Obrigado pela atenção Thiago,

    Tentei fazer um CRM, mas com raster estava difícil, coloquei no 
dropbox mesmo, segue a ultima tentativa que fiz com suas dicas:

#
require(raster)

#Dados
https://www.dropbox.com/s/lzj71k9vt6dbou1/LANDSAT_5_TM_20100506_217_074_L2_BAND7.tif#Raster 
in tiff
https://www.dropbox.com/s/bfcwpbw36gdlwjq/Catas_Altas.shp#contorno em 
shapefile
#
land.img<- stack(c("LANDSAT_5_TM_20100506_217_074_L2_BAND7.tif")) ## 
Imagem Landsat 5
plotRGB(land.img,1) #Plota a banda 7 da imagem

#Poligono de interesse em shapefile comm coordenadas em UTM
contorno<- readShapeLines("Catas_Altas.shp", proj4string=CRS("+proj=utm 
+zone=23 +south +datum=WGS84 +units=m +no_defs"))
#
#Quero selecionar os pixels da imagem que estão contidos no interior do 
polígono contorno
A.crop <- crop(land.img, extent(contorno), snap='out')
contorno.na<-setValues(A.crop, NA)
contorno.r<-rasterize(contorno, contorno.na)
C <- mask(x=A.crop, mask=contorno.r)
#


Em 05/04/2013 09:18, Thiago V. dos Santos escreveu:
> Mas você recebe algum erro ou o resultado é diferente do esperado?
>
> O melhor mesmo seria fornecer seus dados para tentarmos reproduzir o 
> problema. Não dá pra colocar no dropbox? 50Mb não é nada tão grande 
> assim...
> 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:* Thursday, April 4, 2013 9:23 PM
> *Subject:* Re: [R-br] Criando uma mascara com shapefile sobre raster
>
> Thiago,
>
>       Explicando melhor teoricamente, pois um CRM implicaria em uma
> imagem de 50MB, tenho:
>
> 1) Uma imagem do landsat 5 com um quadrante de interesse;
> 2)Um contorno em shapefile de uma área de 200 hectares.
>
>     Quero utilizar apenas os pixels da imagem contidos no interior da
> área de 200 hectares, para tanto extend() não resolve pois utiliza
> apenas utiliza coordenadas max e min e não considera a forma (contorno)
> do meu polígono para seleção dos pixels contidos nele.
>
>     Não consegui realizar o que desejo com a rotina sugerida. Mascara,
> usei como um termo que implica em área útil da imagem, não quero o
> quadrante todo oferecido pela imagem, mas aquilo que esta contido no meu
> shapefile.
>
> Obrigado pela atenção,
>
> Alexandre
>
>
>
> Em 04/04/2013 21:03, Thiago V. dos Santos escreveu:
> > Alexandre,
> >
> > O que a área do raster tem a ver com o tipo de função usada para 
> carregar o shapefile?
> >
> > Você não consegui recortar o raster com o shapefile usando os 
> comandos que eu eu sugeri? O que exatamente você quis dizer com criar 
> uma máscara na pergunta inicial?
> >
> > 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
> >
> >
> > ----- Original Message -----
> > From: ASANTOS <alexandresantosbr em yahoo.com.br 
> <mailto:alexandresantosbr em yahoo.com.br>>
> > To: r-br em listas.c3sl.ufpr.br <mailto:r-br em listas.c3sl.ufpr.br>
> > Cc:
> > Sent: Thursday, April 4, 2013 5:14 PM
> > Subject: Re: [R-br] Criando uma mascara com shapefile sobre raster
> >
> > Thiago,
> >
> >            Não deu certo não, transformei em
> > SpatialPolygons(list(Polygons(list(Polygon(contorno2)),"contorno2"))),
> > prefiro continuar tentando com readShapeLines("Catas_Altas.shp",
> > proj4string=CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m
> > +no_defs")), porque consigo visualizar a área sobre o raster, achei
> > alguns posts mais usando o GRASS, mas gostaria de fazer tudo só no R.
> >
> > Obrigado,
> >
> > Alexandre
> >
> >
> > Em 04/04/2013 12:18, Thiago V. dos Santos escreveu:
> >> Alexandre,
> >>
> >> a) Tente ler o seu shapefile com a funcao readShapePoly.
> >>
> >> b) Se nao der certo, sugiro uma combinacao das funcoes crop e 
> raster. Nesse caso, experimente rodar o seu codigo com as seguintes 
> mudancas:
> >>
> >> require("raster")
> >> A <- stack("LANDSAT_5_TM_20100506_217_074_L2_BAND7.tif")
> >> contorno<- readShapePoly("Catas_Altas.shp")
> >>
> >> A.crop <- crop(A, extent(contorno), snap='out')
> >>
> >> contorno.na<-setValues(A.crop, NA)
> >> contorno.r<-rasterize(contorno, contorno.na) ### isso pode demorar, 
> dependendo do seu shapefile
> >> C <- mask(x=A.crop, mask=contorno.r)
> >>
> >>
> >> 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
> >>
> >>
> >> ----- Original Message -----
> >> From: ASANTOS<alexandresantosbr em yahoo.com.br 
> <mailto:alexandresantosbr em yahoo.com.br>>
> >> To:r-br em listas.c3sl.ufpr.br <mailto:r-br em listas.c3sl.ufpr.br>
> >> Cc:
> >> Sent: Thursday, April 4, 2013 10:31 AM
> >> Subject: [R-br] Criando uma mascara com shapefile sobre raster
> >>
> >> Boa tarde pessoal,
> >>
> >>            Estou com um problema e não consigo criar uma mascara 
> com um arquivo no formato shapefile sobre raster usando a função 
> crop() do pacote raster, por algum motivo meu objeto contorno que é um 
> SpatialLinesDataFrame não esta servido para oferecer o polígono 
> limítrofe da área, alguém poderia me dar um help, segue CRM:
> >>
> >> require("raster")
> >> A <- stack(c("LANDSAT_5_TM_20100506_217_074_L2_BAND7.tif"))## Imagem
> >> plotRGB(A) ## Plota a imagem
> >> contorno<- readShapeLines("Catas_Altas.shp")  ## Contorno da área
> >> lines(contorno, col="red")Plota o contorno
> >> C <- crop(A,contorno) ## Recorta o que esta contido no contorno na 
> imagem
> >> Erro em .local(x, y, ...) :
> >>      nenhum slot de nome "legend" para esse objeto de classe 
> "RasterStack"
> >>
> >>
> >> -- 
> ======================================================================
> >> 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 
> <mailto:alexandresantosbr em yahoo.com.br>
> >> alexandre.santos em cas.ifmt.edu.br 
> <mailto:alexandre.santos em cas.ifmt.edu.br>
> >> ======================================================================
> >>
> >> _______________________________________________
> >> R-br mailing list
> >> R-br em listas.c3sl.ufpr.br <mailto: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 
> <mailto:alexandresantosbr em yahoo.com.br>
> alexandre.santos em cas.ifmt.edu.br <mailto: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
======================================================================

-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://listas.inf.ufpr.br/pipermail/r-br/attachments/20130406/7dc3e1a9/attachment.html>


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