Problema para mudar projeção em um raster

Boa tarde Pessoal, Criei um raster e referencie em UTM sendo: require(raster) require(rgdal) require(sp) #Criando raster r <- raster(nc=1000, nr=1000) set.seed(20130622) stackIm1 <- stack(lapply(1, function(x) setValues(r, round(runif(ncell(r))* 255))))## Simulation red band # # Definindo sistema de projeção r.geo <- CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs") # geographical datum WGS84 proj4string(stackIm1) <- r.geo # mas quando tento converter para latlong com spTransform: stackIm1.ll<-spTransform(stackIm1, CRS("+proj=longlat+datum=WGS84")) Erro em spTransform(stackIm1, CRS("+proj=longlat+datum=WGS84")) : erro na avaliação do argumento 'CRSobj' na seleção do método para a função 'spTransform': 'Erro em CRS("+proj=longlat+datum=WGS84") : unknown projection id Obtenho este erro e não consigo achar a solução, alguém poderia dar um help, 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, Parece ser um typo. Experimente adicionar um espaço entre proj e datum: '+proj=longlat +datum=WGS84'. Uma abordagem alternativa é usar projectRaster, do próprio pacote raster. 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: Wednesday, July 17, 2013 1:00 PM Subject: [R-br] Problema para mudar projeção em um raster Boa tarde Pessoal, Criei um raster e referencie em UTM sendo: require(raster) require(rgdal) require(sp) #Criando raster r <- raster(nc=1000, nr=1000) set.seed(20130622) stackIm1 <- stack(lapply(1, function(x) setValues(r, round(runif(ncell(r))* 255))))## Simulation red band # # Definindo sistema de projeção r.geo <- CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs") # geographical datum WGS84 proj4string(stackIm1) <- r.geo # mas quando tento converter para latlong com spTransform: stackIm1.ll<-spTransform(stackIm1, CRS("+proj=longlat+datum=WGS84")) Erro em spTransform(stackIm1, CRS("+proj=longlat+datum=WGS84")) : erro na avaliação do argumento 'CRSobj' na seleção do método para a função 'spTransform': 'Erro em CRS("+proj=longlat+datum=WGS84") : unknown projection id Obtenho este erro e não consigo achar a solução, alguém poderia dar um help, 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.

Obrigado Thiago, mas nenhumas das duas sugestões funcionou não, sendo: require(raster) require(rgdal) require(sp) #Criando raster r <- raster(nc=1000, nr=1000) set.seed(20130622) stackIm1 <- stack(lapply(1, function(x) setValues(r, + round(runif(ncell(r))* 255))))## Simulation red band # # Definindo sistema de projeção r.geo <- CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m + +no_defs") # geographical datum WGS84 proj4string(stackIm1) <- r.geo #pelo project raster
newproj <- "+proj=longlat +datum=WGS84" #Nova projeção stackIm1ll <- projectRaster(stackIm1, crs=newproj) Erro em if (value[1] != nrow(x) | value[2] != ncol(x)) { : valor ausente onde TRUE/FALSE necessário Além disso: Mensagens de aviso perdidas: In `dim<-`(`*tmp*`, value = c(nr, nc)) : NAs introduzidos por coerção
Li alguns posts, mas sempre o caminho é bem árduo, busco uma solução simples, de qualquer maneira obrigado, Alexandre Em 17/07/2013 16:04, Thiago V. dos Santos escreveu:
Alexandre,
Parece ser um typo. Experimente adicionar um espaço entre proj e datum: '+proj=longlat +datum=WGS84'.
Uma abordagem alternativa é usar projectRaster, do próprio pacote raster. 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:* Wednesday, July 17, 2013 1:00 PM *Subject:* [R-br] Problema para mudar projeção em um raster
Boa tarde Pessoal,
Criei um raster e referencie em UTM sendo:
require(raster) require(rgdal) require(sp) #Criando raster r <- raster(nc=1000, nr=1000) set.seed(20130622) stackIm1 <- stack(lapply(1, function(x) setValues(r, round(runif(ncell(r))* 255))))## Simulation red band # # Definindo sistema de projeção r.geo <- CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs") # geographical datum WGS84 proj4string(stackIm1) <- r.geo #
mas quando tento converter para latlong com spTransform:
stackIm1.ll<-spTransform(stackIm1, CRS("+proj=longlat+datum=WGS84"))
Erro em spTransform(stackIm1, CRS("+proj=longlat+datum=WGS84")) : erro na avaliação do argumento 'CRSobj' na seleção do método para a função 'spTransform': 'Erro em CRS("+proj=longlat+datum=WGS84") : unknown projection id
Obtenho este erro e não consigo achar a solução, alguém poderia dar um help,
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:alexandresantosbr@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.
_______________________________________________ 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 ======================================================================

