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

Thiago V. dos Santos thi_veloso em yahoo.com.br
Sábado Abril 6 15:05:59 BRT 2013


Alexandre,

O .shp é só uma parte do dado, a geometria. Para reproduzir o seu problema, vou precisar também do .dbf e do .shx, além do .prj se ele já estiver projetado.
 

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 11:32 AM
Subject: Re: [R-br] Criando uma mascara com shapefile sobre raster
 

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

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


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