Lionel, Paco, thanks for the quick answers.
Going through your suggestions I found that the function *resample {raster} *that transfers values between non matching Raster* objects (in terms of origin and resolution) does exactly what I need. *resample* is actually embedded in the function *spatial_sync_raster* that I had problems to run. When I tried to run it I got the following error message: Error in spatial_sync_raster(alt, slo, method = "ngb", verbose = FALSE) : could not find function "expand" *expand* is not part of the package climstats and I am not quite sure where to find it... But as said, *resample()* solved my problem. Thanks! Gabriele On Thu, Sep 12, 2013 at 1:33 PM, Francisco Rodriguez Sanchez < f.rodriguez.s...@gmail.com> wrote: > Hi Gabriele, > > Try the spatial_sync_raster function in package climstats: > https://r-forge.r-project.org/**projects/climstats/<https://r-forge.r-project.org/projects/climstats/>. > It will align the projection, extent and resolution of your rasters all at > once > > Hope it helps, > > Paco > > > El 12/09/2013 11:59, Gabriele Cozzi escribió: > > Dear list, >> >> I was given three raster files with 'slope', 'aspect' and 'altitude' of my >> study site. I realised that one of the three rasters (namely 'altitude') >> has a slightly different raster cell resolution, which results in a >> slightly different raster extent and does not allow me to raster::stack() >> the three layers to create a single stack object. >> I tried to change the raster resolution using raster::res() for the raster >> 'altitude' but, when I subsequently cropped the three rasters with an >> object of class extent, I still got different extents between "slope and >> aspect" vs. "altitude". >> >> Any advice on how to solve this cell resolution incongruence is very >> welcome. >> Here below I report the output to make things more understandable. >> >> Thanks in advance, >> Gabriele >> >> >> >> #---------------- >> #---------------- >> >> aspect <- raster("~/Envir/aspect/prj.**adf") >> slope <- raster("~/Envir/slope/prj.adf"**) >> altitude <- raster("~/Envir/**20130508094222_992463356.tif") >> >> aspect ( N.B. 'slope' returns exactly the same attributes!) >> #class : RasterLayer >> #dimensions : 9813, 8428, 82703964 (nrow, ncol, ncell) >> #resolution : 27.28532, 27.28532 (x, y) >> #extent : 135446.9, 365407.6, 4345919, 4613669 (xmin, xmax, >> ymin, >> ymax) >> #coord. ref. : +proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 >> +units=m +no_defs >> >> altitude >> #class : RasterLayer >> #dimensions : 9812, 8428, 82695536 (nrow, ncol, ncell) >> #resolution : 27.28532, 27.28677 (x, y) >> #extent : 135446.9, 365407.6, 4345919, 4613656 (xmin, xmax, >> ymin, >> ymax) >> #coord. ref. : +proj=utm +zone=38 +datum=WGS84 +units=m +no_defs >> +ellps=WGS84 +towgs84=0,0,0 >> >> ex <- extent(animal_locations) >> ex >> #class : Extent >> #xmin : 257473.1 >> #xmax : 312499.1 >> #ymin : 4452821 >> #ymax : 4570717 >> >> Before using the function raster.crop <- crop('raster_file', ex) to crop >> all rasters to the same extent, I tried to change the resolution of >> 'altitude' using >> >> res(altitude) <- 27.28532 >> >> altitude >> #class : RasterLayer >> #dimensions : 9813, 8428, 82703964 (nrow, ncol, ncell) >> #resolution : 27.28532, 27.28532 (x, y) >> #extent : 135446.9, 365407.6, 4345905, 4613656 (xmin, xmax, >> ymin, >> ymax) >> #coord. ref. : +proj=utm +zone=38 +datum=WGS84 +units=m +no_defs >> +ellps=WGS84 +towgs84=0,0,0 >> >> When I then run crop() for aspect and the new defined altitude I however >> become different extents (i.e. ymin and ymax) despite now the dimensions >> and resolutions are the same >> >> crop(aspect, ex) >> #class : RasterLayer >> #dimensions : 5054, 2749, 13893446 (nrow, ncol, ncell) >> #resolution : 27.28532, 27.28532 (x, y) >> #extent : 247480.5, 322487.8, 4442809, 4580709 (xmin, xmax, >> ymin, >> ymax) >> #coord. ref. : +proj=utm +zone=38 +ellps=WGS84 +towgs84=0,0,0,0,0,0,0 >> +units=m +no_defs >> #names : prj >> #values : -1, 359.8158 (min, max) >> >> crop(altitude, ex) >> #class : RasterLayer >> #dimensions : 5054, 2749, 13893446 (nrow, ncol, ncell) >> #resolution : 27.28532, 27.28532 (x, y) >> #extent : 247480.5, 322487.8, 4442823, 4580723 (xmin, xmax, >> ymin, >> ymax) >> #coord. ref. : +proj=utm +zone=38 +datum=WGS84 +units=m +no_defs >> +ellps=WGS84 +towgs84=0,0,0 >> >> It also appears to me that by redefining res(altitude) I loose the actual >> values assigned to each pixel. Is there an argument to assign to the new >> pixels the value of the centre of the pixel? >> >> >> >> > -- > Dr Francisco Rodriguez-Sanchez > Forest Ecology and Conservation Group > Department of Plant Sciences > University of Cambridge > Downing Street > Cambridge CB2 3EA > United Kingdom > http://sites.google.com/site/**rodriguezsanchezf<http://sites.google.com/site/rodriguezsanchezf> > > > ______________________________**_________________ > R-sig-Geo mailing list > R-sig-Geo@r-project.org > https://stat.ethz.ch/mailman/**listinfo/r-sig-geo<https://stat.ethz.ch/mailman/listinfo/r-sig-geo> > -- Gabriele Cozzi Postdoctoral Research Associate Population Ecology Research Group http://www.popecol.org Zurich University Institute of Evolutionary Biology and Environmental Studies Winterthurerstr. 190 8057 Zurich - Switzerland E-mail: gabriele.co...@uzh.ch Phone: +41(0)44 635 49 12 Fax: +41(0)16355711 http://www.ieu.uzh.ch [[alternative HTML version deleted]]
_______________________________________________ R-sig-Geo mailing list R-sig-Geo@r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-geo