Quando vc faz r <- raster(nc=1000, nr=1000) cria-se um raster com bordas: bbox(r) totalmente incompatíveis com "+proj=utm +zone=23 +south +datum=WGS84 +units=m"

Elias, Obrigado, mas cortei um pedaço das bordas e deixei os valores positivos e mesmo assim: Erro em if (value[1] != nrow(x) | value[2] != ncol(x)) { : valor ausente onde TRUE/FALSE necessário Além disso: Mensagens de aviso perdidas: In `dim<-`(`*tmp*`, value = c(nr, nc)) : NAs introduzidos por coerção Segue CRM: require(raster) require(rgdal) require(sp) #Criando raster r <- raster(nc=1000, nr=1000) r[] <- 1:ncell(r) e <- extent(0, 90, 0, 90) stackIm1.crop <- crop(r, e) set.seed(20130622) stackIm1 <- stack(lapply(1, function(x) setValues(stackIm1.crop, + round(runif(ncell(stackIm1.crop))* 255))))## # # Definindo sistema de projeção r.geo <- CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m + +no_defs") # geographical datum WGS84 proj4string(stackIm1) <- r.geo #pelo project raster newproj <- "+proj=longlat +datum=WGS84" #Nova projeção stackIm1ll <- projectRaster(stackIm1, crs=newproj) Alexandre Em 18/07/2013 09:15, Elias Krainski escreveu:
Quando vc faz r <- raster(nc=1000, nr=1000) cria-se um raster com bordas: bbox(r) totalmente incompatíveis com "+proj=utm +zone=23 +south +datum=WGS84 +units=m" _______________________________________________ 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 ======================================================================

Note que o sistema de projeção default já é o que você quer:
r <- raster(nc=3, nr=5) r class : RasterLayer dimensions : 5, 3, 15 (nrow, ncol, ncell) resolution : 120, 36 (x, y) extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax) coord. ref. : +proj=longlat +datum=WGS84
Curiosidade: Você quer criar um raster para cobrir uma particular região do globo?

Não Elias, Na realidade quero fazer uma correção topográfica em uma banda 4 do landsat em utm, para isso preciso converter uma imagem geoTiff de elevação do Topodata do Inpe que esta em lat long para utm e não estou conseguindo, Obrigado, Alexandre Em 18/07/2013 11:51, Elias Krainski escreveu:
Note que o sistema de projeção default já é o que você quer:
r <- raster(nc=3, nr=5) r class : RasterLayer dimensions : 5, 3, 15 (nrow, ncol, ncell) resolution : 120, 36 (x, y) extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax) coord. ref. : +proj=longlat +datum=WGS84
Curiosidade: Você quer criar um raster para cobrir uma particular região do globo? _______________________________________________ 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 ======================================================================

