Re: [R-br] Novo problema para mudar projeção de um raster

Alexandre e colegas, bom dia! Meu script está um pouco diferente, mas o que vai valer mesmo é o último bloco (reprojetar RasteLayer). Espero que ajude. Além disso, tenho um bookmark pra indicar: Spatial data in R: using R as a GIS (old version) < https://sites.google.com/site/rodriguezsanchezf/news/usingrasagis> Vi que saiu uma nova versão em < https://sites.google.com/site/rodriguezsanchezf/resources/rgis> Outro dia, alguém perguntava pela geração de mapas temáticos no R! Esses links podem ajudar bastante! At.te, ### <BEGIN> ### require(sp); require(rgdal); require(raster) ### Região de interesse pc <- cbind(X1=773759.1,Y1=7841546) dx <- 1500*c(-1, 1, 1,-1,-1); dx dy <- 1500*c( 1, 1,-1,-1, 1); dy reg <- NULL; reg <- rbind(cbind(pc[,1]+dx,pc[,2]+dy)); reg plot(reg, asp=1); points(pc, col=2) ### CRS UTM SP.utm <- SpatialPolygons(list(Polygons(list(Polygon(reg)), "1"))) proj4string(SP.utm) = CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs") SP.utm@bbox; SP.utm@proj4string plot(SP.utm, col=3, axes=T) ### CRS GEO (GeoTiff) SP.geo<- spTransform(SP.utm, CRS("+proj=longlat +datum=WGS84")) SP.geo@bbox; SP.geo@proj4string plot(SP.geo, col=5, axes=T) ### TOPODATA #getwd() #url=("http://www.dsr.inpe.br/topodata/data/geotiff/19S435SN.zip") #download.file(url, destfile = "19S435SN.zip") #unzip("19S435SN.zip") dem <- raster('19S435SN.tif') ### Abre o slope TOPODATA ### Recorte TOPODATA dem.crop <- crop(dem, extent(SP.geo), snap='out') image(dem.crop, asp=1) # Reprojetar RasterLayer (S4) projection(dem.crop) <- CRS("+proj=longlat +datum=WGS84") alt.utm <- projectRaster(dem.crop, crs="+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs") image(alt.utm, asp=1) ### <END> ### Em 25 de julho de 2013 22:32, ASANTOS <alexandresantosbr@yahoo.com.br>escreveu:
Boa noite Pessoal,
Consegui resolver um problema e consegui outro, transformei as coordenadas latlong de um geotiff do Topodata em utm usando spTransform(). Como não consegui transformar diretamente um SpatialPixelsDataFrame do topodata apenas colocando o novo CRS e em vários posts não vi nenhuma solução para isso, tentei fazer da seguinte maneira, transformei apenas o @coords do topodata de geo para utm e depois tentei inserir com replace() os novos valores em utm dentro do SpatialPixelsDataFrame e ocorreu o seguinte erro:
Erro em replace(dem.sp@coords[1:10026, 1:2], dem.sp@coords, Utm@coords[1:10026, : valores negativos não são permitidos na subscrição de matriz

Boa tarde Éder, Funcionou perfeitamente e deixou os argumentos muito mais lógicos, comparado ao que vinha fazendo. Meu único problema agora são os vértices irregulares, pois quando tento recortar o mesmo contorno utilizado (SP.geo) em uma imagem de satélite landsat 5 em utm, por exemplo, o tamanho da minha imagem nunca fica o mesmo que o do objeto alt.utm, sendo que se não tenho o mesmo número de nrow e ncol não posso comparar diretamente as duas imagens com a abordagem que emprego, de qualquer maneira muito obrigado, ajudou bastante, Abraço, -- ====================================================================== 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 ====================================================================== Em 27/07/2013 09:07, Eder Comunello escreveu:
Alexandre e colegas, bom dia!
Meu script está um pouco diferente, mas o que vai valer mesmo é o último bloco (reprojetar RasteLayer). Espero que ajude.
Além disso, tenho um bookmark pra indicar: Spatial data in R: using R as a GIS (old version) <https://sites.google.com/site/rodriguezsanchezf/news/usingrasagis>
Vi que saiu uma nova versão em <https://sites.google.com/site/rodriguezsanchezf/resources/rgis>
Outro dia, alguém perguntava pela geração de mapas temáticos no R! Esses links podem ajudar bastante!
At.te,
### <BEGIN> ### require(sp); require(rgdal); require(raster)
### Região de interesse pc <- cbind(X1=773759.1,Y1=7841546) dx <- 1500*c(-1, 1, 1,-1,-1); dx dy <- 1500*c( 1, 1,-1,-1, 1); dy reg <- NULL; reg <- rbind(cbind(pc[,1]+dx,pc[,2]+dy)); reg plot(reg, asp=1); points(pc, col=2)
### CRS UTM SP.utm <- SpatialPolygons(list(Polygons(list(Polygon(reg)), "1"))) proj4string(SP.utm) = CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs") SP.utm@bbox; SP.utm@proj4string plot(SP.utm, col=3, axes=T)
### CRS GEO (GeoTiff) SP.geo<- spTransform(SP.utm, CRS("+proj=longlat +datum=WGS84")) SP.geo@bbox; SP.geo@proj4string plot(SP.geo, col=5, axes=T)
### TOPODATA #getwd() #url=("http://www.dsr.inpe.br/topodata/data/geotiff/19S435SN.zip") #download.file(url, destfile = "19S435SN.zip") #unzip("19S435SN.zip") dem <- raster('19S435SN.tif') ### Abre o slope TOPODATA
### Recorte TOPODATA dem.crop <- crop(dem, extent(SP.geo), snap='out') image(dem.crop, asp=1)
# Reprojetar RasterLayer (S4) projection(dem.crop) <- CRS("+proj=longlat +datum=WGS84") alt.utm <- projectRaster(dem.crop, crs="+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs") image(alt.utm, asp=1)
### <END> ###
Em 25 de julho de 2013 22:32, ASANTOS <alexandresantosbr@yahoo.com.br <mailto:alexandresantosbr@yahoo.com.br>> escreveu:
Boa noite Pessoal,
Consegui resolver um problema e consegui outro, transformei as coordenadas latlong de um geotiff do Topodata em utm usando spTransform(). Como não consegui transformar diretamente um SpatialPixelsDataFrame do topodata apenas colocando o novo CRS e em vários posts não vi nenhuma solução para isso, tentei fazer da seguinte maneira, transformei apenas o @coords do topodata de geo para utm e depois tentei inserir com replace() os novos valores em utm dentro do SpatialPixelsDataFrame e ocorreu o seguinte erro:
Erro em replace(dem.sp@coords[1:10026, 1:2], dem.sp@coords, Utm@coords[1:10026, : valores negativos não são permitidos na subscrição de matriz
_______________________________________________ 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 (2)
-
ASANTOS
-
Eder Comunello