¿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.


¿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)

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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.