r <- raster(nc=1000, nr=1000) r[] <- 1:ncell(r) ## usando uma extent com dominio espacial em torno de -23, aparentemente funciona e <- extent(-28, -15, -50, -45) stackIm1.crop <- crop(r, e) plot(stackIm1.crop) stackIm1 <- raster(stackIm1.crop) stackIm1[] <- round(runif(ncell(stackIm1.crop))* 255) x11();plot(stackIm1) r.geo <- "+proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs" stackIm2 <- projectRaster(stackIm1, crs=r.geo,method="ngb") x11(); plot(stackIm2) 2013/7/18 ASANTOS <alexandresantosbr@yahoo.com.br>
Não Elias,
Na realidade quero fazer uma correção topográfica em uma banda 4 do landsat em utm, para isso preciso converter uma imagem geoTiff de elevação do Topodata do Inpe que esta em lat long para utm e não estou conseguindo,
Obrigado,
Alexandre
Em 18/07/2013 11:51, Elias Krainski escreveu:
Note que o sistema de projeção default já é o que você quer:
r <- raster(nc=3, nr=5) r class : RasterLayer dimensions : 5, 3, 15 (nrow, ncol, ncell) resolution : 120, 36 (x, y) extent : -180, 180, -90, 90 (xmin, xmax, ymin, ymax) coord. ref. : +proj=longlat +datum=WGS84
Curiosidade: Você quer criar um raster para cobrir uma particular região do globo? ______________________________**_________________ R-br mailing list R-br@listas.c3sl.ufpr.br https://listas.inf.ufpr.br/**cgi-bin/mailman/listinfo/r-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<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<e-mails%3Aalexandresantosbr@yahoo.com.br> alexandre.santos@cas.ifmt.edu.**br<alexandre.santos@cas.ifmt.edu.br> Lattes: http://lattes.cnpq.br/**1360403201088680<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<https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br> Leia o guia de postagem (http://www.leg.ufpr.br/r-br-**guia<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 ###############################################################

Caro Alexandre, Vc esta usando aquele geotif do outro e-mail? ### obtem o arquivo url=("http://www.webmapit.com.br/inpe/topodata/download/?ms=137398652719842&fbn=21...") download.file(url, destfile = "21S465HN.zip") ### descompacta system("unzip 21S465HN.zip") ### le o raster require(rgdal) r <- readGDAL("21S465SN.tif") ### atribui a projeção longlat e datum WGS83 ao raster. proj4string(r) <- CRS("+proj=longlat +datum=WGS84") ### transformar com é muito ineficiente ### r2 <- spTransform(r, CRS("+proj=utm +zone=23 +south")) ### com projectRaster(), se vc tivesse usando ### r <- raster("21S465SN.tiff") ### r2 <- projectRaster(r, crs=CRS("+proj=utm +zone=23 +south")) ### também é muito lento ### a lentidão é devida ao fato de que extrai-se as ### coordenadas de cada pixel e converte-se cada uma... Att. Elias

Elias, Estou tentando selecionar uma pequena área de interesse na imagem para não demorar muito, mas agora quando tento o crop() tenho: Erro em function (classes, fdef, mtable) : unable to find an inherited method for function "crop", for signature "SpatialGridDataFrame" Na verdade criei um contorno SpatialPolygons e não SpatialGridDataFrame, mas a função não aceita segue CRM: # Criar uma área de menor dimensão que a imagem inteira que abarque a região de interesse xcc<-773759.1 ycc<-7841546 p.central<-cbind(xcc,ycc) ###Criando os vértices da área coordV <- rbind(coordV,cbind(p.central[,1]+c(-1500,1500,1500,-1500,-1500),p.central[,2]+c(1500,1500,-1500,-1500,1500))) coordV coordV2=coordV[!is.na(coordV[,1]),] coordV2 plot(coordV2[21:25,1],coordV2[21:25,2]) points(p.central[,1],p.central[,2], col="red") # # Cria um polígono com o contorno definido bnds <- cbind(x=c(coordV2[21:25,1]), y=c(coordV2[21:25,2])) # CRS UTM SP <- SpatialPolygons(list(Polygons(list(Polygon(bnds)), "1"))) proj4string(SP) = CRS("+proj=utm +zone=23+south +datum=WGS84 +units=m +no_defs") ## Projeção # CRS em lat long para o polígomno ficar na mesma projeção que o GeoTif SPlatlong<- spTransform(SP, CRS("+proj=longlat +datum=WGS84")) # demlatlog<-readGDAL('19S435HN.tif')### Abre o slope TOPODATA - geotif do outro e-mail ### atribui a projeção longlat e datum WGS83 ao raster. proj4string(demlatlog) <- CRS("+proj=longlat +datum=WGS84") #Cortar uma área menor de interesse demlatlog.crop <- crop(demlatlog, extent(SPlatlong), snap='out') # Obrigado, Alexandre Em 18/07/2013 19:01, Elias Krainski escreveu:
Caro Alexandre,
Vc esta usando aquele geotif do outro e-mail?
### obtem o arquivo url=("http://www.webmapit.com.br/inpe/topodata/download/?ms=137398652719842&fbn=21...")
download.file(url, destfile = "21S465HN.zip") ### descompacta system("unzip 21S465HN.zip")
### le o raster require(rgdal) r <- readGDAL("21S465SN.tif")
### atribui a projeção longlat e datum WGS83 ao raster. proj4string(r) <- CRS("+proj=longlat +datum=WGS84")
### transformar com é muito ineficiente ### r2 <- spTransform(r, CRS("+proj=utm +zone=23 +south"))
### com projectRaster(), se vc tivesse usando ### r <- raster("21S465SN.tiff") ### r2 <- projectRaster(r, crs=CRS("+proj=utm +zone=23 +south")) ### também é muito lento
### a lentidão é devida ao fato de que extrai-se as ### coordenadas de cada pixel e converte-se cada uma...
Att. Elias
_______________________________________________ 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 ======================================================================

