Skip to content
Prev 6779 / 29559 Next

flip SpatialGridDataFrame across axis

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 <mdsumner at gmail.com>
Date: Tue, Nov 3, 2009 at 8:45 AM
Subject: Re: [R-sig-Geo] flip SpatialGridDataFrame across axis
To: r-sig-geo at 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(grd at cells.dim[1:2])
? ? ? ?m = matrix(idx, grd at cells.dim[2], grd at cells.dim[1], byrow =
TRUE)[,grd at cells.dim[1]:1]
? ? ? ?idx = as.vector(t(m))
? ? ? ?x at data <- x at 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(grd at cells.dim[1:2])
? ? ? ?m = matrix(idx, grd at cells.dim[2], grd at cells.dim[1], byrow =
TRUE)[grd at cells.dim[2]:1, ]
? ? ? ?idx = as.vector(t(m))
? ? ? ?x at data <- x at 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 <spluque at gmail.com> wrote:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: flipSGDF.R
Type: application/octet-stream
Size: 694 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-sig-geo/attachments/20091103/04a86c36/attachment.obj>