Reprojetando raster de lat / lon para UTM em R?

12

Eu tenho que transformá-lo em um UTM, a fim de tornar o buffer funcional.

wets<-readOGR(dsn=".",layer="shapefile")
r.raster <- raster()
extent(r.raster) <- extent(wets)
res(r.raster) <- 100 

wets.r <- rasterize(wet,r.raster)
plot(wets.r)
wetsbuf<-buffer(wets.r,width=500)

Durante a criação do buffer, que é a última linha de código, ele fornece este aviso:

Warning message:  
In couldBeLonLat(x) :
  raster has a longitude/latitude CRS, but coordinates do not match that

aqui está a informação

  summary(wets.r)
          layer
 Min.        1
 1st Qu.     1
 Median      2
 3rd Qu.     9
 Max.       11
 NA's    52629

summary(wets)

  Object of class SpatialPolygonsDataFrame
Coordinates:
      min       max
 x  683705  714088.8
 y 4326266 4343768.0
 Is projected: TRUE 
 proj4string :
 [+proj=tmerc +lat_0=0 +lon_0=24 +k=0.9996 +x_0=500000 +y_0=0 +datum=GGRS87
 +units=m +no_defs +ellps=GRS80 +towgs84=-199.87,74.79,246.62]
 Data attributes:
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
    0.0     2.5     5.0     5.0     7.5    10.0 






 wets.r

class       : RasterLayer 
dimensions  : 175, 304, 53200  (nrow, ncol, ncell)
resolution  : 100, 100  (x, y)
extent      : 683705, 714105, 4326268, 4343768  (xmin, xmax, ymin, ymax)
coord. ref. : +proj=longlat +datum=WGS84 +ellps=WGS84 +towgs84=0,0,0 
data source : in memory
names       : layer 
values      : 1, 11  (min, max)
attributes  :
   ID FID
 from:  1   0
 to  : 11  10

Eu tenho que mudar a projeção para poder fazer o buffer.

gsa
fonte
Você possui dados em um sistema de coordenadas projetado ou em um CS geográfico?
Aaron
Os dados vetoriais iniciais estão em um sistema de coordenadas projetado, eu acho.
22415
Projetado (por exemplo, UTM) ou Geográfico (lat / lon)?
Aaron
Eu não sei como verificar isso eu acho UTM bu t i não estou certo
GSA
quais são as coordenadas e em que área (estado, cidade) você está?
ed.hank

Respostas:

15

É assim que você pode reprojetar uma varredura no R usando o pacote raster . Neste exemplo, o geotiff de entrada estava em um sistema de coordenadas geográficas NAD83 e eu reprojeto em um sistema de coordenadas projetadas NAD 83 UTM 15. Uma boa referência para projeções no formato Proj4, usadas pelo RGDAL, pode ser encontrada em spatialreference.org .

library(raster)

# Create RasterLayer object
r <- raster('C:/temp/binary_nad83.tif')

# Define the Proj.4 spatial reference 
# http://spatialreference.org/ref/epsg/26915/proj4/
sr <- "+proj=utm +zone=15 +ellps=GRS80 +datum=NAD83 +units=m +no_defs" 

# Project Raster
projected_raster <- projectRaster(r, crs = sr)

# Write the RasterLayer to disk (See datatype documentation for other formats)
writeRaster(projected_raster, filename="C:/temp/binary_utm15.tif", datatype='INT1U', overwrite=TRUE)
Aaron
fonte
Obrigado pela resposta, ele retorna isso: Erro em projectExtent (from, projto): não é possível fazer essa transformação Além disso: Mensagem de aviso: In rgdal :: rawTransform (projfrom, projto, nrow (xy), xy [, 1], xy [,: 218 ponto (s) projetado (s) não finito
gsa
Você está usando um raster de banda única ou uma multibanda? Este exemplo é para um raster de banda única.
Aaron
Ele vem de um processo de rasterização de um vetor (pântano) e não de uma imagem de satélite; portanto, irei com a banda única.
21815 gsaf-
Tente atualizar os pacotes raster / rgal: r-sig-geo.2731867.n2.nabble.com/…
Aaron
@gsa, se isso funcionar, é uma boa ideia votar e aceitar a resposta! Caso contrário, edite e esclareça sua pergunta original.
Simbamangu