require(raster) r <- raster("21S465SN.tif")

Elias, Tinha acho esse erro, obrigado, mas mesmo assim criei um outro erro: Erro em function (classes, fdef, mtable) : unable to find an inherited method for function "extent", for signature "NULL" Além disso: Mensagens de aviso perdidas: In intersect(extent(x), extent(y)) : Objects do not overlap CRM: # Criar uma área de menor dimensão que a imagem inteira que abarque a região de interesse xcc<-773759.1 ycc<-7841546 p.central<-cbind(xcc,ycc) ###Criando os vértices da área coordV <- rbind(coordV,cbind(p.central[,1]+c(-1500,1500,1500,-1500,-1500),p.central[,2]+c(1500,1500,-1500,-1500,1500))) coordV coordV2=coordV[!is.na(coordV[,1]),] coordV2 plot(coordV2[21:25,1],coordV2[21:25,2]) points(p.central[,1],p.central[,2], col="red") # # Cria um polígono com o contorno definido bnds <- cbind(x=c(coordV2[21:25,1]), y=c(coordV2[21:25,2])) # CRS UTM SP <- SpatialPolygons(list(Polygons(list(Polygon(bnds)), "1"))) proj4string(SP) = CRS("+proj=utm +zone=23+south +datum=WGS84 +units=m +no_defs") ## Projeção # CRS em lat long para o polígomno ficar na mesma projeção que o GeoTif SPlatlong<- spTransform(SP, CRS("+proj=longlat +datum=WGS84")) # demlatlog<-raster('19S435HN.tif')### Abre o slope TOPODATA - geotif do outro e-mail ### atribui a projeção longlat e datum WGS83 ao raster. proj4string(demlatlog) <- CRS("+proj=longlat +datum=WGS84") #Cortar uma área menor de interesse demlatlog.crop <- crop(demlatlog, extent(SPlatlong), snap='out') # Em 19/07/2013 16:35, Elias Krainski escreveu:
require(raster) r <- raster("21S465SN.tif")
_______________________________________________ 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 ======================================================================

isso significa que o quadrado que você quer 'recortar' bbox(SPlatlong) não tem intersecção com o do raster bbox(demlatlong)

