¿Reproyección de ráster de lat / lon a UTM en R?

12

Tengo que convertirlo en un UTM para que el búfer funcione.

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 la creación del búfer, que es la última línea de código, da esta advertencia:

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

aquí está la información

  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

Tengo que cambiar la proyección para poder hacer el búfer.

gsa
fuente
¿Están sus datos en un sistema de coordenadas proyectadas o un CS geográfico?
Aaron
Los datos iniciales del vector están en un sistema de coordenadas proyectadas, creo.
gsa 13/07/2015
¿Proyectado (por ejemplo, UTM) o geográfico (lat / lon)?
Aaron
No sé cómo verificar esto, creo que UTM pero no estoy seguro
gsa
¿Cuáles son las coordenadas y en qué área (estado, ciudad) se encuentra?
ed.gracias

Respuestas:

15

Así es como puede reproyectar un ráster en R utilizando el paquete ráster . En este ejemplo, el geotiff de entrada estaba en un sistema de coordenadas geográficas NAD83 y reproyecto a un sistema de coordenadas proyectadas NAD 83 UTM 15. Puede encontrar una buena referencia para las proyecciones en formato Proj4, que utiliza RGDAL, en 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
fuente
Gracias por la respuesta, devuelve esto: Error en projectExtent (from, projto): no se puede hacer esta transformación Además: Mensaje de advertencia: En rgdal :: rawTransform (projfrom, projto, nrow (xy), xy [, 1], xy [,: 218 puntos proyectados no finitos
gsa
¿Está utilizando una trama de banda única o una multibanda? Este ejemplo es para un solo ráster de banda.
Aaron
Proviene de un proceso rasterizado de un vector (humedales), no de una imagen de satélite, así que iré con la banda única.
gsa
Intente actualizar sus paquetes ráster / rgal: r-sig-geo.2731867.n2.nabble.com/…
Aaron
@gsa, si esto funciona, ¡es una buena idea votar y aceptar la respuesta! De lo contrario, edite y aclare su pregunta original.
Simbamangu