Re: [R-br] Como extrair índices linha e coluna de um raster

Jônatan, a função rasterToshapefile é interessante, mas não atribuí o índices i e j ao shapefile criado. Encontrei outra solução no script abaixo e espero auxilar outras pessoas. Apenas uma ressalva, ao final gero um shapefile de pontos, com os atributos i, j e o valor da célula, mas depois associo ao shapefile de polígonos no Quantum GIS através da função Join de Tabelas. Outra solução possível é juntar a sua solução de rasterToPolygon e depois realizar o Join de tabela com os shapefiles de pontos. Realmente seria interessante que a função rasterToPolygon levasse as informações de linha e coluna para o shapefile criado. Mais uma vez obrigado Jôntan e Elias, vocês me orientaram bastante na solução deste problema. require(raster) require(rgdal) require(shapefiles) require(maptools) ### ENTRADA DE DADOS ### ## criando um raster r <- raster(ncol=319,nrow=319) atribuindo valores r[] <- (1:ncell(r)) ## linha, coluna, celula, valor cbind(rowColFromCell(r,1:ncell(r)), 1:ncell(r),getValues(r)) matriz<-cbind(rowColFromCell(r,1:ncell(r)), 1:ncell(r),getValues(r)) matriz dim(matriz) tail(matriz) summary (matriz) names(matriz) # a matriz não possui nome de campos # Data Frame possui nome dos atributos class(matriz) require(sp) pontos<-data.frame(matriz) head(pontos) class(pontos) dim(pontos) names(pontos) coordinates(pontos) <- c("row","col") # c("Norte_Sul","Leste_Oeste") class(pontos) dim(pontos) getSlots("SpatialPointsDataFrame") slot(pontos, "bbox") require(maptools) writePointsShape(pontos,"matriz319pt", factor2char = TRUE, max_nchar=254) readShapePoints("matriz319pt", proj4string = CRS(as.character(NA)),verbose = FALSE,repair=FALSE)

## Já tinha esquecido das linhas e colunas. require(raster) r <- raster(nc=20,nr=10) r[] <- rep(1:5,each=40) plot(r) res <- data.frame(rowColFromCell(r,1:ncell(r)), 1:ncell(r),getValues(r)) names(res) <- c("row","col","cell","v") ## criando stack com 4 layers s <- stack(r,r,r,r) ## atribuindo valores para cada layer baseado no res s[] <- as.matrix(res) plot(s) p<-rasterToPoints(s, spatial=T) spplot(p) writeOGR(p,getwd(),"p",driver="ESRI Shapefile") pescrito <- readOGR(getwd(), "p") pescrito@data 2013/7/6 Alex <alxcart@gmail.com>
Jônatan, a função rasterToshapefile é interessante, mas não atribuí o índices i e j ao shapefile criado. Encontrei outra solução no script abaixo e espero auxilar outras pessoas. Apenas uma ressalva, ao final gero um shapefile de pontos, com os atributos i, j e o valor da célula, mas depois associo ao shapefile de polígonos no Quantum GIS através da função Join de Tabelas. Outra solução possível é juntar a sua solução de rasterToPolygon e depois realizar o Join de tabela com os shapefiles de pontos. Realmente seria interessante que a função rasterToPolygon levasse as informações de linha e coluna para o shapefile criado.
Mais uma vez obrigado Jôntan e Elias, vocês me orientaram bastante na solução deste problema.
require(raster) require(rgdal) require(shapefiles) require(maptools)
### ENTRADA DE DADOS ### ## criando um raster r <- raster(ncol=319,nrow=319) atribuindo valores r[] <- (1:ncell(r))
## linha, coluna, celula, valor cbind(rowColFromCell(r,1:ncell(r)), 1:ncell(r),getValues(r)) matriz<-cbind(rowColFromCell(r,1:ncell(r)), 1:ncell(r),getValues(r)) matriz dim(matriz) tail(matriz) summary (matriz) names(matriz) # a matriz não possui nome de campos
# Data Frame possui nome dos atributos class(matriz) require(sp) pontos<-data.frame(matriz) head(pontos) class(pontos) dim(pontos) names(pontos) coordinates(pontos) <- c("row","col") # c("Norte_Sul","Leste_Oeste") class(pontos) dim(pontos) getSlots("SpatialPointsDataFrame") slot(pontos, "bbox")
require(maptools) writePointsShape(pontos,"matriz319pt", factor2char = TRUE, max_nchar=254) readShapePoints("matriz319pt", proj4string = CRS(as.character(NA)),verbose = FALSE,repair=FALSE)
_______________________________________________ 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.
-- ############################################################### ## Jônatan Dupont Tatsch ## Professor do Departamento de Física ## Centro de Ciências Exatas e Naturais (CCNE) ## Universidade Federal de Santa Maria ## Faixa de Camobi, Prédio 13 - Campus UFSM - Santa Maria, RS, Brasil - 97105-900 ## Telefone: +55(55)33012084 ## www.ufsm.br/meteorologia ###############################################################

Ver também a função over(), do pacote sp. On 06/07/13 17:46, Alex wrote:
Jônatan, a função rasterToshapefile é interessante, mas não atribuí o índices i e j ao shapefile criado. Encontrei outra solução no script abaixo e espero auxilar outras pessoas. Apenas uma ressalva, ao final gero um shapefile de pontos, com os atributos i, j e o valor da célula, mas depois associo ao shapefile de polígonos no Quantum GIS através da função Join de Tabelas. Outra solução possível é juntar a sua solução de rasterToPolygon e depois realizar o Join de tabela com os shapefiles de pontos. Realmente seria interessante que a função rasterToPolygon levasse as informações de linha e coluna para o shapefile criado.
Mais uma vez obrigado Jôntan e Elias, vocês me orientaram bastante na solução deste problema.
require(raster) require(rgdal) require(shapefiles) require(maptools)
### ENTRADA DE DADOS ### ## criando um raster r <- raster(ncol=319,nrow=319) atribuindo valores r[] <- (1:ncell(r))
## linha, coluna, celula, valor cbind(rowColFromCell(r,1:ncell(r)), 1:ncell(r),getValues(r)) matriz<-cbind(rowColFromCell(r,1:ncell(r)), 1:ncell(r),getValues(r)) matriz dim(matriz) tail(matriz) summary (matriz) names(matriz) # a matriz não possui nome de campos
# Data Frame possui nome dos atributos class(matriz) require(sp) pontos<-data.frame(matriz) head(pontos) class(pontos) dim(pontos) names(pontos) coordinates(pontos) <- c("row","col") # c("Norte_Sul","Leste_Oeste") class(pontos) dim(pontos) getSlots("SpatialPointsDataFrame") slot(pontos, "bbox") require(maptools) writePointsShape(pontos,"matriz319pt", factor2char = TRUE, max_nchar=254) readShapePoints("matriz319pt", proj4string = CRS(as.character(NA)),verbose = FALSE,repair=FALSE)
_______________________________________________ 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.
participantes (3)
-
Alex
-
Elias Teixeira Krainski
-
Jônatan