Hi Edzer, no problem at all - Robert's approach is much less verbose, but I think this explicit method is easier to understand and share as it exposes the underlying indexing.
I agree there's a sense that it is image processing, but in the "GIS raster" sense (image, DEM, data, etc.) it's a useful way of correcting broken or incomplete metadata - and with the range of orientation conventions and ways of storing those it's handy to have. Do you think it belongs as a method in the maptools elide family - at least eventually? I guess that depends on future support for rasters there. Given the terminology used there it's probably better to call the functions "reflectHorizontal/Vertical" rather than flip, even if they exist as standalones for now? Regards, Mike. On Tue, Nov 3, 2009 at 7:13 PM, Edzer Pebesma <edzer.pebe...@uni-muenster.de> wrote: > Michael, to be hounest, it even surprised me, being the author, that > > data(meuse.grid) > gridded(meuse.grid) = ~x+y > fullgrid(meuse.grid) = TRUE > image(meuse.grid[104:1,]) > > would not flip the image. It just works hard to not destroy the spatial > location of all individual pixels -- it will select all rows in reverse > order, but in the end put everything back in place. What you do is kind > of more like image analysis, as it moves the location of pixels, right? > > Do you mind if we add your flipXxx functions to sp? > -- > Edzer > > Michael Sumner wrote: >> Ergh, sorry for the update - a pox on Gmail for sabotaging my >> attempts at plain text! I've attached the functions in a text file to >> avoid [ampersand] to " at " conversion ... >> >> >> >> >> ---------- Forwarded message ---------- >> From: Michael Sumner <mdsum...@gmail.com> >> Date: Tue, Nov 3, 2009 at 8:45 AM >> Subject: Re: [R-sig-Geo] flip SpatialGridDataFrame across axis >> To: r-sig-geo@stat.math.ethz.ch >> >> >> It would be nice if the "[" methods on ?'SpatialGridDataFrame-class' >> could perform the same indexing orientation, but that uses the >> row/column values for [i,j,...] to obtain the subsetted cells which >> are regridded via SpatialPixels - so the direction is lost. I'm not >> sure it's a good idea to modify that - given that the indexing could >> be used to subset at the same time - which is probably why the authors >> have written it that way. ;) >> >> But, I've been meaning to try something like this for ages, and this >> seems to work: >> >> flipHorizontal <- function(x) { >> if (!inherits(x, "SpatialGridDataFrame")) stop("x must be a >> SpatialGridDataFrame") >> grd <- getGridTopology(x) >> idx = 1:prod(g...@cells.dim[1:2]) >> m = matrix(idx, g...@cells.dim[2], g...@cells.dim[1], byrow = >> TRUE)[,g...@cells.dim[1]:1] >> idx = as.vector(t(m)) >> �...@data <- x...@data[idx, TRUE, drop = FALSE] >> x >> } >> >> flipVertical <- function(x) { >> if (!inherits(x, "SpatialGridDataFrame")) stop("x must be a >> SpatialGridDataFrame") >> grd <- getGridTopology(x) >> idx = 1:prod(g...@cells.dim[1:2]) >> m = matrix(idx, g...@cells.dim[2], g...@cells.dim[1], byrow = >> TRUE)[...@cells.dim[2]:1, ] >> idx = as.vector(t(m)) >> �...@data <- x...@data[idx, TRUE, drop = FALSE] >> x >> } >> >> The approach there is stolen from 'subs.SpatialGridDataFrame' in >> sp/R/SpatialGridDataFrame-methods.R - so thanks as ever to the >> authors! >> >> Cheers, Mike. >> >> On Tue, Nov 3, 2009 at 7:49 AM, Sebastian P. Luque <splu...@gmail.com> wrote: >> >>> On Tue, 3 Nov 2009 07:40:59 +1100, >>> Michael Sumner <mdsum...@gmail.com> wrote: >>> >>> >>>> Hi Sebastian, I think the "north-south" note is referring to >>>> possibly-rotated grids (using the transform values supported by many >>>> formats) - not to "north vs. south" in orientation. >>>> >>>> You can easily flip a grid by reverting it (one band at a time) to an >>>> xyz image and using indexing. I find this approach the least confusing >>>> and easily repeatable. >>>> >>> [...] >>> >>> Thanks for the quick reply Mike!! >>> >>> >>> Cheers, >>> >>> -- >>> Seb >>> >>> _______________________________________________ >>> R-sig-Geo mailing list >>> R-sig-Geo@stat.math.ethz.ch >>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >>> >>> >>> ------------------------------------------------------------------------ >>> >>> _______________________________________________ >>> R-sig-Geo mailing list >>> R-sig-Geo@stat.math.ethz.ch >>> https://stat.ethz.ch/mailman/listinfo/r-sig-geo >>> > > -- > Edzer Pebesma > Institute for Geoinformatics (ifgi), University of Münster > Weseler Straße 253, 48151 Münster, Germany. Phone: +49 251 > 8333081, Fax: +49 251 8339763 http://ifgi.uni-muenster.de/ > http://www.springer.com/978-0-387-78170-9 e.pebe...@wwu.de > > _______________________________________________ R-sig-Geo mailing list R-sig-Geo@stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-geo