Recortar raster com limite em data.frame

Boa tarde Pessoal, Gostaria de saber qual a melhor forma de recortar um rasterlayer se eu tenho o limite de uma área em data frame, pois segundo o exemplo abaixo não consigo fazer a operação com o uso de função overlay() para retirar os NA's que correspondem a malha fora do limite sem ficar fazendo inúmeras transformações dos objetos raster e data.frame, segue CRM: ## Raster----------------------------------------------------------- set.seed(20131226) r <- raster(nc=100, nr=100) r <- setValues(r, round(runif(ncell(r))* 255)) image(r,col=gray(seq(0,1,0.025))) ## Borda ----------------------------------------------------------- x<-c(-125,-100,0,100,-125) y<-c(-49,25,0,-50,-49) limite<-cbind(x,y) lines(limite, col="yellow") ## Obrigado -- ====================================================================== Alexandre dos Santos Proteção 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 Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================

Alexandre, Você pode criar um objeto SpatialPolygon a partir da borda e recortar com raster::crop. Veja um exemplo já postado: . http://r-br.2285057.n4.nabble.com/R-br-Novo-problema-para-mudar-projecao-de-... Em quinta-feira, 26 de dezembro de 2013, ASANTOS< alexandresantosbr@yahoo.com.br> escreveu:
Boa tarde Pessoal,
Gostaria de saber qual a melhor forma de recortar um rasterlayer se eu tenho o limite de uma área em data frame, pois segundo o exemplo abaixo não consigo fazer a operação com o uso de função overlay() para retirar os NA's que correspondem a malha fora do limite sem ficar fazendo inúmeras transformações dos objetos raster e data.frame, segue CRM:
## Raster----------------------------------------------------------- set.seed(20131226) r <- raster(nc=100, nr=100) r <- setValues(r, round(runif(ncell(r))* 255)) image(r,col=gray(seq(0,1,0.025)))
## Borda ----------------------------------------------------------- x<-c(-125,-100,0,100,-125) y<-c(-49,25,0,-50,-49) limite<-cbind(x,y) lines(limite, col="yellow") ##
Obrigado
-- ====================================================================== Alexandre dos Santos Proteção 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 Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================
_______________________________________________ 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.
-- Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]

Éder, Infelizmente não deu certo, a função crop fez como se fosse um extent e não fez o corte irregularmente como é a borda, segue CRM: require(sp); require(rgdal); require(raster) ## Raster----------------------------------------------------------- set.seed(20131226) r <- raster(nc=100, nr=100) r <- setValues(r, round(runif(ncell(r))* 255)) image(r,col=gray(seq(0,1,0.025))) ## Borda ----------------------------------------------------------- x<-c(-125,-100,0,100,-125) y<-c(-49,25,0,-50,-49) limite<-cbind(x,y) lines(limite, col="yellow") ## ## Converte borda para SpatialPolygon spt.borda <- SpatialPolygons(list(Polygons(list(Polygon(limite)), "1"))) ### Recorte do raster contido no interior da borda r.crop <- crop(r, spt.borda, snap='out') image(r.crop, asp=1) # Obrigado, Em 26/12/2013 18:35, Éder Comunello escreveu:
Alexandre,
Você pode criar um objeto SpatialPolygon a partir da borda e recortar com raster::crop.
Veja um exemplo já postado: . http://r-br.2285057.n4.nabble.com/R-br-Novo-problema-para-mudar-projecao-de-...
Em quinta-feira, 26 de dezembro de 2013, ASANTOS<alexandresantosbr@yahoo.com.br <mailto:alexandresantosbr@yahoo.com.br>> escreveu:
Boa tarde Pessoal,
Gostaria de saber qual a melhor forma de recortar um rasterlayer se eu tenho o limite de uma área em data frame, pois segundo o exemplo abaixo não consigo fazer a operação com o uso de função overlay() para retirar os NA's que correspondem a malha fora do limite sem ficar fazendo inúmeras transformações dos objetos raster e data.frame, segue CRM:
## Raster----------------------------------------------------------- set.seed(20131226) r <- raster(nc=100, nr=100) r <- setValues(r, round(runif(ncell(r))* 255)) image(r,col=gray(seq(0,1,0.025)))
## Borda ----------------------------------------------------------- x<-c(-125,-100,0,100,-125) y<-c(-49,25,0,-50,-49) limite<-cbind(x,y) lines(limite, col="yellow") ##
Obrigado
-- ====================================================================== Alexandre dos Santos Proteção 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 <mailto:e-mails%3Aalexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.br <mailto:alexandre.santos@cas.ifmt.edu.br> Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================
_______________________________________________ R-br mailing list R-br@listas.c3sl.ufpr.br <mailto: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.
-- Éder Comunello <c <mailto:comunello.eder@gmail.com>omunello.eder@gmail.com <mailto:omunello.eder@gmail.com>> Dourados, MS - [22 16.5'S, 54 49'W]
_______________________________________________ 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 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 Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================