Elias, Na verdade o problema esta na função spTransform() que não esta OK, porque o meu bbox em UTM (Zona 23K) é:
bbox(SP) min max x 772259.1 775259.1 y 7840046.3 7843046.3
e após spTransform():
bbox(SPlatlong) min max x -37.67016 -37.58042 y 70.51439 70.54432
O que esta incorreto pois 772259.1 em UTM (Zona 23K) no bbox(SP) deveria ser -42.4058070334 em graus e não -37.67016 no bbox(SPlatlong) e para os outros valores a mesma coisa, o que pode estar acontecendo? Segue CRM: require(sp) require(rgdal) # Criar uma área de menor dimensão que a imagem inteira que abarque a região de interesse xcc<-773759.1 ycc<-7841546 p.central<-cbind(xcc,ycc) ###Criando os vértices da área coordV <- rbind(coordV,cbind(p.central[,1]+c(-1500,1500,1500,-1500,-1500),p.central[,2]+c(1500,1500,-1500,-1500,1500))) coordV coordV2=coordV[!is.na(coordV[,1]),] #plot(coordV2[21:25,1],coordV2[21:25,2]) #points(p.central[,1],p.central[,2], col="red") # # Cria um polígono com o contorno definido bnds <- cbind(x=c(coordV2[21:25,1]), y=c(coordV2[21:25,2])) # CRS UTM SP <- SpatialPolygons(list(Polygons(list(Polygon(bnds)), "1"))) proj4string(SP) = CRS("+proj=utm +zone=23+south +datum=WGS84 +units=m +no_defs") ## Projeção # CRS em lat long para o polígomno ficar na mesma projeção que o GeoTif SPlatlong<- spTransform(SP, CRS("+proj=longlat +south +datum=WGS84")) # Obrigado, Alexandre Em 19/07/2013 17:33, Elias Krainski escreveu:
isso significa que o quadrado que você quer 'recortar' bbox(SPlatlong) não tem intersecção com o do raster bbox(demlatlong) _______________________________________________ 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, Não sou um especialista em cartografia ou geodésia, então posso estar enganado, mas acho que o que o Elias quis dizer é que você está criando um raster com coordenadas lat/lon e atribuindo a esse raster uma projeção utm. O meu palpilte é de que isso está causando o erro na sua reprojeção. Veja as propriedades do objeto stackIm1:
stackIm1 class : RasterStack dimensions : 500, 250, 125000, 1 (nrow, ncol, ncell, nlayers) resolution : 0.36, 0.18 (x, y) extent : 0, 90, 0, 90 (xmin, xmax, ymin, ymax) coord. ref. : +proj=utm +zone=23 +south +datum=WGS84 +units=m +no_defs +ellps=WGS84 +towgs84=0,0,0 names : layer min values : 0 max values : 255
As coordenadas que eu esperaria ver em projeção UTM são do tipo mapa, por exemplo 213539.91 e 6566533.33 (para uma ponto no RS - zona 22S). Nos seus dados reais as coordenadas são de fato UTM? Se você não conseguir postar um CMR com o seu dado real, tente criar uma amostra com coordenadas UTM que talvez funcione. 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: Thursday, July 18, 2013 10:39 AM Subject: Re: [R-br] Problema para mudar projeção em um raster Elias, Obrigado, mas cortei um pedaço das bordas e deixei os valores positivos e mesmo assim: Erro em if (value[1] != nrow(x) | value[2] != ncol(x)) { : valor ausente onde TRUE/FALSE necessário Além disso: Mensagens de aviso perdidas: In `dim<-`(`*tmp*`, value = c(nr, nc)) : NAs introduzidos por coerção Segue CRM: require(raster) require(rgdal) require(sp) #Criando raster r <- raster(nc=1000, nr=1000) r[] <- 1:ncell(r) e <- extent(0, 90, 0, 90) stackIm1.crop <- crop(r, e) set.seed(20130622) stackIm1 <- stack(lapply(1, function(x) setValues(stackIm1.crop, + round(runif(ncell(stackIm1.crop))* 255))))## # # Definindo sistema de projeção r.geo <- CRS("+proj=utm +zone=23 +south +datum=WGS84 +units=m + +no_defs") # geographical datum WGS84 proj4string(stackIm1) <- r.geo #pelo project raster newproj <- "+proj=longlat +datum=WGS84" #Nova projeção stackIm1ll <- projectRaster(stackIm1, crs=newproj) Alexandre Em 18/07/2013 09:15, Elias Krainski escreveu:
Quando vc faz r <- raster(nc=1000, nr=1000) cria-se um raster com bordas: bbox(r) totalmente incompatíveis com "+proj=utm +zone=23 +south +datum=WGS84 +units=m" _______________________________________________ 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 ====================================================================== _______________________________________________ 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 (4)
-
ASANTOS
-
Elias Krainski
-
Jônatan
-
Thiago V. dos Santos