
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/inde... Phone: (612) 323 9898 ________________________________ From: ASANTOS <alexandresantosbr@yahoo.com.br> To: r-br@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_B... 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/inde... 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: 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/inde... Phone: (612) 323 9898
----- Original Message ----- From: ASANTOS <alexandresantosbr@yahoo.com.br> To: r-br@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/inde... Phone: (612) 323 9898
----- Original Message ----- From: ASANTOS<alexandresantosbr@yahoo.com.br> To:r-br@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@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 ======================================================================
-- ====================================================================== 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.