Alexandre, Tentou com raster::mask? -- Éder Comunello <c <comunello.eder@gmail.com>omunello.eder@gmail.com> Dourados, MS - [22 16.5'S, 54 49'W]

Alexandre, Atualizei seu CMR, adicionando as últimas linhas para realizar o recorte com um polígono irregular. ### <code r> require(sp); require(rgdal); require(raster) ## Raster----------------------------------------------------------- set.seed(20131226) r <- raster(nc=100, nr=100) r <- setValues(r, round(runif(ncell(r))* 255)) image(r,col=gray(seq(0,1,0.025))) ## Borda ----------------------------------------------------------- x<-c(-125,-100,0,100,-125) y<-c(-49,25,0,-50,-49) limite<-cbind(x,y) lines(limite, col="yellow") ## ## Converte borda para SpatialPolygon spt.borda <- SpatialPolygons(list(Polygons(list(Polygon(limite)), "1"))) ### Recorte do raster contido no interior da borda r.crop <- crop(r, spt.borda, snap='out') image(r.crop, asp=1) ### Recorte com polígono irregular! r.masked <- mask(r.crop, spt.borda) image(r.masked, asp=1) ### </code>

Fala Éder... muito bom Abraço Hélio 2013/12/28 Eder Comunello [via R-br] < ml-node+s2285057n4661367h45@n4.nabble.com>
Alexandre,
Atualizei seu CMR, adicionando as últimas linhas para realizar o recorte com um polígono irregular.
### <code r> require(sp); require(rgdal); require(raster)
## Raster----------------------------------------------------------- set.seed(20131226) r <- raster(nc=100, nr=100) r <- setValues(r, round(runif(ncell(r))* 255)) image(r,col=gray(seq(0,1,0.025)))
## Borda ----------------------------------------------------------- x<-c(-125,-100,0,100,-125) y<-c(-49,25,0,-50,-49) limite<-cbind(x,y) lines(limite, col="yellow") ##
## Converte borda para SpatialPolygon spt.borda <- SpatialPolygons(list(Polygons(list(Polygon(limite)), "1")))
### Recorte do raster contido no interior da borda r.crop <- crop(r, spt.borda, snap='out') image(r.crop, asp=1)
### Recorte com polígono irregular! r.masked <- mask(r.crop, spt.borda) image(r.masked, asp=1) ### </code>
_______________________________________________ R-br mailing list [hidden email] <http://user/SendEmail.jtp?type=node&node=4661367&i=0> 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.
------------------------------ If you reply to this email, your message will be added to the discussion below:
http://r-br.2285057.n4.nabble.com/R-br-Recortar-raster-com-limite-em-data-fr... To unsubscribe from R-br, click here<http://r-br.2285057.n4.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=3357982&code=aGVsaW9nYWxsb3JvY2hhQGdtYWlsLmNvbXwzMzU3OTgyfC0xMzQ3NTkwMDY4> . NAML<http://r-br.2285057.n4.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
-- Hélio Gallo Rocha IFSULDEMINAS - Câmpus Muzambinho

Obrigado Helio e Éder, Problema resolvido, Em 28/12/2013 15:32, Hélio Gallo Rocha escreveu:
### <code r> require(sp); require(rgdal); require(raster)
## Raster----------------------------------------------------------- set.seed(20131226) r <- raster(nc=100, nr=100) r <- setValues(r, round(runif(ncell(r))* 255)) image(r,col=gray(seq(0,1,0.025)))
## Borda ----------------------------------------------------------- x<-c(-125,-100,0,100,-125) y<-c(-49,25,0,-50,-49) limite<-cbind(x,y) lines(limite, col="yellow") ##
## Converte borda para SpatialPolygon spt.borda <- SpatialPolygons(list(Polygons(list(Polygon(limite)), "1")))
### Recorte do raster contido no interior da borda r.crop <- crop(r, spt.borda, snap='out') image(r.crop, asp=1)
### Recorte com polígono irregular! r.masked <- mask(r.crop, spt.borda) image(r.masked, asp=1) ### </code>
-- ====================================================================== Alexandre dos Santos Proteção 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 Lattes: http://lattes.cnpq.br/1360403201088680 ======================================================================
participantes (3)
-
ASANTOS
-
Hélio Gallo Rocha
-
Éder Comunello